diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version index d33c3a2128..51de3305bb 100644 --- a/.pulumi-java-gen.version +++ b/.pulumi-java-gen.version @@ -1 +1 @@ -0.12.0 \ No newline at end of file +0.13.0 \ No newline at end of file diff --git a/patches/0006-docs-patching.patch b/patches/0006-docs-patching.patch index 4cd196df7b..1e484a3e96 100644 --- a/patches/0006-docs-patching.patch +++ b/patches/0006-docs-patching.patch @@ -1,6 +1,6 @@ From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Venelin -Date: Fri, 12 Jul 2024 15:35:01 +0100 +Date: Fri, 2 Aug 2024 15:32:30 +0300 Subject: [PATCH] docs patching @@ -95,7 +95,7 @@ index 02f68ce79..07ddfeefe 100644 ```hcl data "google_iam_policy" "admin" { diff --git a/website/docs/r/apigee_instance.html.markdown b/website/docs/r/apigee_instance.html.markdown -index e804a3c9b..a77e07ac1 100644 +index eea4d065c..a75990e47 100644 --- a/website/docs/r/apigee_instance.html.markdown +++ b/website/docs/r/apigee_instance.html.markdown @@ -195,7 +195,7 @@ resource "google_kms_crypto_key_iam_member" "apigee_sa_keyuser" { @@ -117,7 +117,7 @@ index e804a3c9b..a77e07ac1 100644 org_id = google_apigee_organization.apigee_org.id disk_encryption_key_name = google_kms_crypto_key.apigee_key.id diff --git a/website/docs/r/apigee_organization.html.markdown b/website/docs/r/apigee_organization.html.markdown -index 0a1fcf9ad..27f4108e5 100644 +index cb61548ea..34131f252 100644 --- a/website/docs/r/apigee_organization.html.markdown +++ b/website/docs/r/apigee_organization.html.markdown @@ -126,7 +126,7 @@ resource "google_kms_crypto_key_iam_member" "apigee_sa_keyuser" { @@ -175,7 +175,7 @@ index e3f4654b4..5ebc3ee84 100644 an empty value. diff --git a/website/docs/r/bigquery_table.html.markdown b/website/docs/r/bigquery_table.html.markdown -index 48109ed6a..e3bd7d19c 100644 +index e999cc72f..69103ae22 100644 --- a/website/docs/r/bigquery_table.html.markdown +++ b/website/docs/r/bigquery_table.html.markdown @@ -11,7 +11,7 @@ Creates a table resource in a dataset for Google BigQuery. For more information @@ -200,7 +200,7 @@ index 48109ed6a..e3bd7d19c 100644 * `table_constraints` - (Optional) Defines the primary key and foreign keys. Structure is [documented below](#nested_table_constraints). -@@ -278,8 +276,8 @@ The following arguments are supported: +@@ -281,8 +279,8 @@ The following arguments are supported: 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 `allow_quoted_newlines` property to true. @@ -295,7 +295,7 @@ index 17a16b9f2..34943f39b 100644 ## Attributes Reference diff --git a/website/docs/r/bigtable_table.html.markdown b/website/docs/r/bigtable_table.html.markdown -index b7253bb12..2d53f143b 100644 +index 5d6c24289..2f0aaa5b0 100644 --- a/website/docs/r/bigtable_table.html.markdown +++ b/website/docs/r/bigtable_table.html.markdown @@ -10,12 +10,6 @@ Creates a Google Cloud Bigtable table inside an instance. For more information s @@ -311,7 +311,7 @@ index b7253bb12..2d53f143b 100644 ## Example Usage ```hcl -@@ -64,7 +58,7 @@ The following arguments are supported: +@@ -69,7 +63,7 @@ The following arguments are supported: * `instance_name` - (Required) The name of the Bigtable instance. * `split_keys` - (Optional) A list of predefined keys to split the table on. @@ -390,12 +390,12 @@ index 81b3bf64f..21f87225b 100644 * `pem_private_key` - (Optional) diff --git a/website/docs/r/cloud_run_domain_mapping.html.markdown b/website/docs/r/cloud_run_domain_mapping.html.markdown -index 285a707b8..d2632266f 100644 +index a68f58813..650247567 100644 --- a/website/docs/r/cloud_run_domain_mapping.html.markdown +++ b/website/docs/r/cloud_run_domain_mapping.html.markdown @@ -161,7 +161,7 @@ The following arguments are supported: - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. - If terraform plan shows a diff where a server-side annotation is added, you can add it to your config + If the provider plan shows a diff where a server-side annotation is added, you can add it to your config @@ -403,7 +403,7 @@ index 285a707b8..d2632266f 100644 **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. Please refer to the field `effective_annotations` for all of the annotations present on the resource. diff --git a/website/docs/r/cloud_run_service.html.markdown b/website/docs/r/cloud_run_service.html.markdown -index 64411b7c3..5fa1ea293 100644 +index 24fc2761d..5e9d1f68d 100644 --- a/website/docs/r/cloud_run_service.html.markdown +++ b/website/docs/r/cloud_run_service.html.markdown @@ -31,8 +31,63 @@ To get more information about Service, see: @@ -481,15 +481,15 @@ index 64411b7c3..5fa1ea293 100644 } } @@ -343,7 +398,7 @@ The following arguments are supported: - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. - If terraform plan shows a diff where a server-side annotation is added, you can add it to your config + If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. Annotations with `run.googleapis.com/` and `autoscaling.knative.dev` are restricted. Use the following annotation keys to configure features on a Revision template: -@@ -496,7 +551,8 @@ The following arguments are supported: +@@ -493,7 +548,8 @@ The following arguments are supported: * `liveness_probe` - (Optional) @@ -499,9 +499,9 @@ index 64411b7c3..5fa1ea293 100644 Structure is [documented below](#nested_liveness_probe). -@@ -1001,7 +1057,7 @@ this field is set to false, the revision name will still autogenerate.) - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +@@ -998,7 +1054,7 @@ this field is set to false, the revision name will still autogenerate.) + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. - If terraform plan shows a diff where a server-side annotation is added, you can add it to your config + If the provider plan shows a diff where a server-side annotation is added, you can add it to your config @@ -587,18 +587,14 @@ index 0a305240d..845f44993 100644 ## Example Usage - Backend Bucket Signed Url Key diff --git a/website/docs/r/compute_backend_service.html.markdown b/website/docs/r/compute_backend_service.html.markdown -index 028c836d2..e13bb784d 100644 +index 17585c4af..f4a2db580 100644 --- a/website/docs/r/compute_backend_service.html.markdown +++ b/website/docs/r/compute_backend_service.html.markdown -@@ -34,9 +34,8 @@ To get more information about BackendService, see: - * How-to Guides - * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) +@@ -36,7 +36,6 @@ To get more information about BackendService, see: --~> **Warning:** All arguments including the following potentially sensitive --values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`. + ~> **Warning:** All arguments including the following potentially sensitive + values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`. -[Read more about sensitive data in state](https://www.terraform.io/language/state/sensitive-data). -+~> **Warning:** All arguments including `iap.oauth2_client_secret` and `iap.oauth2_client_secret_sha256` will be stored in the raw -+state as plain-text.
@@ -683,7 +679,7 @@ index f9cad9040..243ba6fd0 100644 ## Attributes Reference diff --git a/website/docs/r/compute_instance.html.markdown b/website/docs/r/compute_instance.html.markdown -index 311501bfe..331d0e855 100644 +index 555af1b50..565cc9842 100644 --- a/website/docs/r/compute_instance.html.markdown +++ b/website/docs/r/compute_instance.html.markdown @@ -87,7 +87,7 @@ The following arguments are supported: @@ -1597,7 +1593,7 @@ index f18c91533..924ad4cc0 100644
diff --git a/website/docs/r/container_cluster.html.markdown b/website/docs/r/container_cluster.html.markdown -index 048ea25a4..671978f30 100644 +index c53020d20..ea580fa3b 100644 --- a/website/docs/r/container_cluster.html.markdown +++ b/website/docs/r/container_cluster.html.markdown @@ -13,15 +13,12 @@ To get more information about GKE clusters, see: @@ -1688,7 +1684,7 @@ index 048ea25a4..671978f30 100644 release channel, but will not unenroll it. Instead, use the `"UNSPECIFIED"` channel. Structure is [documented below](#nested_release_channel). -@@ -856,8 +874,6 @@ gvnic { +@@ -870,8 +888,6 @@ gvnic { * `guest_accelerator` - (Optional) List of the type and count of accelerator cards attached to the instance. Structure [documented below](#nested_guest_accelerator). @@ -1697,7 +1693,7 @@ index 048ea25a4..671978f30 100644 * `image_type` - (Optional) The image type to use for this node. Note that changing the image type will delete and recreate all nodes in the node pool. -@@ -878,7 +894,7 @@ gvnic { +@@ -892,7 +908,7 @@ gvnic { * `metadata` - (Optional) The metadata key/value pairs assigned to instances in the cluster. From GKE `1.12` onwards, `disable-legacy-endpoints` is set to `true` by the API; if `metadata` is set but that default value is not @@ -1706,7 +1702,7 @@ index 048ea25a4..671978f30 100644 value in your config. * `min_cpu_platform` - (Optional) Minimum CPU platform to be used by this instance. -@@ -903,10 +919,7 @@ gvnic { +@@ -917,10 +933,7 @@ gvnic { See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms) for more information. Defaults to false. @@ -1718,7 +1714,7 @@ index 048ea25a4..671978f30 100644 * `service_account` - (Optional) The service account to be used by the Node VMs. If not specified, the "default" service account is used. -@@ -918,13 +931,14 @@ gvnic { +@@ -932,13 +945,14 @@ gvnic { * `resource_manager_tags` - (Optional) 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}`. @@ -1740,7 +1736,7 @@ index 048ea25a4..671978f30 100644 * `workload_metadata_config` - (Optional) Metadata configuration to expose to workloads on the node pool. Structure is [documented below](#nested_workload_metadata_config). -@@ -977,6 +991,20 @@ sole_tenant_config { +@@ -991,6 +1005,20 @@ sole_tenant_config { * `enable_nested_virtualization`- (Optional) Defines whether the instance should have nested virtualization enabled. Defaults to false. @@ -1761,7 +1757,7 @@ index 048ea25a4..671978f30 100644 The `ephemeral_storage_config` block supports: * `local_ssd_count` (Required) - 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. -@@ -1137,7 +1165,7 @@ for more details. This field only applies to private clusters, when +@@ -1151,7 +1179,7 @@ for more details. This field only applies to private clusters, when * `private_endpoint_subnetwork` - (Optional) Subnetwork in cluster's network where master's endpoint will be provisioned. * `master_global_access_config` (Optional) - Controls cluster master global @@ -1770,7 +1766,7 @@ index 048ea25a4..671978f30 100644 not modify the previously-set value. Structure is [documented below](#nested_master_global_access_config). In addition, the `private_cluster_config` allows access to the following read-only fields: -@@ -1238,9 +1266,9 @@ Enables monitoring and attestation of the boot integrity of the instance. The at +@@ -1252,9 +1280,9 @@ Enables monitoring and attestation of the boot integrity of the instance. The at * `mode` (Required) How to expose the node metadata to the workload running on the node. Accepted values are: @@ -1784,7 +1780,7 @@ index 048ea25a4..671978f30 100644 The `kubelet_config` block supports: diff --git a/website/docs/r/container_node_pool.html.markdown b/website/docs/r/container_node_pool.html.markdown -index 0eef08600..efb12c98b 100644 +index 310b0fbbb..69d5dc166 100644 --- a/website/docs/r/container_node_pool.html.markdown +++ b/website/docs/r/container_node_pool.html.markdown @@ -6,14 +6,11 @@ description: |- @@ -2767,7 +2763,7 @@ index 9c18717b0..503377fca 100644 ## Example Usage diff --git a/website/docs/r/google_project_service.html.markdown b/website/docs/r/google_project_service.html.markdown -index 35c9a5560..3dd6dd950 100644 +index 657f874cf..35faca7ff 100644 --- a/website/docs/r/google_project_service.html.markdown +++ b/website/docs/r/google_project_service.html.markdown @@ -55,8 +55,8 @@ that manage the `google_project` resource itself. @@ -2779,8 +2775,8 @@ index 35c9a5560..3dd6dd950 100644 +destroyed. If `false` or unset, an error will be generated if any enabled +services depend on this service when destroying it. - ## Attributes Reference - + * `check_if_service_has_usage_on_destroy` - (Optional) + [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html) diff --git a/website/docs/r/google_service_account.html.markdown b/website/docs/r/google_service_account.html.markdown index c261555e7..58ee607b3 100644 --- a/website/docs/r/google_service_account.html.markdown @@ -2963,7 +2959,7 @@ index 09a958846..4c024397b 100644 * [API documentation](https://cloud.google.com/iap/docs/reference/rest/v1/projects.brands) diff --git a/website/docs/r/iap_client.html.markdown b/website/docs/r/iap_client.html.markdown -index e0ff3759a..3fc3b6d78 100644 +index f2fa91014..f77c4f7bf 100644 --- a/website/docs/r/iap_client.html.markdown +++ b/website/docs/r/iap_client.html.markdown @@ -32,9 +32,8 @@ To get more information about Client, see: @@ -3376,7 +3372,7 @@ index 3879c6fd2..cf89daff6 100644 * [API documentation](https://cloud.google.com/compute/docs/osconfig/rest) diff --git a/website/docs/r/project_service_identity.html.markdown b/website/docs/r/project_service_identity.html.markdown -index 327090b41..0b766cc2d 100644 +index fe9f8b04a..f1ca040b9 100644 --- a/website/docs/r/project_service_identity.html.markdown +++ b/website/docs/r/project_service_identity.html.markdown @@ -6,9 +6,6 @@ description: |- @@ -3585,7 +3581,7 @@ index 2ac02739f..da87bdaae 100644 The `encryption_config` block supports: diff --git a/website/docs/r/sql_database_instance.html.markdown b/website/docs/r/sql_database_instance.html.markdown -index 3fbc06d8f..4a03140f7 100644 +index 180e0cb5a..0f6e86b61 100644 --- a/website/docs/r/sql_database_instance.html.markdown +++ b/website/docs/r/sql_database_instance.html.markdown @@ -10,12 +10,12 @@ Creates a new Google SQL Database Instance. For more information, see the [offic diff --git a/provider/cmd/pulumi-resource-gcp/bridge-metadata.json b/provider/cmd/pulumi-resource-gcp/bridge-metadata.json index 31d4ee655f..95bdbbc8c8 100644 --- a/provider/cmd/pulumi-resource-gcp/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-gcp/bridge-metadata.json @@ -1006,6 +1006,9 @@ } } }, + "observability_config": { + "maxItemsOne": true + }, "psc_instance_config": { "maxItemsOne": true, "elem": { @@ -1250,6 +1253,14 @@ "current": "gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy", "majorVersion": 7 }, + "google_apigee_environment_keyvaluemaps": { + "current": "gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps", + "majorVersion": 7 + }, + "google_apigee_environment_keyvaluemaps_entries": { + "current": "gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries", + "majorVersion": 7 + }, "google_apigee_flowhook": { "current": "gcp:apigee/flowhook:Flowhook", "majorVersion": 7 @@ -2673,6 +2684,9 @@ "current": "gcp:bigquery/appProfile:AppProfile", "majorVersion": 7, "fields": { + "data_boost_isolation_read_only": { + "maxItemsOne": true + }, "multi_cluster_routing_cluster_ids": { "maxItemsOne": false }, @@ -5240,6 +5254,9 @@ "maxItemsOne": true, "elem": { "fields": { + "aws_v4_authentication": { + "maxItemsOne": true + }, "subject_alt_names": { "maxItemsOne": false } @@ -7794,6 +7811,109 @@ } } }, + "google_compute_resize_request": { + "current": "gcp:compute/resizeRequest:ResizeRequest", + "majorVersion": 7, + "fields": { + "requested_run_duration": { + "maxItemsOne": true + }, + "status": { + "maxItemsOne": false, + "elem": { + "fields": { + "error": { + "maxItemsOne": false, + "elem": { + "fields": { + "errors": { + "maxItemsOne": false, + "elem": { + "fields": { + "error_details": { + "maxItemsOne": false, + "elem": { + "fields": { + "error_info": { + "maxItemsOne": false + }, + "help": { + "maxItemsOne": false, + "elem": { + "fields": { + "links": { + "maxItemsOne": false + } + } + } + }, + "localized_message": { + "maxItemsOne": false + }, + "quota_info": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + } + }, + "last_attempt": { + "maxItemsOne": false, + "elem": { + "fields": { + "error": { + "maxItemsOne": false, + "elem": { + "fields": { + "errors": { + "maxItemsOne": false, + "elem": { + "fields": { + "error_details": { + "maxItemsOne": false, + "elem": { + "fields": { + "error_info": { + "maxItemsOne": false + }, + "help": { + "maxItemsOne": false, + "elem": { + "fields": { + "links": { + "maxItemsOne": false + } + } + } + }, + "localized_message": { + "maxItemsOne": false + }, + "quota_info": { + "maxItemsOne": false + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + } + }, "google_compute_resource_policy": { "current": "gcp:compute/resourcePolicy:ResourcePolicy", "majorVersion": 7, @@ -7964,11 +8084,39 @@ "bfd": { "maxItemsOne": true }, + "custom_learned_ip_ranges": { + "maxItemsOne": false + }, + "export_policies": { + "maxItemsOne": false + }, + "import_policies": { + "maxItemsOne": false + }, "md5_authentication_key": { "maxItemsOne": true } } }, + "google_compute_router_route_policy": { + "current": "gcp:compute/routerRoutePolicy:RouterRoutePolicy", + "majorVersion": 7, + "fields": { + "terms": { + "maxItemsOne": false, + "elem": { + "fields": { + "actions": { + "maxItemsOne": false + }, + "match": { + "maxItemsOne": true + } + } + } + } + } + }, "google_compute_security_policy": { "current": "gcp:compute/securityPolicy:SecurityPolicy", "majorVersion": 7, @@ -9455,6 +9603,19 @@ "network_policy_config": { "maxItemsOne": true }, + "ray_operator_config": { + "maxItemsOne": false, + "elem": { + "fields": { + "ray_cluster_logging_config": { + "maxItemsOne": true + }, + "ray_cluster_monitoring_config": { + "maxItemsOne": true + } + } + } + }, "stateful_ha_config": { "maxItemsOne": true } @@ -11779,6 +11940,83 @@ } } }, + "cloud_storage_target": { + "maxItemsOne": true, + "elem": { + "fields": { + "conditions": { + "maxItemsOne": true, + "elem": { + "fields": { + "cloud_storage_conditions": { + "maxItemsOne": true, + "elem": { + "fields": { + "included_bucket_attributes": { + "maxItemsOne": false + }, + "included_object_attributes": { + "maxItemsOne": false + } + } + } + } + } + } + }, + "disabled": { + "maxItemsOne": true + }, + "filter": { + "maxItemsOne": true, + "elem": { + "fields": { + "cloud_storage_resource_reference": { + "maxItemsOne": true + }, + "collection": { + "maxItemsOne": true, + "elem": { + "fields": { + "include_regexes": { + "maxItemsOne": true, + "elem": { + "fields": { + "patterns": { + "maxItemsOne": false, + "elem": { + "fields": { + "cloud_storage_regex": { + "maxItemsOne": true + } + } + } + } + } + } + } + } + } + }, + "others": { + "maxItemsOne": true + } + } + } + }, + "generation_cadence": { + "maxItemsOne": true, + "elem": { + "fields": { + "inspect_template_modified_cadence": { + "maxItemsOne": true + } + } + } + } + } + } + }, "secrets_target": { "maxItemsOne": true } @@ -14528,6 +14766,12 @@ "maxItemsOne": true, "elem": { "fields": { + "append_only": { + "maxItemsOne": true + }, + "merge": { + "maxItemsOne": true + }, "single_target_dataset": { "maxItemsOne": true }, @@ -24000,6 +24244,10 @@ "current": "gcp:securitycenter/sourceIamPolicy:SourceIamPolicy", "majorVersion": 7 }, + "google_scc_v2_organization_mute_config": { + "current": "gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig", + "majorVersion": 7 + }, "google_scc_v2_organization_notification_config": { "current": "gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig", "majorVersion": 7, @@ -25738,7 +25986,14 @@ "maxItemsOne": true }, "network_interfaces": { - "maxItemsOne": false + "maxItemsOne": false, + "elem": { + "fields": { + "access_configs": { + "maxItemsOne": false + } + } + } }, "service_accounts": { "maxItemsOne": false, @@ -27719,6 +27974,9 @@ "maxItemsOne": false, "elem": { "fields": { + "aws_v4_authentication": { + "maxItemsOne": false + }, "subject_alt_names": { "maxItemsOne": false } @@ -29016,6 +29274,19 @@ "network_policy_config": { "maxItemsOne": false }, + "ray_operator_config": { + "maxItemsOne": false, + "elem": { + "fields": { + "ray_cluster_logging_config": { + "maxItemsOne": false + }, + "ray_cluster_monitoring_config": { + "maxItemsOne": false + } + } + } + }, "stateful_ha_config": { "maxItemsOne": false } @@ -32667,6 +32938,8 @@ "gcp:apigee/environmentIamBinding:EnvironmentIamBinding": 0, "gcp:apigee/environmentIamMember:EnvironmentIamMember": 0, "gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy": 0, + "gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps": 0, + "gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries": 0, "gcp:apigee/flowhook:Flowhook": 0, "gcp:apigee/instance:Instance": 0, "gcp:apigee/instanceAttachment:InstanceAttachment": 0, @@ -32946,12 +33219,14 @@ "gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy": 0, "gcp:compute/regionUrlMap:RegionUrlMap": 0, "gcp:compute/reservation:Reservation": 0, + "gcp:compute/resizeRequest:ResizeRequest": 0, "gcp:compute/resourcePolicy:ResourcePolicy": 0, "gcp:compute/route:Route": 0, "gcp:compute/router:Router": 0, "gcp:compute/routerInterface:RouterInterface": 0, "gcp:compute/routerNat:RouterNat": 0, "gcp:compute/routerPeer:RouterPeer": 0, + "gcp:compute/routerRoutePolicy:RouterRoutePolicy": 0, "gcp:compute/sSLCertificate:SSLCertificate": 0, "gcp:compute/sSLPolicy:SSLPolicy": 0, "gcp:compute/securityPolicy:SecurityPolicy": 0, @@ -33458,6 +33733,7 @@ "gcp:securitycenter/sourceIamBinding:SourceIamBinding": 0, "gcp:securitycenter/sourceIamMember:SourceIamMember": 0, "gcp:securitycenter/sourceIamPolicy:SourceIamPolicy": 0, + "gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig": 0, "gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig": 0, "gcp:securityposture/posture:Posture": 0, "gcp:securityposture/postureDeployment:PostureDeployment": 0, diff --git a/provider/cmd/pulumi-resource-gcp/schema.json b/provider/cmd/pulumi-resource-gcp/schema.json index 305a6f07e1..9f2490c582 100644 --- a/provider/cmd/pulumi-resource-gcp/schema.json +++ b/provider/cmd/pulumi-resource-gcp/schema.json @@ -3125,6 +3125,43 @@ }, "type": "object" }, + "gcp:alloydb/InstanceObservabilityConfig:InstanceObservabilityConfig": { + "properties": { + "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" + }, "gcp:alloydb/InstancePscInstanceConfig:InstancePscInstanceConfig": { "properties": { "allowedConsumerProjects": { @@ -7605,6 +7642,18 @@ }, "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": { @@ -20712,7 +20761,7 @@ "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. More\ninfo: 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 `effective_annotations` for all of the annotations present on the resource.\n", + "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 `effective_annotations` for all of the annotations present on the resource.\n", "willReplaceOnChanges": true }, "effectiveAnnotations": { @@ -20953,7 +21002,7 @@ "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. More\ninfo: 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**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" + "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**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", @@ -21163,7 +21212,7 @@ "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. More\ninfo: 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**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" + "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**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" }, "generation": { "type": "integer", @@ -21217,7 +21266,7 @@ "properties": { "containerConcurrency": { "type": "integer", - "description": "ContainerConcurrency specifies the maximum allowed in-flight (concurrent)\nrequests per container of the Revision. Values are:\n" + "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", @@ -22188,7 +22237,7 @@ "properties": { "containerConcurrency": { "type": "integer", - "description": "ContainerConcurrency specifies the maximum allowed in-flight (concurrent)\nrequests per container of the Revision. Values are:\n- '0' thread-safe, the system should manage the max concurrency. This is\n the default value.\n- '1' not-thread-safe. Single concurrency\n- '2-N' thread-safe, max concurrency of N\n" + "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", @@ -23869,7 +23918,7 @@ }, "maxInstanceRequestConcurrency": { "type": "integer", - "description": "Sets the maximum number of requests that each serving instance can receive.\n" + "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" }, "revision": { "type": "string", @@ -25509,7 +25558,7 @@ }, "maxInstanceRequestConcurrency": { "type": "integer", - "description": "Sets the maximum number of requests that each serving instance can receive.\n" + "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" }, "revision": { "type": "string", @@ -29363,6 +29412,10 @@ }, "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=\"nested_aws_v4_authentication\"\u003e\u003c/a\u003eThe `aws_v4_authentication` 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" @@ -29375,11 +29428,29 @@ "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": [ - "clientTlsPolicy", - "subjectAltNames" - ] + "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/DiskAsyncPrimaryDisk:DiskAsyncPrimaryDisk": { "properties": { @@ -30299,6 +30370,11 @@ "description": "The size of the image in gigabytes. If not specified, it\nwill inherit the size of its base image.\n", "willReplaceOnChanges": true }, + "storagePool": { + "type": "string", + "description": "The URL of the storage pool in which the new disk is created.\nFor example:\n* https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool}\n* /projects/{project}/zones/{zone}/storagePools/{storagePool}\n", + "willReplaceOnChanges": true + }, "type": { "type": "string", "description": "The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd.\n", @@ -30505,6 +30581,11 @@ "description": "The size of the image in gigabytes.\n", "willReplaceOnChanges": true }, + "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", @@ -30522,6 +30603,7 @@ "provisionedThroughput", "resourceManagerTags", "size", + "storagePool", "type" ] } @@ -31272,6 +31354,11 @@ "description": "The size of the image in gigabytes.\n", "willReplaceOnChanges": true }, + "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", @@ -31289,6 +31376,7 @@ "provisionedThroughput", "resourceManagerTags", "size", + "storagePool", "type" ] } @@ -38699,6 +38787,530 @@ "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 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", + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "seconds" + ] + }, + "gcp:compute/ResizeRequestStatus:ResizeRequestStatus": { + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusError:ResizeRequestStatusError" + }, + "description": "(Output)\n[Output only] Fatal 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)\n[Output only] Information 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)\n[Output Only] The 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)\n[Output Only] The error type identifier for this error.\n" + }, + "errorDetails": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetail:ResizeRequestStatusErrorErrorErrorDetail" + }, + "description": "(Output)\n[Output Only] An optional list 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)\nOutput Only] Indicates 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)\n[Output Only]\nStructure is documented below.\n" + }, + "helps": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailHelp:ResizeRequestStatusErrorErrorErrorDetailHelp" + }, + "description": "(Output)\n[Output Only]\nStructure is documented below.\n" + }, + "localizedMessages": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage:ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage" + }, + "description": "(Output)\n[Output Only]\nStructure is documented below.\n" + }, + "quotaInfos": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo:ResizeRequestStatusErrorErrorErrorDetailQuotaInfo" + }, + "description": "(Output)\n[Output Only]\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\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".\n" + }, + "metadatas": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "(Output)\nAdditional structured details about this error.\nKeys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {\"instanceLimit\": \"100/request\"}, should be returned as, {\"instanceLimitPerRequest\": \"100\"}, if the client exceeds the number of instances that can be created in a single (batch) request.\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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.\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)\n[Output Only]\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)\n[Output only] Fatal 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)\n[Output Only] The 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)\n[Output Only] The error type identifier for this error.\n" + }, + "errorDetails": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetail:ResizeRequestStatusLastAttemptErrorErrorErrorDetail" + }, + "description": "(Output)\n[Output Only] An optional list 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)\nOutput Only] Indicates 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)\n[Output Only]\nStructure is documented below.\n" + }, + "helps": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp:ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp" + }, + "description": "(Output)\n[Output Only]\nStructure is documented below.\n" + }, + "localizedMessages": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage:ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage" + }, + "description": "(Output)\n[Output Only]\nStructure is documented below.\n" + }, + "quotaInfos": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo:ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo" + }, + "description": "(Output)\n[Output Only]\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\". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is \"googleapis.com\".\n" + }, + "metadatas": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "(Output)\nAdditional structured details about this error.\nKeys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {\"instanceLimit\": \"100/request\"}, should be returned as, {\"instanceLimitPerRequest\": \"100\"}, if the client exceeds the number of instances that can be created in a single (batch) request.\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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.\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)\n[Output Only]\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": { @@ -39141,6 +39753,18 @@ "sessionInitializationMode" ] }, + "gcp:compute/RouterPeerCustomLearnedIpRange:RouterPeerCustomLearnedIpRange": { + "properties": { + "range": { + "type": "string", + "description": "The IP range to advertise. The value must be a\nCIDR-formatted string.\n" + } + }, + "type": "object", + "required": [ + "range" + ] + }, "gcp:compute/RouterPeerMd5AuthenticationKey:RouterPeerMd5AuthenticationKey": { "properties": { "key": { @@ -39159,6 +39783,77 @@ "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). When not set, the term applies to all routes.\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": [ + "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\n- - -\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": { "description": { @@ -43015,6 +43710,13 @@ }, "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" @@ -43029,6 +43731,7 @@ }, "type": "object", "required": [ + "awsV4Authentications", "clientTlsPolicy", "subjectAltNames" ], @@ -43038,6 +43741,38 @@ } } }, + "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/getDiskAsyncPrimaryDisk:getDiskAsyncPrimaryDisk": { "properties": { "disk": { @@ -43947,6 +44682,10 @@ "type": "integer", "description": "The size of the image in gigabytes.\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" @@ -43961,6 +44700,7 @@ "provisionedThroughput", "resourceManagerTags", "size", + "storagePool", "type" ], "language": { @@ -50082,9 +50822,16 @@ "$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 `network_policy` 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" }, + "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\n\nThis example `addons_config` disables two addons:\n\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\nThis example `addons_config` disables two addons:\n\n" + "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", @@ -50103,6 +50850,7 @@ "istioConfig", "kalmConfig", "networkPolicyConfig", + "rayOperatorConfigs", "statefulHaConfig" ] } @@ -50253,6 +51001,56 @@ "disabled" ] }, + "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/ClusterAddonsConfigStatefulHaConfig:ClusterAddonsConfigStatefulHaConfig": { "properties": { "enabled": { @@ -53648,7 +54446,7 @@ }, "reservationAffinity": { "$ref": "#/types/gcp:container/NodePoolNodeConfigReservationAffinity:NodePoolNodeConfigReservationAffinity", - "description": "The reservation affinity configuration for the node pool.\n", + "description": "The configuration of the desired reservation which instances could take capacity from.\nStructure is documented below.\n\n\u003ca name=\"nested_autoscaling\"\u003e\u003c/a\u003eThe `autoscaling` block supports (either total or per zone limits are required):\n", "willReplaceOnChanges": true }, "resourceLabels": { @@ -54065,12 +54863,12 @@ "properties": { "consumeReservationType": { "type": "string", - "description": "Corresponds to the type of reservation consumption.\n", + "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.\n", + "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": { @@ -54078,7 +54876,7 @@ "items": { "type": "string" }, - "description": "The label values of the reservation resource.\n", + "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 } }, @@ -54410,6 +55208,13 @@ }, "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 network_policy block, 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" }, + "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" + }, "statefulHaConfigs": { "type": "array", "items": { @@ -54432,6 +55237,7 @@ "istioConfigs", "kalmConfigs", "networkPolicyConfigs", + "rayOperatorConfigs", "statefulHaConfigs" ], "language": { @@ -54642,6 +55448,70 @@ } } }, + "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/getClusterAddonsConfigStatefulHaConfig:getClusterAddonsConfigStatefulHaConfig": { "properties": { "enabled": { @@ -64185,6 +65055,10 @@ "$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" + }, "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" @@ -64262,7 +65136,7 @@ "properties": { "createdAfter": { "type": "string", - "description": "A timestamp in RFC3339 UTC \"Zulu\" format with nanosecond resolution and upto nine fractional digits.\n" + "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", @@ -64360,7 +65234,7 @@ "items": { "$ref": "#/types/gcp:dataloss/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern:PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern" }, - "description": "A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB.\nStructure is documented below.\n" + "description": "The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB.\nStructure is documented below.\n" } }, "type": "object" @@ -64432,7 +65306,7 @@ "properties": { "collection": { "$ref": "#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection", - "description": "A specific set of database resources for this filter to apply to.\nStructure is documented below.\n" + "description": "A specific set of buckets for this filter to apply to.\nStructure is documented below.\n" }, "databaseResourceReference": { "$ref": "#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference:PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference", @@ -64440,7 +65314,7 @@ }, "others": { "$ref": "#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers:PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers", - "description": "Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically.\n" + "description": "Match discovery resources not covered by any other filter.\n" } }, "type": "object" @@ -64449,7 +65323,7 @@ "properties": { "includeRegexes": { "$ref": "#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes", - "description": "A collection of regular expressions to match a database resource against.\nStructure is documented below.\n" + "description": "A collection of regular expressions to match a file store against.\nStructure is documented below.\n" } }, "type": "object" @@ -64461,7 +65335,7 @@ "items": { "$ref": "#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern:PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern" }, - "description": "A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB.\nStructure is documented below.\n" + "description": "The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB.\nStructure is documented below.\n" } }, "type": "object" @@ -64521,7 +65395,7 @@ "properties": { "refreshFrequency": { "type": "string", - "description": "Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n" + "description": "Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never.\nPossible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`.\n" }, "schemaModifiedCadence": { "$ref": "#/types/gcp:dataloss/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence:PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence", @@ -64546,6 +65420,167 @@ }, "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 generation_cadence applies 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 file store must have. If set, the value must be 1 hour or greater.\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 specific set of buckets 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 file store against.\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 file stores. 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/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": "Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have 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/PreventionDiscoveryConfigTargetSecretsTarget:PreventionDiscoveryConfigTargetSecretsTarget": { "type": "object" }, @@ -73313,7 +74348,7 @@ "properties": { "bigqueryDestinationConfig": { "$ref": "#/types/gcp:datastream/StreamDestinationConfigBigqueryDestinationConfig:StreamDestinationConfigBigqueryDestinationConfig", - "description": "A configuration for how data should be loaded to Cloud Storage.\nStructure is documented below.\n" + "description": "A configuration for how data should be loaded to Google BigQuery.\nStructure is documented below.\n" }, "destinationConnectionProfile": { "type": "string", @@ -73332,10 +74367,20 @@ }, "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 + }, "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" @@ -73347,6 +74392,12 @@ }, "type": "object" }, + "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigAppendOnly:StreamDestinationConfigBigqueryDestinationConfigAppendOnly": { + "type": "object" + }, + "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigMerge:StreamDestinationConfigBigqueryDestinationConfigMerge": { + "type": "object" + }, "gcp:datastream/StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset:StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset": { "properties": { "datasetId": { @@ -82668,7 +83719,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeConfigs": { "type": "array", @@ -82698,7 +83749,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeIp": { "type": "string", @@ -82869,11 +83920,11 @@ "items": { "type": "string" }, - "description": "A list of IPs, hostnames, and domains that should skip the proxy.\nExamples: [\"127.0.0.1\", \"example.com\", \".corp\", \"localhost\"].\n" + "description": "A list of IPs, hostnames, and domains that should skip the proxy.\nFor example: [\"127.0.0.1\", \"example.com\", \".corp\", \"localhost\"].\n" }, "uri": { "type": "string", - "description": "Specifies the address of your proxy server.\nExamples: http://domain\nWARNING: Do not provide credentials in the format\nhttp://(username:password@)domain these will be rejected by the server.\n" + "description": "Specifies the address of your proxy server.\nFor Example: http://domain\nWARNING: Do not provide credentials in the format\nof http://(username:password@)domain these will be rejected by the server.\n" } }, "type": "object", @@ -83198,7 +84249,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeConfigs": { "type": "array", @@ -83236,7 +84287,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeIp": { "type": "string", @@ -83411,7 +84462,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeConfigs": { "type": "array", @@ -83458,7 +84509,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeIp": { "type": "string", @@ -83559,7 +84610,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeConfigs": { "type": "array", @@ -83598,7 +84649,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeIp": { "type": "string", @@ -83786,11 +84837,11 @@ "items": { "type": "string" }, - "description": "A list of IPs, hostnames, and domains that should skip the proxy.\nExamples: [\"127.0.0.1\", \"example.com\", \".corp\", \"localhost\"].\n" + "description": "A list of IPs, hostnames, and domains that should skip the proxy.\nFor example [\"127.0.0.1\", \"example.com\", \".corp\", \"localhost\"].\n" }, "uri": { "type": "string", - "description": "Specifies the address of your proxy server.\nExamples: http://domain\nWARNING: Do not provide credentials in the format\nhttp://(username:password@)domain these will be rejected by the server.\n" + "description": "Specifies the address of your proxy server.\nFor example: http://domain\nWARNING: Do not provide credentials in the format\nof http://(username:password@)domain these will be rejected by the server.\n" } }, "type": "object", @@ -84058,7 +85109,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeConfigs": { "type": "array", @@ -84101,7 +85152,7 @@ "additionalProperties": { "type": "string" }, - "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\nhttp://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nExample: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" + "description": "The map of Kubernetes labels (key/value pairs) to be applied to\neach node. These will added in addition to any default label(s)\nthat Kubernetes may apply to the node. In case of conflict in\nlabel keys, the applied set may differ depending on the Kubernetes\nversion -- it's best to assume the behavior is undefined and\nconflicts should be avoided. For more information, including usage\nand the valid values, see:\n- http://kubernetes.io/v1.1/docs/user-guide/labels.html\nAn object containing a list of \"key\": value pairs.\nFor example: { \"name\": \"wrench\", \"mass\": \"1.3kg\", \"count\": \"3\" }.\n" }, "nodeIp": { "type": "string", @@ -87199,7 +88250,7 @@ "properties": { "kmsKeyName": { "type": "string", - "description": "The [KMS key name] with which the content of the Operation is encrypted. The expected\nformat: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" + "description": "The [KMS key name] with which the content of the Operation is encrypted. The\nexpected format: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" }, "type": { "type": "string", @@ -87445,7 +88496,7 @@ "properties": { "kmsKeyName": { "type": "string", - "description": "The [KMS key name] with which the content of the Operation is encrypted. The expected\nformat: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" + "description": "The [KMS key name] with which the content of the Operation is encrypted. The\nexpected format: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" }, "type": { "type": "string", @@ -87584,7 +88635,7 @@ "properties": { "kmsKeyName": { "type": "string", - "description": "The [KMS key name] with which the content of the Operation is encrypted. The expected\nformat: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" + "description": "The [KMS key name] with which the content of the Operation is encrypted. The\nexpected format: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" }, "type": { "type": "string", @@ -87669,7 +88720,7 @@ "properties": { "kmsKeyName": { "type": "string", - "description": "The [KMS key name] with which the content of the Operation is encrypted. The expected\nformat: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" + "description": "The [KMS key name] with which the content of the Operation is encrypted. The\nexpected format: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" }, "type": { "type": "string", @@ -87928,7 +88979,7 @@ "properties": { "kmsKeyName": { "type": "string", - "description": "The [KMS key name] with which the content of the Operation is encrypted. The expected\nformat: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" + "description": "The [KMS key name] with which the content of the Operation is encrypted. The\nexpected format: projects/*/locations/*/keyRings/*/cryptoKeys/*.\nWill be empty string if google managed.\n" }, "type": { "type": "string", @@ -91419,14 +92470,7 @@ "description": "The URI of the VPC network.\n" } }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "uri" - ] - } - } + "type": "object" }, "gcp:networkconnectivity/PolicyBasedRouteFilter:PolicyBasedRouteFilter": { "properties": { @@ -91653,7 +92697,7 @@ "items": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedRouterApplianceInstancesInstance:SpokeLinkedRouterApplianceInstancesInstance" }, - "description": "The list of router appliance instances\n", + "description": "The list of router appliance instances\nStructure is documented below.\n", "willReplaceOnChanges": true }, "siteToSiteDataTransfer": { @@ -91677,7 +92721,7 @@ }, "virtualMachine": { "type": "string", - "description": "The URI of the virtual machine resource\n\n- - -\n", + "description": "The URI of the virtual machine resource\n", "willReplaceOnChanges": true } }, @@ -92063,11 +93107,13 @@ }, "clientValidationMode": { "type": "string", - "description": "When the client presents an invalid certificate or no certificate to the load balancer, the clientValidationMode specifies how the client connection is handled.\nRequired if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.\nPossible values are: `CLIENT_VALIDATION_MODE_UNSPECIFIED`, `ALLOW_INVALID_OR_MISSING_CLIENT_CERT`, `REJECT_INVALID`.\n" + "description": "When the client presents an invalid certificate or no certificate to the load balancer, the clientValidationMode specifies how the client connection is handled.\nRequired if the policy is to be used with the external HTTPS load balancing. For Traffic Director it must be empty.\nPossible values are: `CLIENT_VALIDATION_MODE_UNSPECIFIED`, `ALLOW_INVALID_OR_MISSING_CLIENT_CERT`, `REJECT_INVALID`.\n", + "willReplaceOnChanges": true }, "clientValidationTrustConfig": { "type": "string", - "description": "Reference to the TrustConfig from certificatemanager.googleapis.com namespace.\nIf specified, the chain validation will be performed against certificates configured in the given TrustConfig.\nAllowed only if the policy is to be used with external HTTPS load balancers.\n" + "description": "Reference to the TrustConfig from certificatemanager.googleapis.com namespace.\nIf specified, the chain validation will be performed against certificates configured in the given TrustConfig.\nAllowed only if the policy is to be used with external HTTPS load balancers.\n", + "willReplaceOnChanges": true } }, "type": "object" @@ -108774,6 +109820,14 @@ }, "gcp:workbench/InstanceGceSetupNetworkInterface:InstanceGceSetupNetworkInterface": { "properties": { + "accessConfigs": { + "type": "array", + "items": { + "$ref": "#/types/gcp:workbench/InstanceGceSetupNetworkInterfaceAccessConfig:InstanceGceSetupNetworkInterfaceAccessConfig" + }, + "description": "Optional. An array of configurations for this interface. Currently, only one access\nconfig, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the\ninstance will have an external internet access through an ephemeral\nexternal IP address.\nStructure is documented below.\n", + "willReplaceOnChanges": true + }, "network": { "type": "string", "description": "Optional. The name of the VPC that this VM instance is in.\n", @@ -108794,12 +109848,26 @@ "language": { "nodejs": { "requiredOutputs": [ + "accessConfigs", "network", "subnet" ] } } }, + "gcp:workbench/InstanceGceSetupNetworkInterfaceAccessConfig:InstanceGceSetupNetworkInterfaceAccessConfig": { + "properties": { + "externalIp": { + "type": "string", + "description": "An external IP address associated with this instance. Specify an unused\nstatic external IP address available to the project or leave this field\nundefined to use an IP from a shared ephemeral IP address pool. If you\nspecify a static external IP address, it must live in the same region as\nthe zone of the instance.\n", + "willReplaceOnChanges": true + } + }, + "type": "object", + "required": [ + "externalIp" + ] + }, "gcp:workbench/InstanceGceSetupServiceAccount:InstanceGceSetupServiceAccount": { "properties": { "email": { @@ -113430,6 +114498,10 @@ "$ref": "#/types/gcp:alloydb/InstanceNetworkConfig:InstanceNetworkConfig", "description": "Instance level network configuration.\nStructure is documented below.\n" }, + "observabilityConfig": { + "$ref": "#/types/gcp:alloydb/InstanceObservabilityConfig:InstanceObservabilityConfig", + "description": "Configuration for enhanced query insights.\nStructure is documented below.\n" + }, "pscInstanceConfig": { "$ref": "#/types/gcp:alloydb/InstancePscInstanceConfig:InstancePscInstanceConfig", "description": "Configuration for Private Service Connect (PSC) for the instance.\nStructure is documented below.\n" @@ -113484,6 +114556,7 @@ "ipAddress", "machineConfig", "name", + "observabilityConfig", "publicIpAddress", "queryInsightsConfig", "reconciling", @@ -113552,6 +114625,10 @@ "$ref": "#/types/gcp:alloydb/InstanceNetworkConfig:InstanceNetworkConfig", "description": "Instance level network configuration.\nStructure is documented below.\n" }, + "observabilityConfig": { + "$ref": "#/types/gcp:alloydb/InstanceObservabilityConfig:InstanceObservabilityConfig", + "description": "Configuration for enhanced query insights.\nStructure is documented below.\n" + }, "pscInstanceConfig": { "$ref": "#/types/gcp:alloydb/InstancePscInstanceConfig:InstancePscInstanceConfig", "description": "Configuration for Private Service Connect (PSC) for the instance.\nStructure is documented below.\n" @@ -113658,6 +114735,10 @@ "$ref": "#/types/gcp:alloydb/InstanceNetworkConfig:InstanceNetworkConfig", "description": "Instance level network configuration.\nStructure is documented below.\n" }, + "observabilityConfig": { + "$ref": "#/types/gcp:alloydb/InstanceObservabilityConfig:InstanceObservabilityConfig", + "description": "Configuration for enhanced query insights.\nStructure is documented below.\n" + }, "pscInstanceConfig": { "$ref": "#/types/gcp:alloydb/InstancePscInstanceConfig:InstancePscInstanceConfig", "description": "Configuration for Private Service Connect (PSC) for the instance.\nStructure is documented below.\n" @@ -116130,6 +117211,118 @@ "type": "object" } }, + "gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps": { + "description": "Collection of key/value string pairs.\n\n\nTo get more information about EnvironmentKeyvaluemaps, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create)\n* How-to Guides\n * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps)\n\n## Example Usage\n\n### Apigee Environment Keyvaluemaps Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeEnvironment = new gcp.apigee.Environment(\"apigee_environment\", {\n orgId: apigeeOrg.id,\n name: \"tf-test-env\",\n description: \"Apigee Environment\",\n displayName: \"Apigee Environment\",\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"tf-test-instance\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n});\nconst apigeeInstanceAttachment = new gcp.apigee.InstanceAttachment(\"apigee_instance_attachment\", {\n instanceId: apigeeInstance.id,\n environment: apigeeEnvironment.name,\n});\nconst apigeeEnvironmentKeyvaluemaps = new gcp.apigee.EnvironmentKeyvaluemaps(\"apigee_environment_keyvaluemaps\", {\n envId: apigeeEnvironment.id,\n name: \"tf-test-env-kvms\",\n}, {\n dependsOn: [\n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_environment = gcp.apigee.Environment(\"apigee_environment\",\n org_id=apigee_org.id,\n name=\"tf-test-env\",\n description=\"Apigee Environment\",\n display_name=\"Apigee Environment\")\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"tf-test-instance\",\n location=\"us-central1\",\n org_id=apigee_org.id)\napigee_instance_attachment = gcp.apigee.InstanceAttachment(\"apigee_instance_attachment\",\n instance_id=apigee_instance.id,\n environment=apigee_environment.name)\napigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps(\"apigee_environment_keyvaluemaps\",\n env_id=apigee_environment.id,\n name=\"tf-test-env-kvms\",\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_org,\n apigee_environment,\n apigee_instance,\n apigee_instance_attachment,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeEnvironment = new Gcp.Apigee.Environment(\"apigee_environment\", new()\n {\n OrgId = apigeeOrg.Id,\n Name = \"tf-test-env\",\n Description = \"Apigee Environment\",\n DisplayName = \"Apigee Environment\",\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"tf-test-instance\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n });\n\n var apigeeInstanceAttachment = new Gcp.Apigee.InstanceAttachment(\"apigee_instance_attachment\", new()\n {\n InstanceId = apigeeInstance.Id,\n Environment = apigeeEnvironment.Name,\n });\n\n var apigeeEnvironmentKeyvaluemaps = new Gcp.Apigee.EnvironmentKeyvaluemaps(\"apigee_environment_keyvaluemaps\", new()\n {\n EnvId = apigeeEnvironment.Id,\n Name = \"tf-test-env-kvms\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeEnvironment, err := apigee.NewEnvironment(ctx, \"apigee_environment\", \u0026apigee.EnvironmentArgs{\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tName: pulumi.String(\"tf-test-env\"),\n\t\t\tDescription: pulumi.String(\"Apigee Environment\"),\n\t\t\tDisplayName: pulumi.String(\"Apigee Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeInstance, err := apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"tf-test-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeInstanceAttachment, err := apigee.NewInstanceAttachment(ctx, \"apigee_instance_attachment\", \u0026apigee.InstanceAttachmentArgs{\n\t\t\tInstanceId: apigeeInstance.ID(),\n\t\t\tEnvironment: apigeeEnvironment.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewEnvironmentKeyvaluemaps(ctx, \"apigee_environment_keyvaluemaps\", \u0026apigee.EnvironmentKeyvaluemapsArgs{\n\t\t\tEnvId: apigeeEnvironment.ID(),\n\t\t\tName: pulumi.String(\"tf-test-env-kvms\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeOrg,\n\t\t\tapigeeEnvironment,\n\t\t\tapigeeInstance,\n\t\t\tapigeeInstanceAttachment,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Environment;\nimport com.pulumi.gcp.apigee.EnvironmentArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.gcp.apigee.InstanceAttachment;\nimport com.pulumi.gcp.apigee.InstanceAttachmentArgs;\nimport com.pulumi.gcp.apigee.EnvironmentKeyvaluemaps;\nimport com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeEnvironment = new Environment(\"apigeeEnvironment\", EnvironmentArgs.builder()\n .orgId(apigeeOrg.id())\n .name(\"tf-test-env\")\n .description(\"Apigee Environment\")\n .displayName(\"Apigee Environment\")\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"tf-test-instance\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .build());\n\n var apigeeInstanceAttachment = new InstanceAttachment(\"apigeeInstanceAttachment\", InstanceAttachmentArgs.builder()\n .instanceId(apigeeInstance.id())\n .environment(apigeeEnvironment.name())\n .build());\n\n var apigeeEnvironmentKeyvaluemaps = new EnvironmentKeyvaluemaps(\"apigeeEnvironmentKeyvaluemaps\", EnvironmentKeyvaluemapsArgs.builder()\n .envId(apigeeEnvironment.id())\n .name(\"tf-test-env-kvms\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeEnvironment:\n type: gcp:apigee:Environment\n name: apigee_environment\n properties:\n orgId: ${apigeeOrg.id}\n name: tf-test-env\n description: Apigee Environment\n displayName: Apigee Environment\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: tf-test-instance\n location: us-central1\n orgId: ${apigeeOrg.id}\n apigeeInstanceAttachment:\n type: gcp:apigee:InstanceAttachment\n name: apigee_instance_attachment\n properties:\n instanceId: ${apigeeInstance.id}\n environment: ${apigeeEnvironment.name}\n apigeeEnvironmentKeyvaluemaps:\n type: gcp:apigee:EnvironmentKeyvaluemaps\n name: apigee_environment_keyvaluemaps\n properties:\n envId: ${apigeeEnvironment.id}\n name: tf-test-env-kvms\n options:\n dependson:\n - ${apigeeOrg}\n - ${apigeeEnvironment}\n - ${apigeeInstance}\n - ${apigeeInstanceAttachment}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nEnvironmentKeyvaluemaps can be imported using any of these accepted formats:\n\n* `{{env_id}}/keyvaluemaps/{{name}}`\n\n* `{{env_id}}/{{name}}`\n\nWhen using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}}\n```\n\n", + "properties": { + "envId": { + "type": "string", + "description": "The Apigee environment group associated with the Apigee environment,\nin the format `organizations/{{org_name}}/environments/{{env_name}}`.\n\n\n- - -\n" + }, + "name": { + "type": "string", + "description": "Required. ID of the key value map.\n" + } + }, + "required": [ + "envId", + "name" + ], + "inputProperties": { + "envId": { + "type": "string", + "description": "The Apigee environment group associated with the Apigee environment,\nin the format `organizations/{{org_name}}/environments/{{env_name}}`.\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Required. ID of the key value map.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "envId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering EnvironmentKeyvaluemaps resources.\n", + "properties": { + "envId": { + "type": "string", + "description": "The Apigee environment group associated with the Apigee environment,\nin the format `organizations/{{org_name}}/environments/{{env_name}}`.\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Required. ID of the key value map.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, + "gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries": { + "description": "Creates key value entries in a key value map scoped to an environment.\n\n\nTo get more information about EnvironmentKeyvaluemapsEntries, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.keyvaluemaps.entries/create)\n* How-to Guides\n * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps)\n\n## Example Usage\n\n### Apigee Environment Keyvaluemaps Entries Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeEnvironment = new gcp.apigee.Environment(\"apigee_environment\", {\n orgId: apigeeOrg.id,\n name: \"tf-test-env\",\n description: \"Apigee Environment\",\n displayName: \"Apigee Environment\",\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"tf-test-instance\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n});\nconst apigeeInstanceAttachment = new gcp.apigee.InstanceAttachment(\"apigee_instance_attachment\", {\n instanceId: apigeeInstance.id,\n environment: apigeeEnvironment.name,\n});\nconst apigeeEnvironmentKeyvaluemaps = new gcp.apigee.EnvironmentKeyvaluemaps(\"apigee_environment_keyvaluemaps\", {\n envId: createApigeeEnvironment.id,\n name: \"tf-test-env-kvms\",\n}, {\n dependsOn: [\n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment,\n ],\n});\nconst apigeeEnvironmentKeyvaluemapsEntries = new gcp.apigee.EnvironmentKeyvaluemapsEntries(\"apigee_environment_keyvaluemaps_entries\", {\n envKeyvaluemapId: apigeeEnvironmentKeyvaluemaps.id,\n name: \"testName\",\n value: \"testValue\",\n}, {\n dependsOn: [\n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment,\n apigeeEnvironmentKeyvaluemaps,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_environment = gcp.apigee.Environment(\"apigee_environment\",\n org_id=apigee_org.id,\n name=\"tf-test-env\",\n description=\"Apigee Environment\",\n display_name=\"Apigee Environment\")\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"tf-test-instance\",\n location=\"us-central1\",\n org_id=apigee_org.id)\napigee_instance_attachment = gcp.apigee.InstanceAttachment(\"apigee_instance_attachment\",\n instance_id=apigee_instance.id,\n environment=apigee_environment.name)\napigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps(\"apigee_environment_keyvaluemaps\",\n env_id=create_apigee_environment[\"id\"],\n name=\"tf-test-env-kvms\",\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_org,\n apigee_environment,\n apigee_instance,\n apigee_instance_attachment,\n ]))\napigee_environment_keyvaluemaps_entries = gcp.apigee.EnvironmentKeyvaluemapsEntries(\"apigee_environment_keyvaluemaps_entries\",\n env_keyvaluemap_id=apigee_environment_keyvaluemaps.id,\n name=\"testName\",\n value=\"testValue\",\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_org,\n apigee_environment,\n apigee_instance,\n apigee_instance_attachment,\n apigee_environment_keyvaluemaps,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeEnvironment = new Gcp.Apigee.Environment(\"apigee_environment\", new()\n {\n OrgId = apigeeOrg.Id,\n Name = \"tf-test-env\",\n Description = \"Apigee Environment\",\n DisplayName = \"Apigee Environment\",\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"tf-test-instance\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n });\n\n var apigeeInstanceAttachment = new Gcp.Apigee.InstanceAttachment(\"apigee_instance_attachment\", new()\n {\n InstanceId = apigeeInstance.Id,\n Environment = apigeeEnvironment.Name,\n });\n\n var apigeeEnvironmentKeyvaluemaps = new Gcp.Apigee.EnvironmentKeyvaluemaps(\"apigee_environment_keyvaluemaps\", new()\n {\n EnvId = createApigeeEnvironment.Id,\n Name = \"tf-test-env-kvms\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment,\n },\n });\n\n var apigeeEnvironmentKeyvaluemapsEntries = new Gcp.Apigee.EnvironmentKeyvaluemapsEntries(\"apigee_environment_keyvaluemaps_entries\", new()\n {\n EnvKeyvaluemapId = apigeeEnvironmentKeyvaluemaps.Id,\n Name = \"testName\",\n Value = \"testValue\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment,\n apigeeEnvironmentKeyvaluemaps,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeEnvironment, err := apigee.NewEnvironment(ctx, \"apigee_environment\", \u0026apigee.EnvironmentArgs{\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tName: pulumi.String(\"tf-test-env\"),\n\t\t\tDescription: pulumi.String(\"Apigee Environment\"),\n\t\t\tDisplayName: pulumi.String(\"Apigee Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeInstance, err := apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"tf-test-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeInstanceAttachment, err := apigee.NewInstanceAttachment(ctx, \"apigee_instance_attachment\", \u0026apigee.InstanceAttachmentArgs{\n\t\t\tInstanceId: apigeeInstance.ID(),\n\t\t\tEnvironment: apigeeEnvironment.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeEnvironmentKeyvaluemaps, err := apigee.NewEnvironmentKeyvaluemaps(ctx, \"apigee_environment_keyvaluemaps\", \u0026apigee.EnvironmentKeyvaluemapsArgs{\n\t\t\tEnvId: pulumi.Any(createApigeeEnvironment.Id),\n\t\t\tName: pulumi.String(\"tf-test-env-kvms\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeOrg,\n\t\t\tapigeeEnvironment,\n\t\t\tapigeeInstance,\n\t\t\tapigeeInstanceAttachment,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewEnvironmentKeyvaluemapsEntries(ctx, \"apigee_environment_keyvaluemaps_entries\", \u0026apigee.EnvironmentKeyvaluemapsEntriesArgs{\n\t\t\tEnvKeyvaluemapId: apigeeEnvironmentKeyvaluemaps.ID(),\n\t\t\tName: pulumi.String(\"testName\"),\n\t\t\tValue: pulumi.String(\"testValue\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeOrg,\n\t\t\tapigeeEnvironment,\n\t\t\tapigeeInstance,\n\t\t\tapigeeInstanceAttachment,\n\t\t\tapigeeEnvironmentKeyvaluemaps,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Environment;\nimport com.pulumi.gcp.apigee.EnvironmentArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.gcp.apigee.InstanceAttachment;\nimport com.pulumi.gcp.apigee.InstanceAttachmentArgs;\nimport com.pulumi.gcp.apigee.EnvironmentKeyvaluemaps;\nimport com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsArgs;\nimport com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsEntries;\nimport com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsEntriesArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeEnvironment = new Environment(\"apigeeEnvironment\", EnvironmentArgs.builder()\n .orgId(apigeeOrg.id())\n .name(\"tf-test-env\")\n .description(\"Apigee Environment\")\n .displayName(\"Apigee Environment\")\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"tf-test-instance\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .build());\n\n var apigeeInstanceAttachment = new InstanceAttachment(\"apigeeInstanceAttachment\", InstanceAttachmentArgs.builder()\n .instanceId(apigeeInstance.id())\n .environment(apigeeEnvironment.name())\n .build());\n\n var apigeeEnvironmentKeyvaluemaps = new EnvironmentKeyvaluemaps(\"apigeeEnvironmentKeyvaluemaps\", EnvironmentKeyvaluemapsArgs.builder()\n .envId(createApigeeEnvironment.id())\n .name(\"tf-test-env-kvms\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment)\n .build());\n\n var apigeeEnvironmentKeyvaluemapsEntries = new EnvironmentKeyvaluemapsEntries(\"apigeeEnvironmentKeyvaluemapsEntries\", EnvironmentKeyvaluemapsEntriesArgs.builder()\n .envKeyvaluemapId(apigeeEnvironmentKeyvaluemaps.id())\n .name(\"testName\")\n .value(\"testValue\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeOrg,\n apigeeEnvironment,\n apigeeInstance,\n apigeeInstanceAttachment,\n apigeeEnvironmentKeyvaluemaps)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeEnvironment:\n type: gcp:apigee:Environment\n name: apigee_environment\n properties:\n orgId: ${apigeeOrg.id}\n name: tf-test-env\n description: Apigee Environment\n displayName: Apigee Environment\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: tf-test-instance\n location: us-central1\n orgId: ${apigeeOrg.id}\n apigeeInstanceAttachment:\n type: gcp:apigee:InstanceAttachment\n name: apigee_instance_attachment\n properties:\n instanceId: ${apigeeInstance.id}\n environment: ${apigeeEnvironment.name}\n apigeeEnvironmentKeyvaluemaps:\n type: gcp:apigee:EnvironmentKeyvaluemaps\n name: apigee_environment_keyvaluemaps\n properties:\n envId: ${createApigeeEnvironment.id}\n name: tf-test-env-kvms\n options:\n dependson:\n - ${apigeeOrg}\n - ${apigeeEnvironment}\n - ${apigeeInstance}\n - ${apigeeInstanceAttachment}\n apigeeEnvironmentKeyvaluemapsEntries:\n type: gcp:apigee:EnvironmentKeyvaluemapsEntries\n name: apigee_environment_keyvaluemaps_entries\n properties:\n envKeyvaluemapId: ${apigeeEnvironmentKeyvaluemaps.id}\n name: testName\n value: testValue\n options:\n dependson:\n - ${apigeeOrg}\n - ${apigeeEnvironment}\n - ${apigeeInstance}\n - ${apigeeInstanceAttachment}\n - ${apigeeEnvironmentKeyvaluemaps}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nEnvironmentKeyvaluemapsEntries can be imported using any of these accepted formats:\n\n* `{{env_keyvaluemap_id}}/entries/{{name}}`\n\n* `{{env_keyvaluemap_id}}/{{name}}`\n\nWhen using the `pulumi import` command, EnvironmentKeyvaluemapsEntries can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/entries/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/{{name}}\n```\n\n", + "properties": { + "envKeyvaluemapId": { + "type": "string", + "description": "The Apigee environment keyvalumaps Id associated with the Apigee environment,\nin the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`.\n\n\n- - -\n" + }, + "name": { + "type": "string", + "description": "Required. Resource URI that can be used to identify the scope of the key value map entries.\n" + }, + "value": { + "type": "string", + "description": "Required. Data or payload that is being retrieved and associated with the unique key.\n" + } + }, + "required": [ + "envKeyvaluemapId", + "name", + "value" + ], + "inputProperties": { + "envKeyvaluemapId": { + "type": "string", + "description": "The Apigee environment keyvalumaps Id associated with the Apigee environment,\nin the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`.\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Required. Resource URI that can be used to identify the scope of the key value map entries.\n", + "willReplaceOnChanges": true + }, + "value": { + "type": "string", + "description": "Required. Data or payload that is being retrieved and associated with the unique key.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "envKeyvaluemapId", + "value" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering EnvironmentKeyvaluemapsEntries resources.\n", + "properties": { + "envKeyvaluemapId": { + "type": "string", + "description": "The Apigee environment keyvalumaps Id associated with the Apigee environment,\nin the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`.\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Required. Resource URI that can be used to identify the scope of the key value map entries.\n", + "willReplaceOnChanges": true + }, + "value": { + "type": "string", + "description": "Required. Data or payload that is being retrieved and associated with the unique key.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "gcp:apigee/flowhook:Flowhook": { "description": "Represents a sharedflow attachment to a flowhook point.\n\n\nTo get more information about Flowhook, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.flowhooks#FlowHook)\n* How-to Guides\n * [organizations.environments.flowhooks](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.flowhooks#FlowHook)\n\n## Import\n\nFlowhook can be imported using any of these accepted formats:\n\n* `organizations/{{org_id}}/environments/{{environment}}/flowhooks/{{flow_hook_point}}`\n\n* `{{org_id}}/{{environment}}/{{flow_hook_point}}`\n\nWhen using the `pulumi import` command, Flowhook can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/flowhook:Flowhook default organizations/{{org_id}}/environments/{{environment}}/flowhooks/{{flow_hook_point}}\n```\n\n```sh\n$ pulumi import gcp:apigee/flowhook:Flowhook default {{org_id}}/{{environment}}/{{flow_hook_point}}\n```\n\n", "properties": { @@ -116240,7 +117433,7 @@ } }, "gcp:apigee/instance:Instance": { - "description": "An `Instance` is the runtime dataplane in Apigee.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.instances/create)\n* How-to Guides\n * [Creating a runtime instance](https://cloud.google.com/apigee/docs/api-platform/get-started/create-instance)\n\n## Example Usage\n\n### Apigee Instance Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n org_id=apigee_org.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n orgId: ${apigeeOrg.id}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Instance Cidr Range\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 22,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n peeringCidrRange: \"SLASH_22\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=22,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n org_id=apigee_org.id,\n peering_cidr_range=\"SLASH_22\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 22,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n PeeringCidrRange = \"SLASH_22\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tPeeringCidrRange: pulumi.String(\"SLASH_22\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(22)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .peeringCidrRange(\"SLASH_22\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 22\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n orgId: ${apigeeOrg.id}\n peeringCidrRange: SLASH_22\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Instance Ip Range\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 22,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n ipRange: \"10.87.8.0/22\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=22,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n org_id=apigee_org.id,\n ip_range=\"10.87.8.0/22\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 22,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n IpRange = \"10.87.8.0/22\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tIpRange: pulumi.String(\"10.87.8.0/22\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(22)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .ipRange(\"10.87.8.0/22\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 22\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n orgId: ${apigeeOrg.id}\n ipRange: 10.87.8.0/22\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Instance Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`,\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Auto-provisioned Apigee Org.\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [\n apigeeVpcConnection,\n apigeeSaKeyuser,\n ],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n description: \"Auto-managed Apigee Runtime Instance\",\n displayName: \"my-instance-name\",\n orgId: apigeeOrg.id,\n diskEncryptionKeyName: apigeeKey.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Auto-provisioned Apigee Org.\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_vpc_connection,\n apigee_sa_keyuser,\n ]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n description=\"Auto-managed Apigee Runtime Instance\",\n display_name=\"my-instance-name\",\n org_id=apigee_org.id,\n disk_encryption_key_name=apigee_key.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Auto-provisioned Apigee Org.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n apigeeSaKeyuser,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n Description = \"Auto-managed Apigee Runtime Instance\",\n DisplayName = \"my-instance-name\",\n OrgId = apigeeOrg.Id,\n DiskEncryptionKeyName = apigeeKey.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Auto-provisioned Apigee Org.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"Auto-managed Apigee Runtime Instance\"),\n\t\t\tDisplayName: pulumi.String(\"my-instance-name\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tDiskEncryptionKeyName: apigeeKey.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Auto-provisioned Apigee Org.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeVpcConnection,\n apigeeSaKeyuser)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .description(\"Auto-managed Apigee Runtime Instance\")\n .displayName(\"my-instance-name\")\n .orgId(apigeeOrg.id())\n .diskEncryptionKeyName(apigeeKey.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${apigeeSa.email}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Auto-provisioned Apigee Org.\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n - ${apigeeSaKeyuser}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n description: Auto-managed Apigee Runtime Instance\n displayName: my-instance-name\n orgId: ${apigeeOrg.id}\n diskEncryptionKeyName: ${apigeeKey.id}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance can be imported using any of these accepted formats:\n\n* `{{org_id}}/instances/{{name}}`\n\n* `{{org_id}}/{{name}}`\n\nWhen using the `pulumi import` command, Instance can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/instance:Instance default {{org_id}}/instances/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/instance:Instance default {{org_id}}/{{name}}\n```\n\n", + "description": "An `Instance` is the runtime dataplane in Apigee.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.instances/create)\n* How-to Guides\n * [Creating a runtime instance](https://cloud.google.com/apigee/docs/api-platform/get-started/create-instance)\n\n## Example Usage\n\n### Apigee Instance Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n org_id=apigee_org.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n orgId: ${apigeeOrg.id}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Instance Cidr Range\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 22,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n peeringCidrRange: \"SLASH_22\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=22,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n org_id=apigee_org.id,\n peering_cidr_range=\"SLASH_22\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 22,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n PeeringCidrRange = \"SLASH_22\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tPeeringCidrRange: pulumi.String(\"SLASH_22\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(22)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .peeringCidrRange(\"SLASH_22\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 22\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n orgId: ${apigeeOrg.id}\n peeringCidrRange: SLASH_22\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Instance Ip Range\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 22,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n orgId: apigeeOrg.id,\n ipRange: \"10.87.8.0/22\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=22,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n org_id=apigee_org.id,\n ip_range=\"10.87.8.0/22\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 22,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n OrgId = apigeeOrg.Id,\n IpRange = \"10.87.8.0/22\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(22),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tIpRange: pulumi.String(\"10.87.8.0/22\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(22)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .orgId(apigeeOrg.id())\n .ipRange(\"10.87.8.0/22\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 22\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n orgId: ${apigeeOrg.id}\n ipRange: 10.87.8.0/22\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Instance Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: apigeeSa.member,\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Auto-provisioned Apigee Org.\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [\n apigeeVpcConnection,\n apigeeSaKeyuser,\n ],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"my-instance-name\",\n location: \"us-central1\",\n description: \"Auto-managed Apigee Runtime Instance\",\n displayName: \"my-instance-name\",\n orgId: apigeeOrg.id,\n diskEncryptionKeyName: apigeeKey.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.member)\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Auto-provisioned Apigee Org.\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_vpc_connection,\n apigee_sa_keyuser,\n ]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"my-instance-name\",\n location=\"us-central1\",\n description=\"Auto-managed Apigee Runtime Instance\",\n display_name=\"my-instance-name\",\n org_id=apigee_org.id,\n disk_encryption_key_name=apigee_key.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Member,\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Auto-provisioned Apigee Org.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n apigeeSaKeyuser,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"my-instance-name\",\n Location = \"us-central1\",\n Description = \"Auto-managed Apigee Runtime Instance\",\n DisplayName = \"my-instance-name\",\n OrgId = apigeeOrg.Id,\n DiskEncryptionKeyName = apigeeKey.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Auto-provisioned Apigee Org.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance-name\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"Auto-managed Apigee Runtime Instance\"),\n\t\t\tDisplayName: pulumi.String(\"my-instance-name\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tDiskEncryptionKeyName: apigeeKey.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.member())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Auto-provisioned Apigee Org.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeVpcConnection,\n apigeeSaKeyuser)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"my-instance-name\")\n .location(\"us-central1\")\n .description(\"Auto-managed Apigee Runtime Instance\")\n .displayName(\"my-instance-name\")\n .orgId(apigeeOrg.id())\n .diskEncryptionKeyName(apigeeKey.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: ${apigeeSa.member}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Auto-provisioned Apigee Org.\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n - ${apigeeSaKeyuser}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: my-instance-name\n location: us-central1\n description: Auto-managed Apigee Runtime Instance\n displayName: my-instance-name\n orgId: ${apigeeOrg.id}\n diskEncryptionKeyName: ${apigeeKey.id}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance can be imported using any of these accepted formats:\n\n* `{{org_id}}/instances/{{name}}`\n\n* `{{org_id}}/{{name}}`\n\nWhen using the `pulumi import` command, Instance can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/instance:Instance default {{org_id}}/instances/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/instance:Instance default {{org_id}}/{{name}}\n```\n\n", "properties": { "consumerAcceptLists": { "type": "array", @@ -116962,7 +118155,7 @@ } }, "gcp:apigee/natAddress:NatAddress": { - "description": "Apigee NAT (network address translation) address. A NAT address is a static external IP address used for Internet egress traffic. This is not avaible for Apigee hybrid.\nApigee NAT addresses are not automatically activated because they might require explicit allow entries on the target systems first. See https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.instances.natAddresses/activate\n\n\nTo get more information about NatAddress, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.instances.natAddresses)\n* How-to Guides\n * [Provisioning NAT IPs](https://cloud.google.com/apigee/docs/api-platform/security/nat-provisioning)\n\n## Example Usage\n\n### Apigee Nat Address Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 21,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`,\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Terraform-provisioned Apigee Org.\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [\n apigeeVpcConnection,\n apigeeSaKeyuser,\n ],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"apigee-instance\",\n location: \"us-central1\",\n description: \"Terraform-managed Apigee Runtime Instance\",\n displayName: \"apigee-instance\",\n orgId: apigeeOrg.id,\n diskEncryptionKeyName: apigeeKey.id,\n});\nconst apigee_nat = new gcp.apigee.NatAddress(\"apigee-nat\", {\n name: \"my-nat-address\",\n instanceId: apigeeInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=21,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Terraform-provisioned Apigee Org.\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_vpc_connection,\n apigee_sa_keyuser,\n ]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"apigee-instance\",\n location=\"us-central1\",\n description=\"Terraform-managed Apigee Runtime Instance\",\n display_name=\"apigee-instance\",\n org_id=apigee_org.id,\n disk_encryption_key_name=apigee_key.id)\napigee_nat = gcp.apigee.NatAddress(\"apigee-nat\",\n name=\"my-nat-address\",\n instance_id=apigee_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 21,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Terraform-provisioned Apigee Org.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n apigeeSaKeyuser,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"apigee-instance\",\n Location = \"us-central1\",\n Description = \"Terraform-managed Apigee Runtime Instance\",\n DisplayName = \"apigee-instance\",\n OrgId = apigeeOrg.Id,\n DiskEncryptionKeyName = apigeeKey.Id,\n });\n\n var apigee_nat = new Gcp.Apigee.NatAddress(\"apigee-nat\", new()\n {\n Name = \"my-nat-address\",\n InstanceId = apigeeInstance.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(21),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Terraform-provisioned Apigee Org.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeInstance, err := apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"apigee-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"Terraform-managed Apigee Runtime Instance\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-instance\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tDiskEncryptionKeyName: apigeeKey.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewNatAddress(ctx, \"apigee-nat\", \u0026apigee.NatAddressArgs{\n\t\t\tName: pulumi.String(\"my-nat-address\"),\n\t\t\tInstanceId: apigeeInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.gcp.apigee.NatAddress;\nimport com.pulumi.gcp.apigee.NatAddressArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(21)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Terraform-provisioned Apigee Org.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeVpcConnection,\n apigeeSaKeyuser)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"apigee-instance\")\n .location(\"us-central1\")\n .description(\"Terraform-managed Apigee Runtime Instance\")\n .displayName(\"apigee-instance\")\n .orgId(apigeeOrg.id())\n .diskEncryptionKeyName(apigeeKey.id())\n .build());\n\n var apigee_nat = new NatAddress(\"apigee-nat\", NatAddressArgs.builder()\n .name(\"my-nat-address\")\n .instanceId(apigeeInstance.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 21\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${apigeeSa.email}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Terraform-provisioned Apigee Org.\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n - ${apigeeSaKeyuser}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: apigee-instance\n location: us-central1\n description: Terraform-managed Apigee Runtime Instance\n displayName: apigee-instance\n orgId: ${apigeeOrg.id}\n diskEncryptionKeyName: ${apigeeKey.id}\n apigee-nat:\n type: gcp:apigee:NatAddress\n properties:\n name: my-nat-address\n instanceId: ${apigeeInstance.id}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNatAddress can be imported using any of these accepted formats:\n\n* `{{instance_id}}/natAddresses/{{name}}`\n\n* `{{instance_id}}/{{name}}`\n\nWhen using the `pulumi import` command, NatAddress can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/natAddress:NatAddress default {{instance_id}}/natAddresses/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/natAddress:NatAddress default {{instance_id}}/{{name}}\n```\n\n", + "description": "Apigee NAT (network address translation) address. A NAT address is a static external IP address used for Internet egress traffic. This is not avaible for Apigee hybrid.\nApigee NAT addresses are not automatically activated because they might require explicit allow entries on the target systems first. See https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.instances.natAddresses/activate\n\n\nTo get more information about NatAddress, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.instances.natAddresses)\n* How-to Guides\n * [Provisioning NAT IPs](https://cloud.google.com/apigee/docs/api-platform/security/nat-provisioning)\n\n## Example Usage\n\n### Apigee Nat Address Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 21,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: apigeeSa.member,\n});\nconst apigeeOrg = new gcp.apigee.Organization(\"apigee_org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Terraform-provisioned Apigee Org.\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [\n apigeeVpcConnection,\n apigeeSaKeyuser,\n ],\n});\nconst apigeeInstance = new gcp.apigee.Instance(\"apigee_instance\", {\n name: \"apigee-instance\",\n location: \"us-central1\",\n description: \"Terraform-managed Apigee Runtime Instance\",\n displayName: \"apigee-instance\",\n orgId: apigeeOrg.id,\n diskEncryptionKeyName: apigeeKey.id,\n});\nconst apigee_nat = new gcp.apigee.NatAddress(\"apigee-nat\", {\n name: \"my-nat-address\",\n instanceId: apigeeInstance.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=21,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.member)\napigee_org = gcp.apigee.Organization(\"apigee_org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Terraform-provisioned Apigee Org.\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_vpc_connection,\n apigee_sa_keyuser,\n ]))\napigee_instance = gcp.apigee.Instance(\"apigee_instance\",\n name=\"apigee-instance\",\n location=\"us-central1\",\n description=\"Terraform-managed Apigee Runtime Instance\",\n display_name=\"apigee-instance\",\n org_id=apigee_org.id,\n disk_encryption_key_name=apigee_key.id)\napigee_nat = gcp.apigee.NatAddress(\"apigee-nat\",\n name=\"my-nat-address\",\n instance_id=apigee_instance.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 21,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Member,\n });\n\n var apigeeOrg = new Gcp.Apigee.Organization(\"apigee_org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Terraform-provisioned Apigee Org.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n apigeeSaKeyuser,\n },\n });\n\n var apigeeInstance = new Gcp.Apigee.Instance(\"apigee_instance\", new()\n {\n Name = \"apigee-instance\",\n Location = \"us-central1\",\n Description = \"Terraform-managed Apigee Runtime Instance\",\n DisplayName = \"apigee-instance\",\n OrgId = apigeeOrg.Id,\n DiskEncryptionKeyName = apigeeKey.Id,\n });\n\n var apigee_nat = new Gcp.Apigee.NatAddress(\"apigee-nat\", new()\n {\n Name = \"my-nat-address\",\n InstanceId = apigeeInstance.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(21),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeOrg, err := apigee.NewOrganization(ctx, \"apigee_org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Terraform-provisioned Apigee Org.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeInstance, err := apigee.NewInstance(ctx, \"apigee_instance\", \u0026apigee.InstanceArgs{\n\t\t\tName: pulumi.String(\"apigee-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"Terraform-managed Apigee Runtime Instance\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-instance\"),\n\t\t\tOrgId: apigeeOrg.ID(),\n\t\t\tDiskEncryptionKeyName: apigeeKey.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewNatAddress(ctx, \"apigee-nat\", \u0026apigee.NatAddressArgs{\n\t\t\tName: pulumi.String(\"my-nat-address\"),\n\t\t\tInstanceId: apigeeInstance.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.gcp.apigee.Instance;\nimport com.pulumi.gcp.apigee.InstanceArgs;\nimport com.pulumi.gcp.apigee.NatAddress;\nimport com.pulumi.gcp.apigee.NatAddressArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(21)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.member())\n .build());\n\n var apigeeOrg = new Organization(\"apigeeOrg\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Terraform-provisioned Apigee Org.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeVpcConnection,\n apigeeSaKeyuser)\n .build());\n\n var apigeeInstance = new Instance(\"apigeeInstance\", InstanceArgs.builder()\n .name(\"apigee-instance\")\n .location(\"us-central1\")\n .description(\"Terraform-managed Apigee Runtime Instance\")\n .displayName(\"apigee-instance\")\n .orgId(apigeeOrg.id())\n .diskEncryptionKeyName(apigeeKey.id())\n .build());\n\n var apigee_nat = new NatAddress(\"apigee-nat\", NatAddressArgs.builder()\n .name(\"my-nat-address\")\n .instanceId(apigeeInstance.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 21\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: ${apigeeSa.member}\n apigeeOrg:\n type: gcp:apigee:Organization\n name: apigee_org\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Terraform-provisioned Apigee Org.\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n - ${apigeeSaKeyuser}\n apigeeInstance:\n type: gcp:apigee:Instance\n name: apigee_instance\n properties:\n name: apigee-instance\n location: us-central1\n description: Terraform-managed Apigee Runtime Instance\n displayName: apigee-instance\n orgId: ${apigeeOrg.id}\n diskEncryptionKeyName: ${apigeeKey.id}\n apigee-nat:\n type: gcp:apigee:NatAddress\n properties:\n name: my-nat-address\n instanceId: ${apigeeInstance.id}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNatAddress can be imported using any of these accepted formats:\n\n* `{{instance_id}}/natAddresses/{{name}}`\n\n* `{{instance_id}}/{{name}}`\n\nWhen using the `pulumi import` command, NatAddress can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/natAddress:NatAddress default {{instance_id}}/natAddresses/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/natAddress:NatAddress default {{instance_id}}/{{name}}\n```\n\n", "properties": { "instanceId": { "type": "string", @@ -117028,7 +118221,7 @@ } }, "gcp:apigee/organization:Organization": { - "description": "An `Organization` is the top-level container in Apigee.\n\n\nTo get more information about Organization, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations)\n* How-to Guides\n * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org)\n\n## Example Usage\n\n### Apigee Organization Cloud Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst org = new gcp.apigee.Organization(\"org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\norg = gcp.apigee.Organization(\"org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n org:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Organization Cloud Basic Disable Vpc Peering\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst org = new gcp.apigee.Organization(\"org\", {\n description: \"Terraform-provisioned basic Apigee Org without VPC Peering.\",\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n disableVpcPeering: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\norg = gcp.apigee.Organization(\"org\",\n description=\"Terraform-provisioned basic Apigee Org without VPC Peering.\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n disable_vpc_peering=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n Description = \"Terraform-provisioned basic Apigee Org without VPC Peering.\",\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n DisableVpcPeering = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tDescription: pulumi.String(\"Terraform-provisioned basic Apigee Org without VPC Peering.\"),\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tDisableVpcPeering: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .description(\"Terraform-provisioned basic Apigee Org without VPC Peering.\")\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .disableVpcPeering(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n org:\n type: gcp:apigee:Organization\n properties:\n description: Terraform-provisioned basic Apigee Org without VPC Peering.\n analyticsRegion: us-central1\n projectId: ${current.project}\n disableVpcPeering: true\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Organization Cloud Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`,\n});\nconst org = new gcp.apigee.Organization(\"org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Auto-provisioned Apigee Org.\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [\n apigeeVpcConnection,\n apigeeSaKeyuser,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\norg = gcp.apigee.Organization(\"org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Auto-provisioned Apigee Org.\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_vpc_connection,\n apigee_sa_keyuser,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Auto-provisioned Apigee Org.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n apigeeSaKeyuser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Auto-provisioned Apigee Org.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Auto-provisioned Apigee Org.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeVpcConnection,\n apigeeSaKeyuser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${apigeeSa.email}\n org:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Auto-provisioned Apigee Org.\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n - ${apigeeSaKeyuser}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Organization Cloud Full Disable Vpc Peering\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`,\n});\nconst org = new gcp.apigee.Organization(\"org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Terraform-provisioned Apigee Org without VPC Peering.\",\n projectId: current.then(current =\u003e current.project),\n disableVpcPeering: true,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [apigeeSaKeyuser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\norg = gcp.apigee.Organization(\"org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Terraform-provisioned Apigee Org without VPC Peering.\",\n project_id=current.project,\n disable_vpc_peering=True,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_sa_keyuser]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Terraform-provisioned Apigee Org without VPC Peering.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n DisableVpcPeering = true,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeSaKeyuser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Terraform-provisioned Apigee Org without VPC Peering.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tDisableVpcPeering: pulumi.Bool(true),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Terraform-provisioned Apigee Org without VPC Peering.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .disableVpcPeering(true)\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeSaKeyuser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${apigeeSa.email}\n org:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Terraform-provisioned Apigee Org without VPC Peering.\n projectId: ${current.project}\n disableVpcPeering: true\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeSaKeyuser}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOrganization can be imported using any of these accepted formats:\n\n* `organizations/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Organization can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/organization:Organization default organizations/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/organization:Organization default {{name}}\n```\n\n", + "description": "An `Organization` is the top-level container in Apigee.\n\n\nTo get more information about Organization, see:\n\n* [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations)\n* How-to Guides\n * [Creating an API organization](https://cloud.google.com/apigee/docs/api-platform/get-started/create-org)\n\n## Example Usage\n\n### Apigee Organization Cloud Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst org = new gcp.apigee.Organization(\"org\", {\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n}, {\n dependsOn: [apigeeVpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\norg = gcp.apigee.Organization(\"org\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeVpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n org:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Organization Cloud Basic Disable Vpc Peering\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst org = new gcp.apigee.Organization(\"org\", {\n description: \"Terraform-provisioned basic Apigee Org without VPC Peering.\",\n analyticsRegion: \"us-central1\",\n projectId: current.then(current =\u003e current.project),\n disableVpcPeering: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\norg = gcp.apigee.Organization(\"org\",\n description=\"Terraform-provisioned basic Apigee Org without VPC Peering.\",\n analytics_region=\"us-central1\",\n project_id=current.project,\n disable_vpc_peering=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n Description = \"Terraform-provisioned basic Apigee Org without VPC Peering.\",\n AnalyticsRegion = \"us-central1\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n DisableVpcPeering = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tDescription: pulumi.String(\"Terraform-provisioned basic Apigee Org without VPC Peering.\"),\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tDisableVpcPeering: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .description(\"Terraform-provisioned basic Apigee Org without VPC Peering.\")\n .analyticsRegion(\"us-central1\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .disableVpcPeering(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n org:\n type: gcp:apigee:Organization\n properties:\n description: Terraform-provisioned basic Apigee Org without VPC Peering.\n analyticsRegion: us-central1\n projectId: ${current.project}\n disableVpcPeering: true\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Organization Cloud Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeNetwork = new gcp.compute.Network(\"apigee_network\", {name: \"apigee-network\"});\nconst apigeeRange = new gcp.compute.GlobalAddress(\"apigee_range\", {\n name: \"apigee-range\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: apigeeNetwork.id,\n});\nconst apigeeVpcConnection = new gcp.servicenetworking.Connection(\"apigee_vpc_connection\", {\n network: apigeeNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [apigeeRange.name],\n});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: apigeeSa.member,\n});\nconst org = new gcp.apigee.Organization(\"org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Auto-provisioned Apigee Org.\",\n projectId: current.then(current =\u003e current.project),\n authorizedNetwork: apigeeNetwork.id,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [\n apigeeVpcConnection,\n apigeeSaKeyuser,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_network = gcp.compute.Network(\"apigee_network\", name=\"apigee-network\")\napigee_range = gcp.compute.GlobalAddress(\"apigee_range\",\n name=\"apigee-range\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=apigee_network.id)\napigee_vpc_connection = gcp.servicenetworking.Connection(\"apigee_vpc_connection\",\n network=apigee_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[apigee_range.name])\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.member)\norg = gcp.apigee.Organization(\"org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Auto-provisioned Apigee Org.\",\n project_id=current.project,\n authorized_network=apigee_network.id,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[\n apigee_vpc_connection,\n apigee_sa_keyuser,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeNetwork = new Gcp.Compute.Network(\"apigee_network\", new()\n {\n Name = \"apigee-network\",\n });\n\n var apigeeRange = new Gcp.Compute.GlobalAddress(\"apigee_range\", new()\n {\n Name = \"apigee-range\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = apigeeNetwork.Id,\n });\n\n var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection(\"apigee_vpc_connection\", new()\n {\n Network = apigeeNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n apigeeRange.Name,\n },\n });\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Member,\n });\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Auto-provisioned Apigee Org.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n AuthorizedNetwork = apigeeNetwork.Id,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeVpcConnection,\n apigeeSaKeyuser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeNetwork, err := compute.NewNetwork(ctx, \"apigee_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"apigee-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeRange, err := compute.NewGlobalAddress(ctx, \"apigee_range\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"apigee-range\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeVpcConnection, err := servicenetworking.NewConnection(ctx, \"apigee_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: apigeeNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tapigeeRange.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Auto-provisioned Apigee Org.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tAuthorizedNetwork: apigeeNetwork.ID(),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeVpcConnection,\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeNetwork = new Network(\"apigeeNetwork\", NetworkArgs.builder()\n .name(\"apigee-network\")\n .build());\n\n var apigeeRange = new GlobalAddress(\"apigeeRange\", GlobalAddressArgs.builder()\n .name(\"apigee-range\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(apigeeNetwork.id())\n .build());\n\n var apigeeVpcConnection = new Connection(\"apigeeVpcConnection\", ConnectionArgs.builder()\n .network(apigeeNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(apigeeRange.name())\n .build());\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.member())\n .build());\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Auto-provisioned Apigee Org.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .authorizedNetwork(apigeeNetwork.id())\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n apigeeVpcConnection,\n apigeeSaKeyuser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeNetwork:\n type: gcp:compute:Network\n name: apigee_network\n properties:\n name: apigee-network\n apigeeRange:\n type: gcp:compute:GlobalAddress\n name: apigee_range\n properties:\n name: apigee-range\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${apigeeNetwork.id}\n apigeeVpcConnection:\n type: gcp:servicenetworking:Connection\n name: apigee_vpc_connection\n properties:\n network: ${apigeeNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${apigeeRange.name}\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: ${apigeeSa.member}\n org:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Auto-provisioned Apigee Org.\n projectId: ${current.project}\n authorizedNetwork: ${apigeeNetwork.id}\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeVpcConnection}\n - ${apigeeSaKeyuser}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Apigee Organization Cloud Full Disable Vpc Peering\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst current = gcp.organizations.getClientConfig({});\nconst apigeeKeyring = new gcp.kms.KeyRing(\"apigee_keyring\", {\n name: \"apigee-keyring\",\n location: \"us-central1\",\n});\nconst apigeeKey = new gcp.kms.CryptoKey(\"apigee_key\", {\n name: \"apigee-key\",\n keyRing: apigeeKeyring.id,\n});\nconst apigeeSa = new gcp.projects.ServiceIdentity(\"apigee_sa\", {\n project: project.projectId,\n service: apigee.service,\n});\nconst apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", {\n cryptoKeyId: apigeeKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: apigeeSa.member,\n});\nconst org = new gcp.apigee.Organization(\"org\", {\n analyticsRegion: \"us-central1\",\n displayName: \"apigee-org\",\n description: \"Terraform-provisioned Apigee Org without VPC Peering.\",\n projectId: current.then(current =\u003e current.project),\n disableVpcPeering: true,\n runtimeDatabaseEncryptionKeyName: apigeeKey.id,\n}, {\n dependsOn: [apigeeSaKeyuser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncurrent = gcp.organizations.get_client_config()\napigee_keyring = gcp.kms.KeyRing(\"apigee_keyring\",\n name=\"apigee-keyring\",\n location=\"us-central1\")\napigee_key = gcp.kms.CryptoKey(\"apigee_key\",\n name=\"apigee-key\",\n key_ring=apigee_keyring.id)\napigee_sa = gcp.projects.ServiceIdentity(\"apigee_sa\",\n project=project[\"projectId\"],\n service=apigee[\"service\"])\napigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\",\n crypto_key_id=apigee_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=apigee_sa.member)\norg = gcp.apigee.Organization(\"org\",\n analytics_region=\"us-central1\",\n display_name=\"apigee-org\",\n description=\"Terraform-provisioned Apigee Org without VPC Peering.\",\n project_id=current.project,\n disable_vpc_peering=True,\n runtime_database_encryption_key_name=apigee_key.id,\n opts = pulumi.ResourceOptions(depends_on=[apigee_sa_keyuser]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Gcp.Organizations.GetClientConfig.Invoke();\n\n var apigeeKeyring = new Gcp.Kms.KeyRing(\"apigee_keyring\", new()\n {\n Name = \"apigee-keyring\",\n Location = \"us-central1\",\n });\n\n var apigeeKey = new Gcp.Kms.CryptoKey(\"apigee_key\", new()\n {\n Name = \"apigee-key\",\n KeyRing = apigeeKeyring.Id,\n });\n\n var apigeeSa = new Gcp.Projects.ServiceIdentity(\"apigee_sa\", new()\n {\n Project = project.ProjectId,\n Service = apigee.Service,\n });\n\n var apigeeSaKeyuser = new Gcp.Kms.CryptoKeyIAMMember(\"apigee_sa_keyuser\", new()\n {\n CryptoKeyId = apigeeKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = apigeeSa.Member,\n });\n\n var org = new Gcp.Apigee.Organization(\"org\", new()\n {\n AnalyticsRegion = \"us-central1\",\n DisplayName = \"apigee-org\",\n Description = \"Terraform-provisioned Apigee Org without VPC Peering.\",\n ProjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.Project),\n DisableVpcPeering = true,\n RuntimeDatabaseEncryptionKeyName = apigeeKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n apigeeSaKeyuser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := organizations.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKeyring, err := kms.NewKeyRing(ctx, \"apigee_keyring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"apigee-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeKey, err := kms.NewCryptoKey(ctx, \"apigee_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"apigee-key\"),\n\t\t\tKeyRing: apigeeKeyring.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSa, err := projects.NewServiceIdentity(ctx, \"apigee_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.Any(project.ProjectId),\n\t\t\tService: pulumi.Any(apigee.Service),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tapigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, \"apigee_sa_keyuser\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: apigeeKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: apigeeSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigee.NewOrganization(ctx, \"org\", \u0026apigee.OrganizationArgs{\n\t\t\tAnalyticsRegion: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"apigee-org\"),\n\t\t\tDescription: pulumi.String(\"Terraform-provisioned Apigee Org without VPC Peering.\"),\n\t\t\tProjectId: pulumi.String(current.Project),\n\t\t\tDisableVpcPeering: pulumi.Bool(true),\n\t\t\tRuntimeDatabaseEncryptionKeyName: apigeeKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tapigeeSaKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.apigee.Organization;\nimport com.pulumi.gcp.apigee.OrganizationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = OrganizationsFunctions.getClientConfig();\n\n var apigeeKeyring = new KeyRing(\"apigeeKeyring\", KeyRingArgs.builder()\n .name(\"apigee-keyring\")\n .location(\"us-central1\")\n .build());\n\n var apigeeKey = new CryptoKey(\"apigeeKey\", CryptoKeyArgs.builder()\n .name(\"apigee-key\")\n .keyRing(apigeeKeyring.id())\n .build());\n\n var apigeeSa = new ServiceIdentity(\"apigeeSa\", ServiceIdentityArgs.builder()\n .project(project.projectId())\n .service(apigee.service())\n .build());\n\n var apigeeSaKeyuser = new CryptoKeyIAMMember(\"apigeeSaKeyuser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(apigeeKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(apigeeSa.member())\n .build());\n\n var org = new Organization(\"org\", OrganizationArgs.builder()\n .analyticsRegion(\"us-central1\")\n .displayName(\"apigee-org\")\n .description(\"Terraform-provisioned Apigee Org without VPC Peering.\")\n .projectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.project()))\n .disableVpcPeering(true)\n .runtimeDatabaseEncryptionKeyName(apigeeKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(apigeeSaKeyuser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n apigeeKeyring:\n type: gcp:kms:KeyRing\n name: apigee_keyring\n properties:\n name: apigee-keyring\n location: us-central1\n apigeeKey:\n type: gcp:kms:CryptoKey\n name: apigee_key\n properties:\n name: apigee-key\n keyRing: ${apigeeKeyring.id}\n apigeeSa:\n type: gcp:projects:ServiceIdentity\n name: apigee_sa\n properties:\n project: ${project.projectId}\n service: ${apigee.service}\n apigeeSaKeyuser:\n type: gcp:kms:CryptoKeyIAMMember\n name: apigee_sa_keyuser\n properties:\n cryptoKeyId: ${apigeeKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: ${apigeeSa.member}\n org:\n type: gcp:apigee:Organization\n properties:\n analyticsRegion: us-central1\n displayName: apigee-org\n description: Terraform-provisioned Apigee Org without VPC Peering.\n projectId: ${current.project}\n disableVpcPeering: true\n runtimeDatabaseEncryptionKeyName: ${apigeeKey.id}\n options:\n dependson:\n - ${apigeeSaKeyuser}\nvariables:\n current:\n fn::invoke:\n Function: gcp:organizations:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOrganization can be imported using any of these accepted formats:\n\n* `organizations/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Organization can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:apigee/organization:Organization default organizations/{{name}}\n```\n\n```sh\n$ pulumi import gcp:apigee/organization:Organization default {{name}}\n```\n\n", "properties": { "analyticsRegion": { "type": "string", @@ -119341,7 +120534,7 @@ }, "name": { "type": "string", - "description": "\"Identifier. The resource name of a ServiceProjectAttachment. Format:\\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\\" \"\n" + "description": "\"Identifier. The resource name of a ServiceProjectAttachment. Format:\\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\\"\"\n" }, "project": { "type": "string", @@ -119349,7 +120542,7 @@ }, "serviceProject": { "type": "string", - "description": "\"Immutable. Service project name in the format: \\\"projects/abc\\\"\nor \\\"projects/123\\\". As input, project name with either project id or number\nare accepted. As output, this field will contain project number. \"\n" + "description": "\"Immutable. Service project name in the format: \\\"projects/abc\\\"\nor \\\"projects/123\\\". As input, project name with either project id or number\nare accepted. As output, this field will contain project number.\"\n" }, "serviceProjectAttachmentId": { "type": "string", @@ -119380,7 +120573,7 @@ }, "serviceProject": { "type": "string", - "description": "\"Immutable. Service project name in the format: \\\"projects/abc\\\"\nor \\\"projects/123\\\". As input, project name with either project id or number\nare accepted. As output, this field will contain project number. \"\n", + "description": "\"Immutable. Service project name in the format: \\\"projects/abc\\\"\nor \\\"projects/123\\\". As input, project name with either project id or number\nare accepted. As output, this field will contain project number.\"\n", "willReplaceOnChanges": true }, "serviceProjectAttachmentId": { @@ -119401,7 +120594,7 @@ }, "name": { "type": "string", - "description": "\"Identifier. The resource name of a ServiceProjectAttachment. Format:\\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\\" \"\n" + "description": "\"Identifier. The resource name of a ServiceProjectAttachment. Format:\\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\\"\"\n" }, "project": { "type": "string", @@ -119410,7 +120603,7 @@ }, "serviceProject": { "type": "string", - "description": "\"Immutable. Service project name in the format: \\\"projects/abc\\\"\nor \\\"projects/123\\\". As input, project name with either project id or number\nare accepted. As output, this field will contain project number. \"\n", + "description": "\"Immutable. Service project name in the format: \\\"projects/abc\\\"\nor \\\"projects/123\\\". As input, project name with either project id or number\nare accepted. As output, this field will contain project number.\"\n", "willReplaceOnChanges": true }, "serviceProjectAttachmentId": { @@ -122014,6 +123207,10 @@ "type": "string", "description": "The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.\n\n\n- - -\n" }, + "dataBoostIsolationReadOnly": { + "$ref": "#/types/gcp:bigquery/AppProfileDataBoostIsolationReadOnly:AppProfileDataBoostIsolationReadOnly", + "description": "Specifies that this app profile is intended for read-only usage via the Data Boost feature.\nStructure is documented below.\n" + }, "description": { "type": "string", "description": "Long form description of the use case for this app profile.\n" @@ -122066,6 +123263,10 @@ "description": "The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.\n\n\n- - -\n", "willReplaceOnChanges": true }, + "dataBoostIsolationReadOnly": { + "$ref": "#/types/gcp:bigquery/AppProfileDataBoostIsolationReadOnly:AppProfileDataBoostIsolationReadOnly", + "description": "Specifies that this app profile is intended for read-only usage via the Data Boost feature.\nStructure is documented below.\n" + }, "description": { "type": "string", "description": "Long form description of the use case for this app profile.\n" @@ -122115,6 +123316,10 @@ "description": "The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.\n\n\n- - -\n", "willReplaceOnChanges": true }, + "dataBoostIsolationReadOnly": { + "$ref": "#/types/gcp:bigquery/AppProfileDataBoostIsolationReadOnly:AppProfileDataBoostIsolationReadOnly", + "description": "Specifies that this app profile is intended for read-only usage via the Data Boost feature.\nStructure is documented below.\n" + }, "description": { "type": "string", "description": "Long form description of the use case for this app profile.\n" @@ -124501,7 +125706,8 @@ }, "multiRegionAuxiliary": { "type": "boolean", - "description": "Applicable only for reservations located within one of the BigQuery multi-regions (US or EU).\nIf set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.\n" + "description": "(Optional, Deprecated)\nApplicable only for reservations located within one of the BigQuery multi-regions (US or EU).\nIf set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.\n\n\u003e **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.\n", + "deprecationMessage": "`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API." }, "name": { "type": "string", @@ -124547,7 +125753,8 @@ }, "multiRegionAuxiliary": { "type": "boolean", - "description": "Applicable only for reservations located within one of the BigQuery multi-regions (US or EU).\nIf set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.\n" + "description": "(Optional, Deprecated)\nApplicable only for reservations located within one of the BigQuery multi-regions (US or EU).\nIf set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.\n\n\u003e **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.\n", + "deprecationMessage": "`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API." }, "name": { "type": "string", @@ -124594,7 +125801,8 @@ }, "multiRegionAuxiliary": { "type": "boolean", - "description": "Applicable only for reservations located within one of the BigQuery multi-regions (US or EU).\nIf set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.\n" + "description": "(Optional, Deprecated)\nApplicable only for reservations located within one of the BigQuery multi-regions (US or EU).\nIf set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region.\n\n\u003e **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.\n", + "deprecationMessage": "`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API." }, "name": { "type": "string", @@ -124982,7 +126190,8 @@ "properties": { "allowResourceTagsOnDeletion": { "type": "boolean", - "description": "This field is in beta. If set to true, it allows table deletion when there\nare still resource tags attached. The default value is false.\n" + "description": "If set to true, it allows table\ndeletion when there are still resource tags attached. The default value is\nfalse.\n\n~\u003e**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be\nremoved in a future major release. The default behavior will be allowing\nthe presence of resource tags on deletion after the next major release.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release." }, "clusterings": { "type": "array", @@ -125095,7 +126304,7 @@ "additionalProperties": { "type": "string" }, - "description": "This field is in beta. The tags attached to this table. Tag keys are\nglobally unique. Tag key is expected to be in the namespaced format, for\nexample \"123456789012/environment\" where 123456789012 is the ID of the\nparent organization or project resource for this tag key. Tag value is\nexpected to be the short name, for example \"Production\".\n" + "description": "The tags attached to this table. Tag keys are\nglobally unique. Tag key is expected to be in the namespaced format, for\nexample \"123456789012/environment\" where 123456789012 is the ID of the\nparent organization or project resource for this tag key. Tag value is\nexpected to be the short name, for example \"Production\".\n" }, "schema": { "type": "string", @@ -125151,7 +126360,8 @@ "inputProperties": { "allowResourceTagsOnDeletion": { "type": "boolean", - "description": "This field is in beta. If set to true, it allows table deletion when there\nare still resource tags attached. The default value is false.\n" + "description": "If set to true, it allows table\ndeletion when there are still resource tags attached. The default value is\nfalse.\n\n~\u003e**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be\nremoved in a future major release. The default behavior will be allowing\nthe presence of resource tags on deletion after the next major release.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release." }, "clusterings": { "type": "array", @@ -125223,7 +126433,7 @@ "additionalProperties": { "type": "string" }, - "description": "This field is in beta. The tags attached to this table. Tag keys are\nglobally unique. Tag key is expected to be in the namespaced format, for\nexample \"123456789012/environment\" where 123456789012 is the ID of the\nparent organization or project resource for this tag key. Tag value is\nexpected to be the short name, for example \"Production\".\n" + "description": "The tags attached to this table. Tag keys are\nglobally unique. Tag key is expected to be in the namespaced format, for\nexample \"123456789012/environment\" where 123456789012 is the ID of the\nparent organization or project resource for this tag key. Tag value is\nexpected to be the short name, for example \"Production\".\n" }, "schema": { "type": "string", @@ -125261,7 +126471,8 @@ "properties": { "allowResourceTagsOnDeletion": { "type": "boolean", - "description": "This field is in beta. If set to true, it allows table deletion when there\nare still resource tags attached. The default value is false.\n" + "description": "If set to true, it allows table\ndeletion when there are still resource tags attached. The default value is\nfalse.\n\n~\u003e**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be\nremoved in a future major release. The default behavior will be allowing\nthe presence of resource tags on deletion after the next major release.\n", + "deprecationMessage": "This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release." }, "clusterings": { "type": "array", @@ -125377,7 +126588,7 @@ "additionalProperties": { "type": "string" }, - "description": "This field is in beta. The tags attached to this table. Tag keys are\nglobally unique. Tag key is expected to be in the namespaced format, for\nexample \"123456789012/environment\" where 123456789012 is the ID of the\nparent organization or project resource for this tag key. Tag value is\nexpected to be the short name, for example \"Production\".\n" + "description": "The tags attached to this table. Tag keys are\nglobally unique. Tag key is expected to be in the namespaced format, for\nexample \"123456789012/environment\" where 123456789012 is the ID of the\nparent organization or project resource for this tag key. Tag value is\nexpected to be the short name, for example \"Production\".\n" }, "schema": { "type": "string", @@ -127634,15 +128845,15 @@ } }, "gcp:bigtable/table:Table": { - "description": "Creates a Google Cloud Bigtable table inside an instance. For more information see\n[the official documentation](https://cloud.google.com/bigtable/) and\n[API](https://cloud.google.com/bigtable/docs/go/reference).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.bigtable.Instance(\"instance\", {\n name: \"tf-instance\",\n clusters: [{\n clusterId: \"tf-instance-cluster\",\n zone: \"us-central1-b\",\n numNodes: 3,\n storageType: \"HDD\",\n }],\n});\nconst table = new gcp.bigtable.Table(\"table\", {\n name: \"tf-table\",\n instanceName: instance.name,\n splitKeys: [\n \"a\",\n \"b\",\n \"c\",\n ],\n columnFamilies: [\n {\n family: \"family-first\",\n },\n {\n family: \"family-second\",\n },\n ],\n changeStreamRetention: \"24h0m0s\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.bigtable.Instance(\"instance\",\n name=\"tf-instance\",\n clusters=[{\n \"cluster_id\": \"tf-instance-cluster\",\n \"zone\": \"us-central1-b\",\n \"num_nodes\": 3,\n \"storage_type\": \"HDD\",\n }])\ntable = gcp.bigtable.Table(\"table\",\n name=\"tf-table\",\n instance_name=instance.name,\n split_keys=[\n \"a\",\n \"b\",\n \"c\",\n ],\n column_families=[\n {\n \"family\": \"family-first\",\n },\n {\n \"family\": \"family-second\",\n },\n ],\n change_stream_retention=\"24h0m0s\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.BigTable.Instance(\"instance\", new()\n {\n Name = \"tf-instance\",\n Clusters = new[]\n {\n new Gcp.BigTable.Inputs.InstanceClusterArgs\n {\n ClusterId = \"tf-instance-cluster\",\n Zone = \"us-central1-b\",\n NumNodes = 3,\n StorageType = \"HDD\",\n },\n },\n });\n\n var table = new Gcp.BigTable.Table(\"table\", new()\n {\n Name = \"tf-table\",\n InstanceName = instance.Name,\n SplitKeys = new[]\n {\n \"a\",\n \"b\",\n \"c\",\n },\n ColumnFamilies = new[]\n {\n new Gcp.BigTable.Inputs.TableColumnFamilyArgs\n {\n Family = \"family-first\",\n },\n new Gcp.BigTable.Inputs.TableColumnFamilyArgs\n {\n Family = \"family-second\",\n },\n },\n ChangeStreamRetention = \"24h0m0s\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigtable\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := bigtable.NewInstance(ctx, \"instance\", \u0026bigtable.InstanceArgs{\n\t\t\tName: pulumi.String(\"tf-instance\"),\n\t\t\tClusters: bigtable.InstanceClusterArray{\n\t\t\t\t\u0026bigtable.InstanceClusterArgs{\n\t\t\t\t\tClusterId: pulumi.String(\"tf-instance-cluster\"),\n\t\t\t\t\tZone: pulumi.String(\"us-central1-b\"),\n\t\t\t\t\tNumNodes: pulumi.Int(3),\n\t\t\t\t\tStorageType: pulumi.String(\"HDD\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigtable.NewTable(ctx, \"table\", \u0026bigtable.TableArgs{\n\t\t\tName: pulumi.String(\"tf-table\"),\n\t\t\tInstanceName: instance.Name,\n\t\t\tSplitKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\tpulumi.String(\"b\"),\n\t\t\t\tpulumi.String(\"c\"),\n\t\t\t},\n\t\t\tColumnFamilies: bigtable.TableColumnFamilyArray{\n\t\t\t\t\u0026bigtable.TableColumnFamilyArgs{\n\t\t\t\t\tFamily: pulumi.String(\"family-first\"),\n\t\t\t\t},\n\t\t\t\t\u0026bigtable.TableColumnFamilyArgs{\n\t\t\t\t\tFamily: pulumi.String(\"family-second\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tChangeStreamRetention: pulumi.String(\"24h0m0s\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.bigtable.Instance;\nimport com.pulumi.gcp.bigtable.InstanceArgs;\nimport com.pulumi.gcp.bigtable.inputs.InstanceClusterArgs;\nimport com.pulumi.gcp.bigtable.Table;\nimport com.pulumi.gcp.bigtable.TableArgs;\nimport com.pulumi.gcp.bigtable.inputs.TableColumnFamilyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"tf-instance\")\n .clusters(InstanceClusterArgs.builder()\n .clusterId(\"tf-instance-cluster\")\n .zone(\"us-central1-b\")\n .numNodes(3)\n .storageType(\"HDD\")\n .build())\n .build());\n\n var table = new Table(\"table\", TableArgs.builder()\n .name(\"tf-table\")\n .instanceName(instance.name())\n .splitKeys( \n \"a\",\n \"b\",\n \"c\")\n .columnFamilies( \n TableColumnFamilyArgs.builder()\n .family(\"family-first\")\n .build(),\n TableColumnFamilyArgs.builder()\n .family(\"family-second\")\n .build())\n .changeStreamRetention(\"24h0m0s\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:bigtable:Instance\n properties:\n name: tf-instance\n clusters:\n - clusterId: tf-instance-cluster\n zone: us-central1-b\n numNodes: 3\n storageType: HDD\n table:\n type: gcp:bigtable:Table\n properties:\n name: tf-table\n instanceName: ${instance.name}\n splitKeys:\n - a\n - b\n - c\n columnFamilies:\n - family: family-first\n - family: family-second\n changeStreamRetention: 24h0m0s\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n-\u003e **Fields affected by import** The following fields can't be read and will show diffs if set in config when imported: `split_keys`\n\nBigtable Tables can be imported using any of these accepted formats:\n\n* `projects/{{project}}/instances/{{instance_name}}/tables/{{name}}`\n\n* `{{project}}/{{instance_name}}/{{name}}`\n\n* `{{instance_name}}/{{name}}`\n\nWhen using the `pulumi import` command, Bigtable Tables can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:bigtable/table:Table default projects/{{project}}/instances/{{instance_name}}/tables/{{name}}\n```\n\n```sh\n$ pulumi import gcp:bigtable/table:Table default {{project}}/{{instance_name}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:bigtable/table:Table default {{instance_name}}/{{name}}\n```\n\n", + "description": "Creates a Google Cloud Bigtable table inside an instance. For more information see\n[the official documentation](https://cloud.google.com/bigtable/) and\n[API](https://cloud.google.com/bigtable/docs/go/reference).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.bigtable.Instance(\"instance\", {\n name: \"tf-instance\",\n clusters: [{\n clusterId: \"tf-instance-cluster\",\n zone: \"us-central1-b\",\n numNodes: 3,\n storageType: \"HDD\",\n }],\n});\nconst table = new gcp.bigtable.Table(\"table\", {\n name: \"tf-table\",\n instanceName: instance.name,\n splitKeys: [\n \"a\",\n \"b\",\n \"c\",\n ],\n columnFamilies: [\n {\n family: \"family-first\",\n },\n {\n family: \"family-second\",\n },\n ],\n changeStreamRetention: \"24h0m0s\",\n automatedBackupPolicy: {\n retentionPeriod: \"72h0m0s\",\n frequency: \"24h0m0s\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.bigtable.Instance(\"instance\",\n name=\"tf-instance\",\n clusters=[{\n \"cluster_id\": \"tf-instance-cluster\",\n \"zone\": \"us-central1-b\",\n \"num_nodes\": 3,\n \"storage_type\": \"HDD\",\n }])\ntable = gcp.bigtable.Table(\"table\",\n name=\"tf-table\",\n instance_name=instance.name,\n split_keys=[\n \"a\",\n \"b\",\n \"c\",\n ],\n column_families=[\n {\n \"family\": \"family-first\",\n },\n {\n \"family\": \"family-second\",\n },\n ],\n change_stream_retention=\"24h0m0s\",\n automated_backup_policy={\n \"retention_period\": \"72h0m0s\",\n \"frequency\": \"24h0m0s\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.BigTable.Instance(\"instance\", new()\n {\n Name = \"tf-instance\",\n Clusters = new[]\n {\n new Gcp.BigTable.Inputs.InstanceClusterArgs\n {\n ClusterId = \"tf-instance-cluster\",\n Zone = \"us-central1-b\",\n NumNodes = 3,\n StorageType = \"HDD\",\n },\n },\n });\n\n var table = new Gcp.BigTable.Table(\"table\", new()\n {\n Name = \"tf-table\",\n InstanceName = instance.Name,\n SplitKeys = new[]\n {\n \"a\",\n \"b\",\n \"c\",\n },\n ColumnFamilies = new[]\n {\n new Gcp.BigTable.Inputs.TableColumnFamilyArgs\n {\n Family = \"family-first\",\n },\n new Gcp.BigTable.Inputs.TableColumnFamilyArgs\n {\n Family = \"family-second\",\n },\n },\n ChangeStreamRetention = \"24h0m0s\",\n AutomatedBackupPolicy = new Gcp.BigTable.Inputs.TableAutomatedBackupPolicyArgs\n {\n RetentionPeriod = \"72h0m0s\",\n Frequency = \"24h0m0s\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigtable\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := bigtable.NewInstance(ctx, \"instance\", \u0026bigtable.InstanceArgs{\n\t\t\tName: pulumi.String(\"tf-instance\"),\n\t\t\tClusters: bigtable.InstanceClusterArray{\n\t\t\t\t\u0026bigtable.InstanceClusterArgs{\n\t\t\t\t\tClusterId: pulumi.String(\"tf-instance-cluster\"),\n\t\t\t\t\tZone: pulumi.String(\"us-central1-b\"),\n\t\t\t\t\tNumNodes: pulumi.Int(3),\n\t\t\t\t\tStorageType: pulumi.String(\"HDD\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigtable.NewTable(ctx, \"table\", \u0026bigtable.TableArgs{\n\t\t\tName: pulumi.String(\"tf-table\"),\n\t\t\tInstanceName: instance.Name,\n\t\t\tSplitKeys: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"a\"),\n\t\t\t\tpulumi.String(\"b\"),\n\t\t\t\tpulumi.String(\"c\"),\n\t\t\t},\n\t\t\tColumnFamilies: bigtable.TableColumnFamilyArray{\n\t\t\t\t\u0026bigtable.TableColumnFamilyArgs{\n\t\t\t\t\tFamily: pulumi.String(\"family-first\"),\n\t\t\t\t},\n\t\t\t\t\u0026bigtable.TableColumnFamilyArgs{\n\t\t\t\t\tFamily: pulumi.String(\"family-second\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tChangeStreamRetention: pulumi.String(\"24h0m0s\"),\n\t\t\tAutomatedBackupPolicy: \u0026bigtable.TableAutomatedBackupPolicyArgs{\n\t\t\t\tRetentionPeriod: pulumi.String(\"72h0m0s\"),\n\t\t\t\tFrequency: pulumi.String(\"24h0m0s\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.bigtable.Instance;\nimport com.pulumi.gcp.bigtable.InstanceArgs;\nimport com.pulumi.gcp.bigtable.inputs.InstanceClusterArgs;\nimport com.pulumi.gcp.bigtable.Table;\nimport com.pulumi.gcp.bigtable.TableArgs;\nimport com.pulumi.gcp.bigtable.inputs.TableColumnFamilyArgs;\nimport com.pulumi.gcp.bigtable.inputs.TableAutomatedBackupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"tf-instance\")\n .clusters(InstanceClusterArgs.builder()\n .clusterId(\"tf-instance-cluster\")\n .zone(\"us-central1-b\")\n .numNodes(3)\n .storageType(\"HDD\")\n .build())\n .build());\n\n var table = new Table(\"table\", TableArgs.builder()\n .name(\"tf-table\")\n .instanceName(instance.name())\n .splitKeys( \n \"a\",\n \"b\",\n \"c\")\n .columnFamilies( \n TableColumnFamilyArgs.builder()\n .family(\"family-first\")\n .build(),\n TableColumnFamilyArgs.builder()\n .family(\"family-second\")\n .build())\n .changeStreamRetention(\"24h0m0s\")\n .automatedBackupPolicy(TableAutomatedBackupPolicyArgs.builder()\n .retentionPeriod(\"72h0m0s\")\n .frequency(\"24h0m0s\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:bigtable:Instance\n properties:\n name: tf-instance\n clusters:\n - clusterId: tf-instance-cluster\n zone: us-central1-b\n numNodes: 3\n storageType: HDD\n table:\n type: gcp:bigtable:Table\n properties:\n name: tf-table\n instanceName: ${instance.name}\n splitKeys:\n - a\n - b\n - c\n columnFamilies:\n - family: family-first\n - family: family-second\n changeStreamRetention: 24h0m0s\n automatedBackupPolicy:\n retentionPeriod: 72h0m0s\n frequency: 24h0m0s\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n-\u003e **Fields affected by import** The following fields can't be read and will show diffs if set in config when imported: `split_keys`\n\nBigtable Tables can be imported using any of these accepted formats:\n\n* `projects/{{project}}/instances/{{instance_name}}/tables/{{name}}`\n\n* `{{project}}/{{instance_name}}/{{name}}`\n\n* `{{instance_name}}/{{name}}`\n\nWhen using the `pulumi import` command, Bigtable Tables can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:bigtable/table:Table default projects/{{project}}/instances/{{instance_name}}/tables/{{name}}\n```\n\n```sh\n$ pulumi import gcp:bigtable/table:Table default {{project}}/{{instance_name}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:bigtable/table:Table default {{instance_name}}/{{name}}\n```\n\n", "properties": { "automatedBackupPolicy": { "$ref": "#/types/gcp:bigtable/TableAutomatedBackupPolicy:TableAutomatedBackupPolicy", - "description": "Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both\nRetention Period and Frequency to 0.\n" + "description": "Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0.\n\n-----\n" }, "changeStreamRetention": { "type": "string", - "description": "Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.\n\n-----\n" + "description": "Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.\n" }, "columnFamilies": { "type": "array", @@ -127685,11 +128896,11 @@ "inputProperties": { "automatedBackupPolicy": { "$ref": "#/types/gcp:bigtable/TableAutomatedBackupPolicy:TableAutomatedBackupPolicy", - "description": "Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both\nRetention Period and Frequency to 0.\n" + "description": "Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0.\n\n-----\n" }, "changeStreamRetention": { "type": "string", - "description": "Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.\n\n-----\n" + "description": "Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.\n" }, "columnFamilies": { "type": "array", @@ -127734,11 +128945,11 @@ "properties": { "automatedBackupPolicy": { "$ref": "#/types/gcp:bigtable/TableAutomatedBackupPolicy:TableAutomatedBackupPolicy", - "description": "Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both\nRetention Period and Frequency to 0.\n" + "description": "Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0.\n\n-----\n" }, "changeStreamRetention": { "type": "string", - "description": "Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.\n\n-----\n" + "description": "Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days.\n" }, "columnFamilies": { "type": "array", @@ -129239,7 +130450,7 @@ } }, "gcp:certificateauthority/authority:Authority": { - "description": "A CertificateAuthority represents an individual Certificate Authority. A\nCertificateAuthority can be used to create Certificates.\n\n\nTo get more information about CertificateAuthority, see:\n\n* [API documentation](https://cloud.google.com/certificate-authority-service/docs/reference/rest)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/certificate-authority-service)\n\n\u003e **Warning:** On newer versions of the provider, you must explicitly set `deletion_protection=false`\n(and run `pulumi up` to write the field to state) in order to destroy a CertificateAuthority.\nIt is recommended to not set this field (or set it to true) until you're ready to destroy.\n\n## Example Usage\n\n### Privateca Certificate Authority Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority\",\n location: \"us-central1\",\n deletionProtection: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 10,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n contentCommitment: true,\n keyEncipherment: false,\n dataEncipherment: true,\n keyAgreement: true,\n certSign: true,\n crlSign: true,\n decipherOnly: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n clientAuth: false,\n emailProtection: true,\n codeSigning: true,\n timeStamping: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority\",\n location=\"us-central1\",\n deletion_protection=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-certificate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 10,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"digital_signature\": True,\n \"content_commitment\": True,\n \"key_encipherment\": False,\n \"data_encipherment\": True,\n \"key_agreement\": True,\n \"cert_sign\": True,\n \"crl_sign\": True,\n \"decipher_only\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n \"client_auth\": False,\n \"email_protection\": True,\n \"code_signing\": True,\n \"time_stamping\": True,\n },\n },\n },\n },\n lifetime=\"86400s\",\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority\",\n Location = \"us-central1\",\n DeletionProtection = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 10,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n ContentCommitment = true,\n KeyEncipherment = false,\n DataEncipherment = true,\n KeyAgreement = true,\n CertSign = true,\n CrlSign = true,\n DecipherOnly = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n ClientAuth = false,\n EmailProtection = true,\n CodeSigning = true,\n TimeStamping = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(false),\n\t\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t\tClientAuth: pulumi.Bool(false),\n\t\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(10)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .contentCommitment(true)\n .keyEncipherment(false)\n .dataEncipherment(true)\n .keyAgreement(true)\n .certSign(true)\n .crlSign(true)\n .decipherOnly(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .clientAuth(false)\n .emailProtection(true)\n .codeSigning(true)\n .timeStamping(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority\n location: us-central1\n deletionProtection: 'true'\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 10\n keyUsage:\n baseKeyUsage:\n digitalSignature: true\n contentCommitment: true\n keyEncipherment: false\n dataEncipherment: true\n keyAgreement: true\n certSign: true\n crlSign: true\n decipherOnly: true\n extendedKeyUsage:\n serverAuth: true\n clientAuth: false\n emailProtection: true\n codeSigning: true\n timeStamping: true\n lifetime: 86400s\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Privateca Certificate Authority Subordinate\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst root_ca = new gcp.certificateauthority.Authority(\"root-ca\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority-root\",\n location: \"us-central1\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority-sub\",\n location: \"us-central1\",\n deletionProtection: true,\n subordinateConfig: {\n certificateAuthority: root_ca.name,\n },\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-subordinate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 0,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n contentCommitment: true,\n keyEncipherment: false,\n dataEncipherment: true,\n keyAgreement: true,\n certSign: true,\n crlSign: true,\n decipherOnly: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n clientAuth: false,\n emailProtection: true,\n codeSigning: true,\n timeStamping: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n type: \"SUBORDINATE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nroot_ca = gcp.certificateauthority.Authority(\"root-ca\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority-root\",\n location=\"us-central1\",\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-certificate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority-sub\",\n location=\"us-central1\",\n deletion_protection=True,\n subordinate_config={\n \"certificate_authority\": root_ca.name,\n },\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-subordinate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 0,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"digital_signature\": True,\n \"content_commitment\": True,\n \"key_encipherment\": False,\n \"data_encipherment\": True,\n \"key_agreement\": True,\n \"cert_sign\": True,\n \"crl_sign\": True,\n \"decipher_only\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n \"client_auth\": False,\n \"email_protection\": True,\n \"code_signing\": True,\n \"time_stamping\": True,\n },\n },\n },\n },\n lifetime=\"86400s\",\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n type=\"SUBORDINATE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var root_ca = new Gcp.CertificateAuthority.Authority(\"root-ca\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority-root\",\n Location = \"us-central1\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority-sub\",\n Location = \"us-central1\",\n DeletionProtection = true,\n SubordinateConfig = new Gcp.CertificateAuthority.Inputs.AuthoritySubordinateConfigArgs\n {\n CertificateAuthority = root_ca.Name,\n },\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-subordinate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 0,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n ContentCommitment = true,\n KeyEncipherment = false,\n DataEncipherment = true,\n KeyAgreement = true,\n CertSign = true,\n CrlSign = true,\n DecipherOnly = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n ClientAuth = false,\n EmailProtection = true,\n CodeSigning = true,\n TimeStamping = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n Type = \"SUBORDINATE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewAuthority(ctx, \"root-ca\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority-root\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority-sub\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tSubordinateConfig: \u0026certificateauthority.AuthoritySubordinateConfigArgs{\n\t\t\t\tCertificateAuthority: root_ca.Name,\n\t\t\t},\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-subordinate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(false),\n\t\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t\tClientAuth: pulumi.Bool(false),\n\t\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"SUBORDINATE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthoritySubordinateConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var root_ca = new Authority(\"root-ca\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority-root\")\n .location(\"us-central1\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority-sub\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .subordinateConfig(AuthoritySubordinateConfigArgs.builder()\n .certificateAuthority(root_ca.name())\n .build())\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-subordinate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(0)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .contentCommitment(true)\n .keyEncipherment(false)\n .dataEncipherment(true)\n .keyAgreement(true)\n .certSign(true)\n .crlSign(true)\n .decipherOnly(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .clientAuth(false)\n .emailProtection(true)\n .codeSigning(true)\n .timeStamping(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .type(\"SUBORDINATE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n root-ca:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority-root\n location: us-central1\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority-sub\n location: us-central1\n deletionProtection: 'true'\n subordinateConfig:\n certificateAuthority: ${[\"root-ca\"].name}\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-subordinate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 0\n keyUsage:\n baseKeyUsage:\n digitalSignature: true\n contentCommitment: true\n keyEncipherment: false\n dataEncipherment: true\n keyAgreement: true\n certSign: true\n crlSign: true\n decipherOnly: true\n extendedKeyUsage:\n serverAuth: true\n clientAuth: false\n emailProtection: true\n codeSigning: true\n timeStamping: true\n lifetime: 86400s\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n type: SUBORDINATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Privateca Certificate Authority Byo Key\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst privatecaSa = new gcp.projects.ServiceIdentity(\"privateca_sa\", {service: \"privateca.googleapis.com\"});\nconst privatecaSaKeyuserSignerverifier = new gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_signerverifier\", {\n cryptoKeyId: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role: \"roles/cloudkms.signerVerifier\",\n member: pulumi.interpolate`serviceAccount:${privatecaSa.email}`,\n});\nconst privatecaSaKeyuserViewer = new gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_viewer\", {\n cryptoKeyId: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role: \"roles/viewer\",\n member: pulumi.interpolate`serviceAccount:${privatecaSa.email}`,\n});\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority\",\n location: \"us-central1\",\n deletionProtection: true,\n keySpec: {\n cloudKmsKeyVersion: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n config: {\n subjectConfig: {\n subject: {\n organization: \"Example, Org.\",\n commonName: \"Example Authority\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 10,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n nameConstraints: {\n critical: true,\n permittedDnsNames: [\"*.example.com\"],\n excludedDnsNames: [\"*.deny.example.com\"],\n permittedIpRanges: [\"10.0.0.0/8\"],\n excludedIpRanges: [\"10.1.1.0/24\"],\n permittedEmailAddresses: [\".example.com\"],\n excludedEmailAddresses: [\".deny.example.com\"],\n permittedUris: [\".example.com\"],\n excludedUris: [\".deny.example.com\"],\n },\n },\n },\n}, {\n dependsOn: [\n privatecaSaKeyuserSignerverifier,\n privatecaSaKeyuserViewer,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nprivateca_sa = gcp.projects.ServiceIdentity(\"privateca_sa\", service=\"privateca.googleapis.com\")\nprivateca_sa_keyuser_signerverifier = gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_signerverifier\",\n crypto_key_id=\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role=\"roles/cloudkms.signerVerifier\",\n member=privateca_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\nprivateca_sa_keyuser_viewer = gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_viewer\",\n crypto_key_id=\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role=\"roles/viewer\",\n member=privateca_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority\",\n location=\"us-central1\",\n deletion_protection=True,\n key_spec={\n \"cloud_kms_key_version\": \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"Example, Org.\",\n \"common_name\": \"Example Authority\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 10,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n \"name_constraints\": {\n \"critical\": True,\n \"permitted_dns_names\": [\"*.example.com\"],\n \"excluded_dns_names\": [\"*.deny.example.com\"],\n \"permitted_ip_ranges\": [\"10.0.0.0/8\"],\n \"excluded_ip_ranges\": [\"10.1.1.0/24\"],\n \"permitted_email_addresses\": [\".example.com\"],\n \"excluded_email_addresses\": [\".deny.example.com\"],\n \"permitted_uris\": [\".example.com\"],\n \"excluded_uris\": [\".deny.example.com\"],\n },\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[\n privateca_sa_keyuser_signerverifier,\n privateca_sa_keyuser_viewer,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var privatecaSa = new Gcp.Projects.ServiceIdentity(\"privateca_sa\", new()\n {\n Service = \"privateca.googleapis.com\",\n });\n\n var privatecaSaKeyuserSignerverifier = new Gcp.Kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_signerverifier\", new()\n {\n CryptoKeyId = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n Role = \"roles/cloudkms.signerVerifier\",\n Member = privatecaSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var privatecaSaKeyuserViewer = new Gcp.Kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_viewer\", new()\n {\n CryptoKeyId = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n Role = \"roles/viewer\",\n Member = privatecaSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority\",\n Location = \"us-central1\",\n DeletionProtection = true,\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n CloudKmsKeyVersion = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"Example, Org.\",\n CommonName = \"Example Authority\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 10,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n NameConstraints = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigNameConstraintsArgs\n {\n Critical = true,\n PermittedDnsNames = new[]\n {\n \"*.example.com\",\n },\n ExcludedDnsNames = new[]\n {\n \"*.deny.example.com\",\n },\n PermittedIpRanges = new[]\n {\n \"10.0.0.0/8\",\n },\n ExcludedIpRanges = new[]\n {\n \"10.1.1.0/24\",\n },\n PermittedEmailAddresses = new[]\n {\n \".example.com\",\n },\n ExcludedEmailAddresses = new[]\n {\n \".deny.example.com\",\n },\n PermittedUris = new[]\n {\n \".example.com\",\n },\n ExcludedUris = new[]\n {\n \".deny.example.com\",\n },\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n privatecaSaKeyuserSignerverifier,\n privatecaSaKeyuserViewer,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivatecaSa, err := projects.NewServiceIdentity(ctx, \"privateca_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tService: pulumi.String(\"privateca.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivatecaSaKeyuserSignerverifier, err := kms.NewCryptoKeyIAMMember(ctx, \"privateca_sa_keyuser_signerverifier\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.signerVerifier\"),\n\t\t\tMember: privatecaSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivatecaSaKeyuserViewer, err := kms.NewCryptoKeyIAMMember(ctx, \"privateca_sa_keyuser_viewer\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\"),\n\t\t\tRole: pulumi.String(\"roles/viewer\"),\n\t\t\tMember: privatecaSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tCloudKmsKeyVersion: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\"),\n\t\t\t},\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"Example, Org.\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"Example Authority\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNameConstraints: \u0026certificateauthority.AuthorityConfigX509ConfigNameConstraintsArgs{\n\t\t\t\t\t\tCritical: pulumi.Bool(true),\n\t\t\t\t\t\tPermittedDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"*.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"*.deny.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermittedIpRanges: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"10.0.0.0/8\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedIpRanges: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"10.1.1.0/24\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermittedEmailAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedEmailAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".deny.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermittedUris: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedUris: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".deny.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprivatecaSaKeyuserSignerverifier,\n\t\t\tprivatecaSaKeyuserViewer,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigNameConstraintsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var privatecaSa = new ServiceIdentity(\"privatecaSa\", ServiceIdentityArgs.builder()\n .service(\"privateca.googleapis.com\")\n .build());\n\n var privatecaSaKeyuserSignerverifier = new CryptoKeyIAMMember(\"privatecaSaKeyuserSignerverifier\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\")\n .role(\"roles/cloudkms.signerVerifier\")\n .member(privatecaSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var privatecaSaKeyuserViewer = new CryptoKeyIAMMember(\"privatecaSaKeyuserViewer\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\")\n .role(\"roles/viewer\")\n .member(privatecaSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .cloudKmsKeyVersion(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\")\n .build())\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"Example, Org.\")\n .commonName(\"Example Authority\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(10)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .nameConstraints(AuthorityConfigX509ConfigNameConstraintsArgs.builder()\n .critical(true)\n .permittedDnsNames(\"*.example.com\")\n .excludedDnsNames(\"*.deny.example.com\")\n .permittedIpRanges(\"10.0.0.0/8\")\n .excludedIpRanges(\"10.1.1.0/24\")\n .permittedEmailAddresses(\".example.com\")\n .excludedEmailAddresses(\".deny.example.com\")\n .permittedUris(\".example.com\")\n .excludedUris(\".deny.example.com\")\n .build())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n privatecaSaKeyuserSignerverifier,\n privatecaSaKeyuserViewer)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n privatecaSa:\n type: gcp:projects:ServiceIdentity\n name: privateca_sa\n properties:\n service: privateca.googleapis.com\n privatecaSaKeyuserSignerverifier:\n type: gcp:kms:CryptoKeyIAMMember\n name: privateca_sa_keyuser_signerverifier\n properties:\n cryptoKeyId: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\n role: roles/cloudkms.signerVerifier\n member: serviceAccount:${privatecaSa.email}\n privatecaSaKeyuserViewer:\n type: gcp:kms:CryptoKeyIAMMember\n name: privateca_sa_keyuser_viewer\n properties:\n cryptoKeyId: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\n role: roles/viewer\n member: serviceAccount:${privatecaSa.email}\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority\n location: us-central1\n deletionProtection: 'true'\n keySpec:\n cloudKmsKeyVersion: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\n config:\n subjectConfig:\n subject:\n organization: Example, Org.\n commonName: Example Authority\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 10\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n nameConstraints:\n critical: true\n permittedDnsNames:\n - '*.example.com'\n excludedDnsNames:\n - '*.deny.example.com'\n permittedIpRanges:\n - 10.0.0.0/8\n excludedIpRanges:\n - 10.1.1.0/24\n permittedEmailAddresses:\n - .example.com\n excludedEmailAddresses:\n - .deny.example.com\n permittedUris:\n - .example.com\n excludedUris:\n - .deny.example.com\n options:\n dependson:\n - ${privatecaSaKeyuserSignerverifier}\n - ${privatecaSaKeyuserViewer}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Privateca Certificate Authority Custom Ski\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority\",\n location: \"us-central1\",\n deletionProtection: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n subjectKeyId: {\n keyId: \"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\",\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 10,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n contentCommitment: true,\n keyEncipherment: false,\n dataEncipherment: true,\n keyAgreement: true,\n certSign: true,\n crlSign: true,\n decipherOnly: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n clientAuth: false,\n emailProtection: true,\n codeSigning: true,\n timeStamping: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n cloudKmsKeyVersion: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority\",\n location=\"us-central1\",\n deletion_protection=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-certificate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"subject_key_id\": {\n \"key_id\": \"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\",\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 10,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"digital_signature\": True,\n \"content_commitment\": True,\n \"key_encipherment\": False,\n \"data_encipherment\": True,\n \"key_agreement\": True,\n \"cert_sign\": True,\n \"crl_sign\": True,\n \"decipher_only\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n \"client_auth\": False,\n \"email_protection\": True,\n \"code_signing\": True,\n \"time_stamping\": True,\n },\n },\n },\n },\n lifetime=\"86400s\",\n key_spec={\n \"cloud_kms_key_version\": \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority\",\n Location = \"us-central1\",\n DeletionProtection = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n SubjectKeyId = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectKeyIdArgs\n {\n KeyId = \"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\",\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 10,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n ContentCommitment = true,\n KeyEncipherment = false,\n DataEncipherment = true,\n KeyAgreement = true,\n CertSign = true,\n CrlSign = true,\n DecipherOnly = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n ClientAuth = false,\n EmailProtection = true,\n CodeSigning = true,\n TimeStamping = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n CloudKmsKeyVersion = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSubjectKeyId: \u0026certificateauthority.AuthorityConfigSubjectKeyIdArgs{\n\t\t\t\t\tKeyId: pulumi.String(\"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\"),\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(false),\n\t\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t\tClientAuth: pulumi.Bool(false),\n\t\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tCloudKmsKeyVersion: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectKeyIdArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .subjectKeyId(AuthorityConfigSubjectKeyIdArgs.builder()\n .keyId(\"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\")\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(10)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .contentCommitment(true)\n .keyEncipherment(false)\n .dataEncipherment(true)\n .keyAgreement(true)\n .certSign(true)\n .crlSign(true)\n .decipherOnly(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .clientAuth(false)\n .emailProtection(true)\n .codeSigning(true)\n .timeStamping(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .cloudKmsKeyVersion(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority\n location: us-central1\n deletionProtection: 'true'\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n subjectKeyId:\n keyId: 4cf3372289b1d411b999dbb9ebcd44744b6b2fca\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 10\n keyUsage:\n baseKeyUsage:\n digitalSignature: true\n contentCommitment: true\n keyEncipherment: false\n dataEncipherment: true\n keyAgreement: true\n certSign: true\n crlSign: true\n decipherOnly: true\n extendedKeyUsage:\n serverAuth: true\n clientAuth: false\n emailProtection: true\n codeSigning: true\n timeStamping: true\n lifetime: 86400s\n keySpec:\n cloudKmsKeyVersion: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCertificateAuthority can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificateAuthorities/{{certificate_authority_id}}`\n\n* `{{project}}/{{location}}/{{pool}}/{{certificate_authority_id}}`\n\n* `{{location}}/{{pool}}/{{certificate_authority_id}}`\n\nWhen using the `pulumi import` command, CertificateAuthority can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:certificateauthority/authority:Authority default projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificateAuthorities/{{certificate_authority_id}}\n```\n\n```sh\n$ pulumi import gcp:certificateauthority/authority:Authority default {{project}}/{{location}}/{{pool}}/{{certificate_authority_id}}\n```\n\n```sh\n$ pulumi import gcp:certificateauthority/authority:Authority default {{location}}/{{pool}}/{{certificate_authority_id}}\n```\n\n", + "description": "A CertificateAuthority represents an individual Certificate Authority. A\nCertificateAuthority can be used to create Certificates.\n\n\nTo get more information about CertificateAuthority, see:\n\n* [API documentation](https://cloud.google.com/certificate-authority-service/docs/reference/rest)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/certificate-authority-service)\n\n\u003e **Warning:** On newer versions of the provider, you must explicitly set `deletion_protection=false`\n(and run `pulumi up` to write the field to state) in order to destroy a CertificateAuthority.\nIt is recommended to not set this field (or set it to true) until you're ready to destroy.\n\n## Example Usage\n\n### Privateca Certificate Authority Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority\",\n location: \"us-central1\",\n deletionProtection: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 10,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n contentCommitment: true,\n keyEncipherment: false,\n dataEncipherment: true,\n keyAgreement: true,\n certSign: true,\n crlSign: true,\n decipherOnly: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n clientAuth: false,\n emailProtection: true,\n codeSigning: true,\n timeStamping: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority\",\n location=\"us-central1\",\n deletion_protection=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-certificate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 10,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"digital_signature\": True,\n \"content_commitment\": True,\n \"key_encipherment\": False,\n \"data_encipherment\": True,\n \"key_agreement\": True,\n \"cert_sign\": True,\n \"crl_sign\": True,\n \"decipher_only\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n \"client_auth\": False,\n \"email_protection\": True,\n \"code_signing\": True,\n \"time_stamping\": True,\n },\n },\n },\n },\n lifetime=\"86400s\",\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority\",\n Location = \"us-central1\",\n DeletionProtection = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 10,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n ContentCommitment = true,\n KeyEncipherment = false,\n DataEncipherment = true,\n KeyAgreement = true,\n CertSign = true,\n CrlSign = true,\n DecipherOnly = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n ClientAuth = false,\n EmailProtection = true,\n CodeSigning = true,\n TimeStamping = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(false),\n\t\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t\tClientAuth: pulumi.Bool(false),\n\t\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(10)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .contentCommitment(true)\n .keyEncipherment(false)\n .dataEncipherment(true)\n .keyAgreement(true)\n .certSign(true)\n .crlSign(true)\n .decipherOnly(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .clientAuth(false)\n .emailProtection(true)\n .codeSigning(true)\n .timeStamping(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority\n location: us-central1\n deletionProtection: 'true'\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 10\n keyUsage:\n baseKeyUsage:\n digitalSignature: true\n contentCommitment: true\n keyEncipherment: false\n dataEncipherment: true\n keyAgreement: true\n certSign: true\n crlSign: true\n decipherOnly: true\n extendedKeyUsage:\n serverAuth: true\n clientAuth: false\n emailProtection: true\n codeSigning: true\n timeStamping: true\n lifetime: 86400s\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Privateca Certificate Authority Subordinate\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst root_ca = new gcp.certificateauthority.Authority(\"root-ca\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority-root\",\n location: \"us-central1\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n});\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority-sub\",\n location: \"us-central1\",\n deletionProtection: true,\n subordinateConfig: {\n certificateAuthority: root_ca.name,\n },\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-subordinate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 0,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n contentCommitment: true,\n keyEncipherment: false,\n dataEncipherment: true,\n keyAgreement: true,\n certSign: true,\n crlSign: true,\n decipherOnly: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n clientAuth: false,\n emailProtection: true,\n codeSigning: true,\n timeStamping: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n type: \"SUBORDINATE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nroot_ca = gcp.certificateauthority.Authority(\"root-ca\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority-root\",\n location=\"us-central1\",\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-certificate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True)\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority-sub\",\n location=\"us-central1\",\n deletion_protection=True,\n subordinate_config={\n \"certificate_authority\": root_ca.name,\n },\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-subordinate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 0,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"digital_signature\": True,\n \"content_commitment\": True,\n \"key_encipherment\": False,\n \"data_encipherment\": True,\n \"key_agreement\": True,\n \"cert_sign\": True,\n \"crl_sign\": True,\n \"decipher_only\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n \"client_auth\": False,\n \"email_protection\": True,\n \"code_signing\": True,\n \"time_stamping\": True,\n },\n },\n },\n },\n lifetime=\"86400s\",\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n type=\"SUBORDINATE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var root_ca = new Gcp.CertificateAuthority.Authority(\"root-ca\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority-root\",\n Location = \"us-central1\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n });\n\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority-sub\",\n Location = \"us-central1\",\n DeletionProtection = true,\n SubordinateConfig = new Gcp.CertificateAuthority.Inputs.AuthoritySubordinateConfigArgs\n {\n CertificateAuthority = root_ca.Name,\n },\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-subordinate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 0,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n ContentCommitment = true,\n KeyEncipherment = false,\n DataEncipherment = true,\n KeyAgreement = true,\n CertSign = true,\n CrlSign = true,\n DecipherOnly = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n ClientAuth = false,\n EmailProtection = true,\n CodeSigning = true,\n TimeStamping = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n Type = \"SUBORDINATE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewAuthority(ctx, \"root-ca\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority-root\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority-sub\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tSubordinateConfig: \u0026certificateauthority.AuthoritySubordinateConfigArgs{\n\t\t\t\tCertificateAuthority: root_ca.Name,\n\t\t\t},\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-subordinate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(0),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(false),\n\t\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t\tClientAuth: pulumi.Bool(false),\n\t\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"SUBORDINATE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthoritySubordinateConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var root_ca = new Authority(\"root-ca\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority-root\")\n .location(\"us-central1\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .build());\n\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority-sub\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .subordinateConfig(AuthoritySubordinateConfigArgs.builder()\n .certificateAuthority(root_ca.name())\n .build())\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-subordinate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(0)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .contentCommitment(true)\n .keyEncipherment(false)\n .dataEncipherment(true)\n .keyAgreement(true)\n .certSign(true)\n .crlSign(true)\n .decipherOnly(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .clientAuth(false)\n .emailProtection(true)\n .codeSigning(true)\n .timeStamping(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .type(\"SUBORDINATE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n root-ca:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority-root\n location: us-central1\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority-sub\n location: us-central1\n deletionProtection: 'true'\n subordinateConfig:\n certificateAuthority: ${[\"root-ca\"].name}\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-subordinate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 0\n keyUsage:\n baseKeyUsage:\n digitalSignature: true\n contentCommitment: true\n keyEncipherment: false\n dataEncipherment: true\n keyAgreement: true\n certSign: true\n crlSign: true\n decipherOnly: true\n extendedKeyUsage:\n serverAuth: true\n clientAuth: false\n emailProtection: true\n codeSigning: true\n timeStamping: true\n lifetime: 86400s\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n type: SUBORDINATE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Privateca Certificate Authority Byo Key\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst privatecaSa = new gcp.projects.ServiceIdentity(\"privateca_sa\", {service: \"privateca.googleapis.com\"});\nconst privatecaSaKeyuserSignerverifier = new gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_signerverifier\", {\n cryptoKeyId: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role: \"roles/cloudkms.signerVerifier\",\n member: privatecaSa.member,\n});\nconst privatecaSaKeyuserViewer = new gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_viewer\", {\n cryptoKeyId: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role: \"roles/viewer\",\n member: privatecaSa.member,\n});\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority\",\n location: \"us-central1\",\n deletionProtection: true,\n keySpec: {\n cloudKmsKeyVersion: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n config: {\n subjectConfig: {\n subject: {\n organization: \"Example, Org.\",\n commonName: \"Example Authority\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 10,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n nameConstraints: {\n critical: true,\n permittedDnsNames: [\"*.example.com\"],\n excludedDnsNames: [\"*.deny.example.com\"],\n permittedIpRanges: [\"10.0.0.0/8\"],\n excludedIpRanges: [\"10.1.1.0/24\"],\n permittedEmailAddresses: [\".example.com\"],\n excludedEmailAddresses: [\".deny.example.com\"],\n permittedUris: [\".example.com\"],\n excludedUris: [\".deny.example.com\"],\n },\n },\n },\n}, {\n dependsOn: [\n privatecaSaKeyuserSignerverifier,\n privatecaSaKeyuserViewer,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nprivateca_sa = gcp.projects.ServiceIdentity(\"privateca_sa\", service=\"privateca.googleapis.com\")\nprivateca_sa_keyuser_signerverifier = gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_signerverifier\",\n crypto_key_id=\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role=\"roles/cloudkms.signerVerifier\",\n member=privateca_sa.member)\nprivateca_sa_keyuser_viewer = gcp.kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_viewer\",\n crypto_key_id=\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n role=\"roles/viewer\",\n member=privateca_sa.member)\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority\",\n location=\"us-central1\",\n deletion_protection=True,\n key_spec={\n \"cloud_kms_key_version\": \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"Example, Org.\",\n \"common_name\": \"Example Authority\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 10,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n \"name_constraints\": {\n \"critical\": True,\n \"permitted_dns_names\": [\"*.example.com\"],\n \"excluded_dns_names\": [\"*.deny.example.com\"],\n \"permitted_ip_ranges\": [\"10.0.0.0/8\"],\n \"excluded_ip_ranges\": [\"10.1.1.0/24\"],\n \"permitted_email_addresses\": [\".example.com\"],\n \"excluded_email_addresses\": [\".deny.example.com\"],\n \"permitted_uris\": [\".example.com\"],\n \"excluded_uris\": [\".deny.example.com\"],\n },\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[\n privateca_sa_keyuser_signerverifier,\n privateca_sa_keyuser_viewer,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var privatecaSa = new Gcp.Projects.ServiceIdentity(\"privateca_sa\", new()\n {\n Service = \"privateca.googleapis.com\",\n });\n\n var privatecaSaKeyuserSignerverifier = new Gcp.Kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_signerverifier\", new()\n {\n CryptoKeyId = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n Role = \"roles/cloudkms.signerVerifier\",\n Member = privatecaSa.Member,\n });\n\n var privatecaSaKeyuserViewer = new Gcp.Kms.CryptoKeyIAMMember(\"privateca_sa_keyuser_viewer\", new()\n {\n CryptoKeyId = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\",\n Role = \"roles/viewer\",\n Member = privatecaSa.Member,\n });\n\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority\",\n Location = \"us-central1\",\n DeletionProtection = true,\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n CloudKmsKeyVersion = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"Example, Org.\",\n CommonName = \"Example Authority\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 10,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n NameConstraints = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigNameConstraintsArgs\n {\n Critical = true,\n PermittedDnsNames = new[]\n {\n \"*.example.com\",\n },\n ExcludedDnsNames = new[]\n {\n \"*.deny.example.com\",\n },\n PermittedIpRanges = new[]\n {\n \"10.0.0.0/8\",\n },\n ExcludedIpRanges = new[]\n {\n \"10.1.1.0/24\",\n },\n PermittedEmailAddresses = new[]\n {\n \".example.com\",\n },\n ExcludedEmailAddresses = new[]\n {\n \".deny.example.com\",\n },\n PermittedUris = new[]\n {\n \".example.com\",\n },\n ExcludedUris = new[]\n {\n \".deny.example.com\",\n },\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n privatecaSaKeyuserSignerverifier,\n privatecaSaKeyuserViewer,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivatecaSa, err := projects.NewServiceIdentity(ctx, \"privateca_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tService: pulumi.String(\"privateca.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivatecaSaKeyuserSignerverifier, err := kms.NewCryptoKeyIAMMember(ctx, \"privateca_sa_keyuser_signerverifier\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.signerVerifier\"),\n\t\t\tMember: privatecaSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivatecaSaKeyuserViewer, err := kms.NewCryptoKeyIAMMember(ctx, \"privateca_sa_keyuser_viewer\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\"),\n\t\t\tRole: pulumi.String(\"roles/viewer\"),\n\t\t\tMember: privatecaSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tCloudKmsKeyVersion: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\"),\n\t\t\t},\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"Example, Org.\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"Example Authority\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tNameConstraints: \u0026certificateauthority.AuthorityConfigX509ConfigNameConstraintsArgs{\n\t\t\t\t\t\tCritical: pulumi.Bool(true),\n\t\t\t\t\t\tPermittedDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"*.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"*.deny.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermittedIpRanges: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"10.0.0.0/8\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedIpRanges: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"10.1.1.0/24\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermittedEmailAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedEmailAddresses: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".deny.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tPermittedUris: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExcludedUris: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\".deny.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprivatecaSaKeyuserSignerverifier,\n\t\t\tprivatecaSaKeyuserViewer,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigNameConstraintsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var privatecaSa = new ServiceIdentity(\"privatecaSa\", ServiceIdentityArgs.builder()\n .service(\"privateca.googleapis.com\")\n .build());\n\n var privatecaSaKeyuserSignerverifier = new CryptoKeyIAMMember(\"privatecaSaKeyuserSignerverifier\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\")\n .role(\"roles/cloudkms.signerVerifier\")\n .member(privatecaSa.member())\n .build());\n\n var privatecaSaKeyuserViewer = new CryptoKeyIAMMember(\"privatecaSaKeyuserViewer\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\")\n .role(\"roles/viewer\")\n .member(privatecaSa.member())\n .build());\n\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .cloudKmsKeyVersion(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\")\n .build())\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"Example, Org.\")\n .commonName(\"Example Authority\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(10)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .nameConstraints(AuthorityConfigX509ConfigNameConstraintsArgs.builder()\n .critical(true)\n .permittedDnsNames(\"*.example.com\")\n .excludedDnsNames(\"*.deny.example.com\")\n .permittedIpRanges(\"10.0.0.0/8\")\n .excludedIpRanges(\"10.1.1.0/24\")\n .permittedEmailAddresses(\".example.com\")\n .excludedEmailAddresses(\".deny.example.com\")\n .permittedUris(\".example.com\")\n .excludedUris(\".deny.example.com\")\n .build())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n privatecaSaKeyuserSignerverifier,\n privatecaSaKeyuserViewer)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n privatecaSa:\n type: gcp:projects:ServiceIdentity\n name: privateca_sa\n properties:\n service: privateca.googleapis.com\n privatecaSaKeyuserSignerverifier:\n type: gcp:kms:CryptoKeyIAMMember\n name: privateca_sa_keyuser_signerverifier\n properties:\n cryptoKeyId: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\n role: roles/cloudkms.signerVerifier\n member: ${privatecaSa.member}\n privatecaSaKeyuserViewer:\n type: gcp:kms:CryptoKeyIAMMember\n name: privateca_sa_keyuser_viewer\n properties:\n cryptoKeyId: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key\n role: roles/viewer\n member: ${privatecaSa.member}\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority\n location: us-central1\n deletionProtection: 'true'\n keySpec:\n cloudKmsKeyVersion: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\n config:\n subjectConfig:\n subject:\n organization: Example, Org.\n commonName: Example Authority\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 10\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n nameConstraints:\n critical: true\n permittedDnsNames:\n - '*.example.com'\n excludedDnsNames:\n - '*.deny.example.com'\n permittedIpRanges:\n - 10.0.0.0/8\n excludedIpRanges:\n - 10.1.1.0/24\n permittedEmailAddresses:\n - .example.com\n excludedEmailAddresses:\n - .deny.example.com\n permittedUris:\n - .example.com\n excludedUris:\n - .deny.example.com\n options:\n dependson:\n - ${privatecaSaKeyuserSignerverifier}\n - ${privatecaSaKeyuserViewer}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Privateca Certificate Authority Custom Ski\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.certificateauthority.Authority(\"default\", {\n pool: \"ca-pool\",\n certificateAuthorityId: \"my-certificate-authority\",\n location: \"us-central1\",\n deletionProtection: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"HashiCorp\",\n commonName: \"my-certificate-authority\",\n },\n subjectAltName: {\n dnsNames: [\"hashicorp.com\"],\n },\n },\n subjectKeyId: {\n keyId: \"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\",\n },\n x509Config: {\n caOptions: {\n isCa: true,\n maxIssuerPathLength: 10,\n },\n keyUsage: {\n baseKeyUsage: {\n digitalSignature: true,\n contentCommitment: true,\n keyEncipherment: false,\n dataEncipherment: true,\n keyAgreement: true,\n certSign: true,\n crlSign: true,\n decipherOnly: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n clientAuth: false,\n emailProtection: true,\n codeSigning: true,\n timeStamping: true,\n },\n },\n },\n },\n lifetime: \"86400s\",\n keySpec: {\n cloudKmsKeyVersion: \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.certificateauthority.Authority(\"default\",\n pool=\"ca-pool\",\n certificate_authority_id=\"my-certificate-authority\",\n location=\"us-central1\",\n deletion_protection=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"HashiCorp\",\n \"common_name\": \"my-certificate-authority\",\n },\n \"subject_alt_name\": {\n \"dns_names\": [\"hashicorp.com\"],\n },\n },\n \"subject_key_id\": {\n \"key_id\": \"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\",\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n \"max_issuer_path_length\": 10,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"digital_signature\": True,\n \"content_commitment\": True,\n \"key_encipherment\": False,\n \"data_encipherment\": True,\n \"key_agreement\": True,\n \"cert_sign\": True,\n \"crl_sign\": True,\n \"decipher_only\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n \"client_auth\": False,\n \"email_protection\": True,\n \"code_signing\": True,\n \"time_stamping\": True,\n },\n },\n },\n },\n lifetime=\"86400s\",\n key_spec={\n \"cloud_kms_key_version\": \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = \"ca-pool\",\n CertificateAuthorityId = \"my-certificate-authority\",\n Location = \"us-central1\",\n DeletionProtection = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"HashiCorp\",\n CommonName = \"my-certificate-authority\",\n },\n SubjectAltName = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs\n {\n DnsNames = new[]\n {\n \"hashicorp.com\",\n },\n },\n },\n SubjectKeyId = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectKeyIdArgs\n {\n KeyId = \"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\",\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n MaxIssuerPathLength = 10,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n DigitalSignature = true,\n ContentCommitment = true,\n KeyEncipherment = false,\n DataEncipherment = true,\n KeyAgreement = true,\n CertSign = true,\n CrlSign = true,\n DecipherOnly = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n ClientAuth = false,\n EmailProtection = true,\n CodeSigning = true,\n TimeStamping = true,\n },\n },\n },\n },\n Lifetime = \"86400s\",\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n CloudKmsKeyVersion = \"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: pulumi.String(\"ca-pool\"),\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"HashiCorp\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t\tSubjectAltName: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectAltNameArgs{\n\t\t\t\t\t\tDnsNames: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"hashicorp.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSubjectKeyId: \u0026certificateauthority.AuthorityConfigSubjectKeyIdArgs{\n\t\t\t\t\tKeyId: pulumi.String(\"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\"),\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t\tMaxIssuerPathLength: pulumi.Int(10),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tDigitalSignature: pulumi.Bool(true),\n\t\t\t\t\t\t\tContentCommitment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyEncipherment: pulumi.Bool(false),\n\t\t\t\t\t\t\tDataEncipherment: pulumi.Bool(true),\n\t\t\t\t\t\t\tKeyAgreement: pulumi.Bool(true),\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tDecipherOnly: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t\tClientAuth: pulumi.Bool(false),\n\t\t\t\t\t\t\tEmailProtection: pulumi.Bool(true),\n\t\t\t\t\t\t\tCodeSigning: pulumi.Bool(true),\n\t\t\t\t\t\t\tTimeStamping: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tCloudKmsKeyVersion: pulumi.String(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectAltNameArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectKeyIdArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Authority(\"default\", AuthorityArgs.builder()\n .pool(\"ca-pool\")\n .certificateAuthorityId(\"my-certificate-authority\")\n .location(\"us-central1\")\n .deletionProtection(\"true\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"HashiCorp\")\n .commonName(\"my-certificate-authority\")\n .build())\n .subjectAltName(AuthorityConfigSubjectConfigSubjectAltNameArgs.builder()\n .dnsNames(\"hashicorp.com\")\n .build())\n .build())\n .subjectKeyId(AuthorityConfigSubjectKeyIdArgs.builder()\n .keyId(\"4cf3372289b1d411b999dbb9ebcd44744b6b2fca\")\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .maxIssuerPathLength(10)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .digitalSignature(true)\n .contentCommitment(true)\n .keyEncipherment(false)\n .dataEncipherment(true)\n .keyAgreement(true)\n .certSign(true)\n .crlSign(true)\n .decipherOnly(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .clientAuth(false)\n .emailProtection(true)\n .codeSigning(true)\n .timeStamping(true)\n .build())\n .build())\n .build())\n .build())\n .lifetime(\"86400s\")\n .keySpec(AuthorityKeySpecArgs.builder()\n .cloudKmsKeyVersion(\"projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:Authority\n properties:\n pool: ca-pool\n certificateAuthorityId: my-certificate-authority\n location: us-central1\n deletionProtection: 'true'\n config:\n subjectConfig:\n subject:\n organization: HashiCorp\n commonName: my-certificate-authority\n subjectAltName:\n dnsNames:\n - hashicorp.com\n subjectKeyId:\n keyId: 4cf3372289b1d411b999dbb9ebcd44744b6b2fca\n x509Config:\n caOptions:\n isCa: true\n maxIssuerPathLength: 10\n keyUsage:\n baseKeyUsage:\n digitalSignature: true\n contentCommitment: true\n keyEncipherment: false\n dataEncipherment: true\n keyAgreement: true\n certSign: true\n crlSign: true\n decipherOnly: true\n extendedKeyUsage:\n serverAuth: true\n clientAuth: false\n emailProtection: true\n codeSigning: true\n timeStamping: true\n lifetime: 86400s\n keySpec:\n cloudKmsKeyVersion: projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key/cryptoKeyVersions/1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCertificateAuthority can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificateAuthorities/{{certificate_authority_id}}`\n\n* `{{project}}/{{location}}/{{pool}}/{{certificate_authority_id}}`\n\n* `{{location}}/{{pool}}/{{certificate_authority_id}}`\n\nWhen using the `pulumi import` command, CertificateAuthority can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:certificateauthority/authority:Authority default projects/{{project}}/locations/{{location}}/caPools/{{pool}}/certificateAuthorities/{{certificate_authority_id}}\n```\n\n```sh\n$ pulumi import gcp:certificateauthority/authority:Authority default {{project}}/{{location}}/{{pool}}/{{certificate_authority_id}}\n```\n\n```sh\n$ pulumi import gcp:certificateauthority/authority:Authority default {{location}}/{{pool}}/{{certificate_authority_id}}\n```\n\n", "properties": { "accessUrls": { "type": "array", @@ -136029,6 +137240,10 @@ }, "description": "A set of key/value environment variable pairs available during build time.\n" }, + "buildServiceAccount": { + "type": "string", + "description": "If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}`\n" + }, "buildWorkerPool": { "type": "string", "description": "Name of the Cloud Build Custom Worker Pool that should be used to build the function.\n" @@ -136179,6 +137394,7 @@ } }, "required": [ + "buildServiceAccount", "dockerRegistry", "effectiveLabels", "eventTrigger", @@ -136207,6 +137423,10 @@ }, "description": "A set of key/value environment variable pairs available during build time.\n" }, + "buildServiceAccount": { + "type": "string", + "description": "If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}`\n" + }, "buildWorkerPool": { "type": "string", "description": "Name of the Cloud Build Custom Worker Pool that should be used to build the function.\n" @@ -136355,6 +137575,10 @@ }, "description": "A set of key/value environment variable pairs available during build time.\n" }, + "buildServiceAccount": { + "type": "string", + "description": "If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}`\n" + }, "buildWorkerPool": { "type": "string", "description": "Name of the Cloud Build Custom Worker Pool that should be used to build the function.\n" @@ -136837,7 +138061,7 @@ } }, "gcp:cloudfunctionsv2/function:Function": { - "description": "A Cloud Function that contains user computation executed in response to an event.\n\n\nTo get more information about function, see:\n\n* [API documentation](https://cloud.google.com/functions/docs/reference/rest/v2beta/projects.locations.functions)\n\n## Example Usage\n\n### Cloudfunctions2 Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-v2\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-v2\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-v2\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-v2\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-v2\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-v2\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst topic = new gcp.pubsub.Topic(\"topic\", {name: \"functions2-topic\"});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloPubSub\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"4Gi\",\n timeoutSeconds: 60,\n maxInstanceRequestConcurrency: 80,\n availableCpu: \"4\",\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.pubsub.topic.v1.messagePublished\",\n pubsubTopic: topic.id,\n retryPolicy: \"RETRY_POLICY_RETRY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\ntopic = gcp.pubsub.Topic(\"topic\", name=\"functions2-topic\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloPubSub\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"4Gi\",\n \"timeout_seconds\": 60,\n \"max_instance_request_concurrency\": 80,\n \"available_cpu\": \"4\",\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.pubsub.topic.v1.messagePublished\",\n \"pubsub_topic\": topic.id,\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var topic = new Gcp.PubSub.Topic(\"topic\", new()\n {\n Name = \"functions2-topic\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloPubSub\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"4Gi\",\n TimeoutSeconds = 60,\n MaxInstanceRequestConcurrency = 80,\n AvailableCpu = \"4\",\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.pubsub.topic.v1.messagePublished\",\n PubsubTopic = topic.Id,\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := pubsub.NewTopic(ctx, \"topic\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"functions2-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloPubSub\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"4Gi\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tMaxInstanceRequestConcurrency: pulumi.Int(80),\n\t\t\t\tAvailableCpu: pulumi.String(\"4\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.pubsub.topic.v1.messagePublished\"),\n\t\t\t\tPubsubTopic: topic.ID(),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var topic = new Topic(\"topic\", TopicArgs.builder()\n .name(\"functions2-topic\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloPubSub\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"4Gi\")\n .timeoutSeconds(60)\n .maxInstanceRequestConcurrency(80)\n .availableCpu(\"4\")\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.pubsub.topic.v1.messagePublished\")\n .pubsubTopic(topic.id())\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n topic:\n type: gcp:pubsub:Topic\n properties:\n name: functions2-topic\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloPubSub\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 4Gi\n timeoutSeconds: 60\n maxInstanceRequestConcurrency: 80\n availableCpu: '4'\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.pubsub.topic.v1.messagePublished\n pubsubTopic: ${topic.id}\n retryPolicy: RETRY_POLICY_RETRY\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Scheduler Auth\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n minInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n serviceAccountEmail: account.email,\n },\n});\nconst invoker = new gcp.cloudfunctionsv2.FunctionIamMember(\"invoker\", {\n project: _function.project,\n location: _function.location,\n cloudFunction: _function.name,\n role: \"roles/cloudfunctions.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst cloudRunInvoker = new gcp.cloudrun.IamMember(\"cloud_run_invoker\", {\n project: _function.project,\n location: _function.location,\n service: _function.name,\n role: \"roles/run.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst invokeCloudFunction = new gcp.cloudscheduler.Job(\"invoke_cloud_function\", {\n name: \"invoke-gcf-function\",\n description: \"Schedule the HTTPS trigger for cloud function\",\n schedule: \"0 0 * * *\",\n project: _function.project,\n region: _function.location,\n httpTarget: {\n uri: _function.serviceConfig.apply(serviceConfig =\u003e serviceConfig?.uri),\n httpMethod: \"POST\",\n oidcToken: {\n audience: _function.serviceConfig.apply(serviceConfig =\u003e `${serviceConfig?.uri}/`),\n serviceAccountEmail: account.email,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"min_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"service_account_email\": account.email,\n })\ninvoker = gcp.cloudfunctionsv2.FunctionIamMember(\"invoker\",\n project=function.project,\n location=function.location,\n cloud_function=function.name,\n role=\"roles/cloudfunctions.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\ncloud_run_invoker = gcp.cloudrun.IamMember(\"cloud_run_invoker\",\n project=function.project,\n location=function.location,\n service=function.name,\n role=\"roles/run.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\ninvoke_cloud_function = gcp.cloudscheduler.Job(\"invoke_cloud_function\",\n name=\"invoke-gcf-function\",\n description=\"Schedule the HTTPS trigger for cloud function\",\n schedule=\"0 0 * * *\",\n project=function.project,\n region=function.location,\n http_target={\n \"uri\": function.service_config.uri,\n \"http_method\": \"POST\",\n \"oidc_token\": {\n \"audience\": function.service_config.apply(lambda service_config: f\"{service_config.uri}/\"),\n \"service_account_email\": account.email,\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MinInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n ServiceAccountEmail = account.Email,\n },\n });\n\n var invoker = new Gcp.CloudFunctionsV2.FunctionIamMember(\"invoker\", new()\n {\n Project = function.Project,\n Location = function.Location,\n CloudFunction = function.Name,\n Role = \"roles/cloudfunctions.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var cloudRunInvoker = new Gcp.CloudRun.IamMember(\"cloud_run_invoker\", new()\n {\n Project = function.Project,\n Location = function.Location,\n Service = function.Name,\n Role = \"roles/run.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var invokeCloudFunction = new Gcp.CloudScheduler.Job(\"invoke_cloud_function\", new()\n {\n Name = \"invoke-gcf-function\",\n Description = \"Schedule the HTTPS trigger for cloud function\",\n Schedule = \"0 0 * * *\",\n Project = function.Project,\n Region = function.Location,\n HttpTarget = new Gcp.CloudScheduler.Inputs.JobHttpTargetArgs\n {\n Uri = function.ServiceConfig.Apply(serviceConfig =\u003e serviceConfig?.Uri),\n HttpMethod = \"POST\",\n OidcToken = new Gcp.CloudScheduler.Inputs.JobHttpTargetOidcTokenArgs\n {\n Audience = function.ServiceConfig.Apply(serviceConfig =\u003e $\"{serviceConfig?.Uri}/\"),\n ServiceAccountEmail = account.Email,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudrun\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudscheduler\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunction, err := cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunctionIamMember(ctx, \"invoker\", \u0026cloudfunctionsv2.FunctionIamMemberArgs{\n\t\t\tProject: function.Project,\n\t\t\tLocation: function.Location,\n\t\t\tCloudFunction: function.Name,\n\t\t\tRole: pulumi.String(\"roles/cloudfunctions.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudrun.NewIamMember(ctx, \"cloud_run_invoker\", \u0026cloudrun.IamMemberArgs{\n\t\t\tProject: function.Project,\n\t\t\tLocation: function.Location,\n\t\t\tService: function.Name,\n\t\t\tRole: pulumi.String(\"roles/run.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudscheduler.NewJob(ctx, \"invoke_cloud_function\", \u0026cloudscheduler.JobArgs{\n\t\t\tName: pulumi.String(\"invoke-gcf-function\"),\n\t\t\tDescription: pulumi.String(\"Schedule the HTTPS trigger for cloud function\"),\n\t\t\tSchedule: pulumi.String(\"0 0 * * *\"),\n\t\t\tProject: function.Project,\n\t\t\tRegion: function.Location,\n\t\t\tHttpTarget: \u0026cloudscheduler.JobHttpTargetArgs{\n\t\t\t\tUri: function.ServiceConfig.ApplyT(func(serviceConfig cloudfunctionsv2.FunctionServiceConfig) (*string, error) {\n\t\t\t\t\treturn \u0026serviceConfig.Uri, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\tHttpMethod: pulumi.String(\"POST\"),\n\t\t\t\tOidcToken: \u0026cloudscheduler.JobHttpTargetOidcTokenArgs{\n\t\t\t\t\tAudience: function.ServiceConfig.ApplyT(func(serviceConfig cloudfunctionsv2.FunctionServiceConfig) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"%v/\", serviceConfig.Uri), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionIamMember;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionIamMemberArgs;\nimport com.pulumi.gcp.cloudrun.IamMember;\nimport com.pulumi.gcp.cloudrun.IamMemberArgs;\nimport com.pulumi.gcp.cloudscheduler.Job;\nimport com.pulumi.gcp.cloudscheduler.JobArgs;\nimport com.pulumi.gcp.cloudscheduler.inputs.JobHttpTargetArgs;\nimport com.pulumi.gcp.cloudscheduler.inputs.JobHttpTargetOidcTokenArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .minInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .serviceAccountEmail(account.email())\n .build())\n .build());\n\n var invoker = new FunctionIamMember(\"invoker\", FunctionIamMemberArgs.builder()\n .project(function.project())\n .location(function.location())\n .cloudFunction(function.name())\n .role(\"roles/cloudfunctions.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var cloudRunInvoker = new IamMember(\"cloudRunInvoker\", IamMemberArgs.builder()\n .project(function.project())\n .location(function.location())\n .service(function.name())\n .role(\"roles/run.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var invokeCloudFunction = new Job(\"invokeCloudFunction\", JobArgs.builder()\n .name(\"invoke-gcf-function\")\n .description(\"Schedule the HTTPS trigger for cloud function\")\n .schedule(\"0 0 * * *\")\n .project(function.project())\n .region(function.location())\n .httpTarget(JobHttpTargetArgs.builder()\n .uri(function.serviceConfig().applyValue(serviceConfig -\u003e serviceConfig.uri()))\n .httpMethod(\"POST\")\n .oidcToken(JobHttpTargetOidcTokenArgs.builder()\n .audience(function.serviceConfig().applyValue(serviceConfig -\u003e String.format(\"%s/\", serviceConfig.uri())))\n .serviceAccountEmail(account.email())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n minInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n serviceAccountEmail: ${account.email}\n invoker:\n type: gcp:cloudfunctionsv2:FunctionIamMember\n properties:\n project: ${function.project}\n location: ${function.location}\n cloudFunction: ${function.name}\n role: roles/cloudfunctions.invoker\n member: serviceAccount:${account.email}\n cloudRunInvoker:\n type: gcp:cloudrun:IamMember\n name: cloud_run_invoker\n properties:\n project: ${function.project}\n location: ${function.location}\n service: ${function.name}\n role: roles/run.invoker\n member: serviceAccount:${account.email}\n invokeCloudFunction:\n type: gcp:cloudscheduler:Job\n name: invoke_cloud_function\n properties:\n name: invoke-gcf-function\n description: Schedule the HTTPS trigger for cloud function\n schedule: 0 0 * * *\n project: ${function.project}\n region: ${function.location}\n httpTarget:\n uri: ${function.serviceConfig.uri}\n httpMethod: POST\n oidcToken:\n audience: ${function.serviceConfig.uri}/\n serviceAccountEmail: ${account.email}\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Basic Gcs\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source_bucket = new gcp.storage.Bucket(\"source-bucket\", {\n name: \"gcf-source-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: source_bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst trigger_bucket = new gcp.storage.Bucket(\"trigger-bucket\", {\n name: \"gcf-trigger-bucket\",\n location: \"us-central1\",\n uniformBucketLevelAccess: true,\n});\nconst gcsAccount = gcp.storage.getProjectServiceAccount({});\n// To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n// (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\nconst gcs_pubsub_publishing = new gcp.projects.IAMMember(\"gcs-pubsub-publishing\", {\n project: \"my-project-name\",\n role: \"roles/pubsub.publisher\",\n member: gcsAccount.then(gcsAccount =\u003e `serviceAccount:${gcsAccount.emailAddress}`),\n});\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n});\n// Permissions on the service account used by the function and Eventarc trigger\nconst invoking = new gcp.projects.IAMMember(\"invoking\", {\n project: \"my-project-name\",\n role: \"roles/run.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [gcs_pubsub_publishing],\n});\nconst event_receiving = new gcp.projects.IAMMember(\"event-receiving\", {\n project: \"my-project-name\",\n role: \"roles/eventarc.eventReceiver\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [invoking],\n});\nconst artifactregistry_reader = new gcp.projects.IAMMember(\"artifactregistry-reader\", {\n project: \"my-project-name\",\n role: \"roles/artifactregistry.reader\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [event_receiving],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs12\",\n entryPoint: \"entryPoint\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: source_bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n eventType: \"google.cloud.storage.object.v1.finalized\",\n retryPolicy: \"RETRY_POLICY_RETRY\",\n serviceAccountEmail: account.email,\n eventFilters: [{\n attribute: \"bucket\",\n value: trigger_bucket.name,\n }],\n },\n}, {\n dependsOn: [\n event_receiving,\n artifactregistry_reader,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource_bucket = gcp.storage.Bucket(\"source-bucket\",\n name=\"gcf-source-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=source_bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\ntrigger_bucket = gcp.storage.Bucket(\"trigger-bucket\",\n name=\"gcf-trigger-bucket\",\n location=\"us-central1\",\n uniform_bucket_level_access=True)\ngcs_account = gcp.storage.get_project_service_account()\n# To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n# (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\ngcs_pubsub_publishing = gcp.projects.IAMMember(\"gcs-pubsub-publishing\",\n project=\"my-project-name\",\n role=\"roles/pubsub.publisher\",\n member=f\"serviceAccount:{gcs_account.email_address}\")\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n# Permissions on the service account used by the function and Eventarc trigger\ninvoking = gcp.projects.IAMMember(\"invoking\",\n project=\"my-project-name\",\n role=\"roles/run.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[gcs_pubsub_publishing]))\nevent_receiving = gcp.projects.IAMMember(\"event-receiving\",\n project=\"my-project-name\",\n role=\"roles/eventarc.eventReceiver\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[invoking]))\nartifactregistry_reader = gcp.projects.IAMMember(\"artifactregistry-reader\",\n project=\"my-project-name\",\n role=\"roles/artifactregistry.reader\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[event_receiving]))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs12\",\n \"entry_point\": \"entryPoint\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": source_bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"event_type\": \"google.cloud.storage.object.v1.finalized\",\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n \"service_account_email\": account.email,\n \"event_filters\": [{\n \"attribute\": \"bucket\",\n \"value\": trigger_bucket.name,\n }],\n },\n opts = pulumi.ResourceOptions(depends_on=[\n event_receiving,\n artifactregistry_reader,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source_bucket = new Gcp.Storage.Bucket(\"source-bucket\", new()\n {\n Name = \"gcf-source-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = source_bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var trigger_bucket = new Gcp.Storage.Bucket(\"trigger-bucket\", new()\n {\n Name = \"gcf-trigger-bucket\",\n Location = \"us-central1\",\n UniformBucketLevelAccess = true,\n });\n\n var gcsAccount = Gcp.Storage.GetProjectServiceAccount.Invoke();\n\n // To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n // (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n var gcs_pubsub_publishing = new Gcp.Projects.IAMMember(\"gcs-pubsub-publishing\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/pubsub.publisher\",\n Member = $\"serviceAccount:{gcsAccount.Apply(getProjectServiceAccountResult =\u003e getProjectServiceAccountResult.EmailAddress)}\",\n });\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n });\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new Gcp.Projects.IAMMember(\"invoking\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/run.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n gcs_pubsub_publishing,\n },\n });\n\n var event_receiving = new Gcp.Projects.IAMMember(\"event-receiving\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/eventarc.eventReceiver\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n invoking,\n },\n });\n\n var artifactregistry_reader = new Gcp.Projects.IAMMember(\"artifactregistry-reader\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/artifactregistry.reader\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs12\",\n EntryPoint = \"entryPoint\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = source_bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n EventType = \"google.cloud.storage.object.v1.finalized\",\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n ServiceAccountEmail = account.Email,\n EventFilters = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"bucket\",\n Value = trigger_bucket.Name,\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n artifactregistry_reader,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storage.NewBucket(ctx, \"source-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-source-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: source_bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucket(ctx, \"trigger-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-trigger-bucket\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgcsAccount, err := storage.GetProjectServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n\t\t// (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n\t\t_, err = projects.NewIAMMember(ctx, \"gcs-pubsub-publishing\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/pubsub.publisher\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:%v\", gcsAccount.EmailAddress)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Permissions on the service account used by the function and Eventarc trigger\n\t\tinvoking, err := projects.NewIAMMember(ctx, \"invoking\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/run.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tgcs_pubsub_publishing,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"event-receiving\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/eventarc.eventReceiver\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tinvoking,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"artifactregistry-reader\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.reader\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs12\"),\n\t\t\t\tEntryPoint: pulumi.String(\"entryPoint\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: source_bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tEventType: pulumi.String(\"google.cloud.storage.object.v1.finalized\"),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t\tEventFilters: cloudfunctionsv2.FunctionEventTriggerEventFilterArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"bucket\"),\n\t\t\t\t\t\tValue: trigger_bucket.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t\tartifactregistry_reader,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.storage.StorageFunctions;\nimport com.pulumi.gcp.storage.inputs.GetProjectServiceAccountArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source_bucket = new Bucket(\"source-bucket\", BucketArgs.builder()\n .name(\"gcf-source-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(source_bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var trigger_bucket = new Bucket(\"trigger-bucket\", BucketArgs.builder()\n .name(\"gcf-trigger-bucket\")\n .location(\"us-central1\")\n .uniformBucketLevelAccess(true)\n .build());\n\n final var gcsAccount = StorageFunctions.getProjectServiceAccount();\n\n // To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n // (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n var gcs_pubsub_publishing = new IAMMember(\"gcs-pubsub-publishing\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/pubsub.publisher\")\n .member(String.format(\"serviceAccount:%s\", gcsAccount.applyValue(getProjectServiceAccountResult -\u003e getProjectServiceAccountResult.emailAddress())))\n .build());\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n .build());\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new IAMMember(\"invoking\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/run.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(gcs_pubsub_publishing)\n .build());\n\n var event_receiving = new IAMMember(\"event-receiving\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/eventarc.eventReceiver\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(invoking)\n .build());\n\n var artifactregistry_reader = new IAMMember(\"artifactregistry-reader\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/artifactregistry.reader\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(event_receiving)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs12\")\n .entryPoint(\"entryPoint\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(source_bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .eventType(\"google.cloud.storage.object.v1.finalized\")\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .serviceAccountEmail(account.email())\n .eventFilters(FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"bucket\")\n .value(trigger_bucket.name())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n event_receiving,\n artifactregistry_reader)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-source-bucket\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${[\"source-bucket\"].name}\n source:\n fn::FileAsset: function-source.zip\n trigger-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-trigger-bucket\n location: us-central1\n uniformBucketLevelAccess: true\n # To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n # (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n gcs-pubsub-publishing:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/pubsub.publisher\n member: serviceAccount:${gcsAccount.emailAddress}\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account - used for both the cloud function and eventarc trigger in the test\n # Permissions on the service account used by the function and Eventarc trigger\n invoking:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/run.invoker\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${[\"gcs-pubsub-publishing\"]}\n event-receiving:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/eventarc.eventReceiver\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${invoking}\n artifactregistry-reader:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/artifactregistry.reader\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${[\"event-receiving\"]}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs12\n entryPoint: entryPoint\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${[\"source-bucket\"].name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n eventType: google.cloud.storage.object.v1.finalized\n retryPolicy: RETRY_POLICY_RETRY\n serviceAccountEmail: ${account.email}\n eventFilters:\n - attribute: bucket\n value: ${[\"trigger-bucket\"].name}\n options:\n dependson:\n - ${[\"event-receiving\"]}\n - ${[\"artifactregistry-reader\"]}\nvariables:\n gcsAccount:\n fn::invoke:\n Function: gcp:storage:getProjectServiceAccount\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Basic Auditlogs\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// This example follows the examples shown in this Google Cloud Community blog post\n// https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n// and the docs:\n// https://cloud.google.com/eventarc/docs/path-patterns\nconst source_bucket = new gcp.storage.Bucket(\"source-bucket\", {\n name: \"gcf-source-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: source_bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n});\n// Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n// Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n// google_cloudfunctions2_function below (Audit Log events have path pattern support)\nconst audit_log_bucket = new gcp.storage.Bucket(\"audit-log-bucket\", {\n name: \"gcf-auditlog-bucket\",\n location: \"us-central1\",\n uniformBucketLevelAccess: true,\n});\n// Permissions on the service account used by the function and Eventarc trigger\nconst invoking = new gcp.projects.IAMMember(\"invoking\", {\n project: \"my-project-name\",\n role: \"roles/run.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst event_receiving = new gcp.projects.IAMMember(\"event-receiving\", {\n project: \"my-project-name\",\n role: \"roles/eventarc.eventReceiver\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [invoking],\n});\nconst artifactregistry_reader = new gcp.projects.IAMMember(\"artifactregistry-reader\", {\n project: \"my-project-name\",\n role: \"roles/artifactregistry.reader\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [event_receiving],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs12\",\n entryPoint: \"entryPoint\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: source_bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.audit.log.v1.written\",\n retryPolicy: \"RETRY_POLICY_RETRY\",\n serviceAccountEmail: account.email,\n eventFilters: [\n {\n attribute: \"serviceName\",\n value: \"storage.googleapis.com\",\n },\n {\n attribute: \"methodName\",\n value: \"storage.objects.create\",\n },\n {\n attribute: \"resourceName\",\n value: pulumi.interpolate`/projects/_/buckets/${audit_log_bucket.name}/objects/*.txt`,\n operator: \"match-path-pattern\",\n },\n ],\n },\n}, {\n dependsOn: [\n event_receiving,\n artifactregistry_reader,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# This example follows the examples shown in this Google Cloud Community blog post\n# https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n# and the docs:\n# https://cloud.google.com/eventarc/docs/path-patterns\nsource_bucket = gcp.storage.Bucket(\"source-bucket\",\n name=\"gcf-source-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=source_bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n# Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n# Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n# google_cloudfunctions2_function below (Audit Log events have path pattern support)\naudit_log_bucket = gcp.storage.Bucket(\"audit-log-bucket\",\n name=\"gcf-auditlog-bucket\",\n location=\"us-central1\",\n uniform_bucket_level_access=True)\n# Permissions on the service account used by the function and Eventarc trigger\ninvoking = gcp.projects.IAMMember(\"invoking\",\n project=\"my-project-name\",\n role=\"roles/run.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nevent_receiving = gcp.projects.IAMMember(\"event-receiving\",\n project=\"my-project-name\",\n role=\"roles/eventarc.eventReceiver\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[invoking]))\nartifactregistry_reader = gcp.projects.IAMMember(\"artifactregistry-reader\",\n project=\"my-project-name\",\n role=\"roles/artifactregistry.reader\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[event_receiving]))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs12\",\n \"entry_point\": \"entryPoint\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": source_bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.audit.log.v1.written\",\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n \"service_account_email\": account.email,\n \"event_filters\": [\n {\n \"attribute\": \"serviceName\",\n \"value\": \"storage.googleapis.com\",\n },\n {\n \"attribute\": \"methodName\",\n \"value\": \"storage.objects.create\",\n },\n {\n \"attribute\": \"resourceName\",\n \"value\": audit_log_bucket.name.apply(lambda name: f\"/projects/_/buckets/{name}/objects/*.txt\"),\n \"operator\": \"match-path-pattern\",\n },\n ],\n },\n opts = pulumi.ResourceOptions(depends_on=[\n event_receiving,\n artifactregistry_reader,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // This example follows the examples shown in this Google Cloud Community blog post\n // https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n // and the docs:\n // https://cloud.google.com/eventarc/docs/path-patterns\n var source_bucket = new Gcp.Storage.Bucket(\"source-bucket\", new()\n {\n Name = \"gcf-source-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = source_bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n });\n\n // Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n // Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n // google_cloudfunctions2_function below (Audit Log events have path pattern support)\n var audit_log_bucket = new Gcp.Storage.Bucket(\"audit-log-bucket\", new()\n {\n Name = \"gcf-auditlog-bucket\",\n Location = \"us-central1\",\n UniformBucketLevelAccess = true,\n });\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new Gcp.Projects.IAMMember(\"invoking\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/run.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var event_receiving = new Gcp.Projects.IAMMember(\"event-receiving\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/eventarc.eventReceiver\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n invoking,\n },\n });\n\n var artifactregistry_reader = new Gcp.Projects.IAMMember(\"artifactregistry-reader\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/artifactregistry.reader\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs12\",\n EntryPoint = \"entryPoint\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = source_bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.audit.log.v1.written\",\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n ServiceAccountEmail = account.Email,\n EventFilters = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"serviceName\",\n Value = \"storage.googleapis.com\",\n },\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"methodName\",\n Value = \"storage.objects.create\",\n },\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"resourceName\",\n Value = audit_log_bucket.Name.Apply(name =\u003e $\"/projects/_/buckets/{name}/objects/*.txt\"),\n Operator = \"match-path-pattern\",\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n artifactregistry_reader,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// This example follows the examples shown in this Google Cloud Community blog post\n\t\t// https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n\t\t// and the docs:\n\t\t// https://cloud.google.com/eventarc/docs/path-patterns\n\t\t_, err := storage.NewBucket(ctx, \"source-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-source-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: source_bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n\t\t// Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n\t\t// google_cloudfunctions2_function below (Audit Log events have path pattern support)\n\t\t_, err = storage.NewBucket(ctx, \"audit-log-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-auditlog-bucket\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Permissions on the service account used by the function and Eventarc trigger\n\t\tinvoking, err := projects.NewIAMMember(ctx, \"invoking\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/run.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"event-receiving\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/eventarc.eventReceiver\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tinvoking,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"artifactregistry-reader\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.reader\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs12\"),\n\t\t\t\tEntryPoint: pulumi.String(\"entryPoint\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: source_bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.audit.log.v1.written\"),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t\tEventFilters: cloudfunctionsv2.FunctionEventTriggerEventFilterArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"serviceName\"),\n\t\t\t\t\t\tValue: pulumi.String(\"storage.googleapis.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"methodName\"),\n\t\t\t\t\t\tValue: pulumi.String(\"storage.objects.create\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"resourceName\"),\n\t\t\t\t\t\tValue: audit_log_bucket.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"/projects/_/buckets/%v/objects/*.txt\", name), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\tOperator: pulumi.String(\"match-path-pattern\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t\tartifactregistry_reader,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // This example follows the examples shown in this Google Cloud Community blog post\n // https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n // and the docs:\n // https://cloud.google.com/eventarc/docs/path-patterns\n var source_bucket = new Bucket(\"source-bucket\", BucketArgs.builder()\n .name(\"gcf-source-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(source_bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n .build());\n\n // Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n // Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n // google_cloudfunctions2_function below (Audit Log events have path pattern support)\n var audit_log_bucket = new Bucket(\"audit-log-bucket\", BucketArgs.builder()\n .name(\"gcf-auditlog-bucket\")\n .location(\"us-central1\")\n .uniformBucketLevelAccess(true)\n .build());\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new IAMMember(\"invoking\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/run.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var event_receiving = new IAMMember(\"event-receiving\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/eventarc.eventReceiver\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(invoking)\n .build());\n\n var artifactregistry_reader = new IAMMember(\"artifactregistry-reader\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/artifactregistry.reader\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(event_receiving)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs12\")\n .entryPoint(\"entryPoint\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(source_bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.audit.log.v1.written\")\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .serviceAccountEmail(account.email())\n .eventFilters( \n FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"serviceName\")\n .value(\"storage.googleapis.com\")\n .build(),\n FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"methodName\")\n .value(\"storage.objects.create\")\n .build(),\n FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"resourceName\")\n .value(audit_log_bucket.name().applyValue(name -\u003e String.format(\"/projects/_/buckets/%s/objects/*.txt\", name)))\n .operator(\"match-path-pattern\")\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n event_receiving,\n artifactregistry_reader)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # This example follows the examples shown in this Google Cloud Community blog post\n # https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n # and the docs:\n # https://cloud.google.com/eventarc/docs/path-patterns\n source-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-source-bucket\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${[\"source-bucket\"].name}\n source:\n fn::FileAsset: function-source.zip\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account - used for both the cloud function and eventarc trigger in the test\n # Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n # Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n # google_cloudfunctions2_function below (Audit Log events have path pattern support)\n audit-log-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-auditlog-bucket\n location: us-central1\n uniformBucketLevelAccess: true\n # Permissions on the service account used by the function and Eventarc trigger\n invoking:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/run.invoker\n member: serviceAccount:${account.email}\n event-receiving:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/eventarc.eventReceiver\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${invoking}\n artifactregistry-reader:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/artifactregistry.reader\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${[\"event-receiving\"]}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs12\n entryPoint: entryPoint\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${[\"source-bucket\"].name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.audit.log.v1.written\n retryPolicy: RETRY_POLICY_RETRY\n serviceAccountEmail: ${account.email}\n eventFilters:\n - attribute: serviceName\n value: storage.googleapis.com\n - attribute: methodName\n value: storage.objects.create\n - attribute: resourceName\n value: /projects/_/buckets/${[\"audit-log-bucket\"].name}/objects/*.txt\n operator: match-path-pattern\n options:\n dependson:\n - ${[\"event-receiving\"]}\n - ${[\"artifactregistry-reader\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Basic Builder\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst logWriter = new gcp.projects.IAMMember(\"log_writer\", {\n project: account.project,\n role: \"roles/logging.logWriter\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst artifactRegistryWriter = new gcp.projects.IAMMember(\"artifact_registry_writer\", {\n project: account.project,\n role: \"roles/artifactregistry.writer\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst storageObjectAdmin = new gcp.projects.IAMMember(\"storage_object_admin\", {\n project: account.project,\n role: \"roles/storage.objectAdmin\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\n// builder permissions need to stablize before it can pull the source zip\nconst wait60s = new time.index.Sleep(\"wait_60s\", {createDuration: \"60s\"}, {\n dependsOn: [\n logWriter,\n artifactRegistryWriter,\n storageObjectAdmin,\n ],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-v2\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n serviceAccount: account.id,\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n}, {\n dependsOn: [wait60s],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\nlog_writer = gcp.projects.IAMMember(\"log_writer\",\n project=account.project,\n role=\"roles/logging.logWriter\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nartifact_registry_writer = gcp.projects.IAMMember(\"artifact_registry_writer\",\n project=account.project,\n role=\"roles/artifactregistry.writer\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nstorage_object_admin = gcp.projects.IAMMember(\"storage_object_admin\",\n project=account.project,\n role=\"roles/storage.objectAdmin\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\n# builder permissions need to stablize before it can pull the source zip\nwait60s = time.index.Sleep(\"wait_60s\", create_duration=60s,\nopts = pulumi.ResourceOptions(depends_on=[\n log_writer,\n artifact_registry_writer,\n storage_object_admin,\n ]))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-v2\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"service_account\": account.id,\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n },\n opts = pulumi.ResourceOptions(depends_on=[wait60s]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var logWriter = new Gcp.Projects.IAMMember(\"log_writer\", new()\n {\n Project = account.Project,\n Role = \"roles/logging.logWriter\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var artifactRegistryWriter = new Gcp.Projects.IAMMember(\"artifact_registry_writer\", new()\n {\n Project = account.Project,\n Role = \"roles/artifactregistry.writer\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var storageObjectAdmin = new Gcp.Projects.IAMMember(\"storage_object_admin\", new()\n {\n Project = account.Project,\n Role = \"roles/storage.objectAdmin\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n // builder permissions need to stablize before it can pull the source zip\n var wait60s = new Time.Index.Sleep(\"wait_60s\", new()\n {\n CreateDuration = \"60s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n logWriter,\n artifactRegistryWriter,\n storageObjectAdmin,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-v2\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n ServiceAccount = account.Id,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n wait60s,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogWriter, err := projects.NewIAMMember(ctx, \"log_writer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: account.Project,\n\t\t\tRole: pulumi.String(\"roles/logging.logWriter\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tartifactRegistryWriter, err := projects.NewIAMMember(ctx, \"artifact_registry_writer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: account.Project,\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.writer\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstorageObjectAdmin, err := projects.NewIAMMember(ctx, \"storage_object_admin\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: account.Project,\n\t\t\tRole: pulumi.String(\"roles/storage.objectAdmin\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// builder permissions need to stablize before it can pull the source zip\n\t\twait60s, err := time.NewSleep(ctx, \"wait_60s\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"60s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tlogWriter,\n\t\t\tartifactRegistryWriter,\n\t\t\tstorageObjectAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-v2\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tServiceAccount: account.ID(),\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait60s,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var logWriter = new IAMMember(\"logWriter\", IAMMemberArgs.builder()\n .project(account.project())\n .role(\"roles/logging.logWriter\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var artifactRegistryWriter = new IAMMember(\"artifactRegistryWriter\", IAMMemberArgs.builder()\n .project(account.project())\n .role(\"roles/artifactregistry.writer\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var storageObjectAdmin = new IAMMember(\"storageObjectAdmin\", IAMMemberArgs.builder()\n .project(account.project())\n .role(\"roles/storage.objectAdmin\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n // builder permissions need to stablize before it can pull the source zip\n var wait60s = new Sleep(\"wait60s\", SleepArgs.builder()\n .createDuration(\"60s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n logWriter,\n artifactRegistryWriter,\n storageObjectAdmin)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-v2\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .serviceAccount(account.id())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(wait60s)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n logWriter:\n type: gcp:projects:IAMMember\n name: log_writer\n properties:\n project: ${account.project}\n role: roles/logging.logWriter\n member: serviceAccount:${account.email}\n artifactRegistryWriter:\n type: gcp:projects:IAMMember\n name: artifact_registry_writer\n properties:\n project: ${account.project}\n role: roles/artifactregistry.writer\n member: serviceAccount:${account.email}\n storageObjectAdmin:\n type: gcp:projects:IAMMember\n name: storage_object_admin\n properties:\n project: ${account.project}\n role: roles/storage.objectAdmin\n member: serviceAccount:${account.email}\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n # builder permissions need to stablize before it can pull the source zip\n wait60s:\n type: time:sleep\n name: wait_60s\n properties:\n createDuration: 60s\n options:\n dependson:\n - ${logWriter}\n - ${artifactRegistryWriter}\n - ${storageObjectAdmin}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-v2\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceAccount: ${account.id}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n options:\n dependson:\n - ${wait60s}\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Secret Env\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst secret = new gcp.secretmanager.Secret(\"secret\", {\n secretId: \"secret\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secretSecretVersion = new gcp.secretmanager.SecretVersion(\"secret\", {\n secret: secret.name,\n secretData: \"secret\",\n enabled: true,\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-secret\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n secretEnvironmentVariables: [{\n key: \"TEST\",\n projectId: project,\n secret: secret.secretId,\n version: \"latest\",\n }],\n },\n}, {\n dependsOn: [secretSecretVersion],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nsecret = gcp.secretmanager.Secret(\"secret\",\n secret_id=\"secret\",\n replication={\n \"user_managed\": {\n \"replicas\": [{\n \"location\": \"us-central1\",\n }],\n },\n })\nsecret_secret_version = gcp.secretmanager.SecretVersion(\"secret\",\n secret=secret.name,\n secret_data=\"secret\",\n enabled=True)\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-secret\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"secret_environment_variables\": [{\n \"key\": \"TEST\",\n \"project_id\": project,\n \"secret\": secret.secret_id,\n \"version\": \"latest\",\n }],\n },\n opts = pulumi.ResourceOptions(depends_on=[secret_secret_version]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var secret = new Gcp.SecretManager.Secret(\"secret\", new()\n {\n SecretId = \"secret\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secretSecretVersion = new Gcp.SecretManager.SecretVersion(\"secret\", new()\n {\n Secret = secret.Name,\n SecretData = \"secret\",\n Enabled = true,\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-secret\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n SecretEnvironmentVariables = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigSecretEnvironmentVariableArgs\n {\n Key = \"TEST\",\n ProjectId = project,\n Secret = secret.SecretId,\n Version = \"latest\",\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n secretSecretVersion,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecret, err := secretmanager.NewSecret(ctx, \"secret\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecretSecretVersion, err := secretmanager.NewSecretVersion(ctx, \"secret\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret.Name,\n\t\t\tSecretData: pulumi.String(\"secret\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-secret\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tSecretEnvironmentVariables: cloudfunctionsv2.FunctionServiceConfigSecretEnvironmentVariableArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionServiceConfigSecretEnvironmentVariableArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"TEST\"),\n\t\t\t\t\t\tProjectId: pulumi.String(project),\n\t\t\t\t\t\tSecret: secret.SecretId,\n\t\t\t\t\t\tVersion: pulumi.String(\"latest\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsecretSecretVersion,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var secret = new Secret(\"secret\", SecretArgs.builder()\n .secretId(\"secret\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secretSecretVersion = new SecretVersion(\"secretSecretVersion\", SecretVersionArgs.builder()\n .secret(secret.name())\n .secretData(\"secret\")\n .enabled(true)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-secret\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .secretEnvironmentVariables(FunctionServiceConfigSecretEnvironmentVariableArgs.builder()\n .key(\"TEST\")\n .projectId(project)\n .secret(secret.secretId())\n .version(\"latest\")\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(secretSecretVersion)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-secret\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n secretEnvironmentVariables:\n - key: TEST\n projectId: ${project}\n secret: ${secret.secretId}\n version: latest\n options:\n dependson:\n - ${secretSecretVersion}\n secret:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secretSecretVersion:\n type: gcp:secretmanager:SecretVersion\n name: secret\n properties:\n secret: ${secret.name}\n secretData: secret\n enabled: true\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Secret Volume\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst secret = new gcp.secretmanager.Secret(\"secret\", {\n secretId: \"secret\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secretSecretVersion = new gcp.secretmanager.SecretVersion(\"secret\", {\n secret: secret.name,\n secretData: \"secret\",\n enabled: true,\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-secret\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n secretVolumes: [{\n mountPath: \"/etc/secrets\",\n projectId: project,\n secret: secret.secretId,\n }],\n },\n}, {\n dependsOn: [secretSecretVersion],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nsecret = gcp.secretmanager.Secret(\"secret\",\n secret_id=\"secret\",\n replication={\n \"user_managed\": {\n \"replicas\": [{\n \"location\": \"us-central1\",\n }],\n },\n })\nsecret_secret_version = gcp.secretmanager.SecretVersion(\"secret\",\n secret=secret.name,\n secret_data=\"secret\",\n enabled=True)\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-secret\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"secret_volumes\": [{\n \"mount_path\": \"/etc/secrets\",\n \"project_id\": project,\n \"secret\": secret.secret_id,\n }],\n },\n opts = pulumi.ResourceOptions(depends_on=[secret_secret_version]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var secret = new Gcp.SecretManager.Secret(\"secret\", new()\n {\n SecretId = \"secret\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secretSecretVersion = new Gcp.SecretManager.SecretVersion(\"secret\", new()\n {\n Secret = secret.Name,\n SecretData = \"secret\",\n Enabled = true,\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-secret\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n SecretVolumes = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigSecretVolumeArgs\n {\n MountPath = \"/etc/secrets\",\n ProjectId = project,\n Secret = secret.SecretId,\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n secretSecretVersion,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecret, err := secretmanager.NewSecret(ctx, \"secret\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecretSecretVersion, err := secretmanager.NewSecretVersion(ctx, \"secret\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret.Name,\n\t\t\tSecretData: pulumi.String(\"secret\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-secret\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tSecretVolumes: cloudfunctionsv2.FunctionServiceConfigSecretVolumeArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionServiceConfigSecretVolumeArgs{\n\t\t\t\t\t\tMountPath: pulumi.String(\"/etc/secrets\"),\n\t\t\t\t\t\tProjectId: pulumi.String(project),\n\t\t\t\t\t\tSecret: secret.SecretId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsecretSecretVersion,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var secret = new Secret(\"secret\", SecretArgs.builder()\n .secretId(\"secret\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secretSecretVersion = new SecretVersion(\"secretSecretVersion\", SecretVersionArgs.builder()\n .secret(secret.name())\n .secretData(\"secret\")\n .enabled(true)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-secret\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .secretVolumes(FunctionServiceConfigSecretVolumeArgs.builder()\n .mountPath(\"/etc/secrets\")\n .projectId(project)\n .secret(secret.secretId())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(secretSecretVersion)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-secret\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n secretVolumes:\n - mountPath: /etc/secrets\n projectId: ${project}\n secret: ${secret.secretId}\n options:\n dependson:\n - ${secretSecretVersion}\n secret:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secretSecretVersion:\n type: gcp:secretmanager:SecretVersion\n name: secret\n properties:\n secret: ${secret.name}\n secretData: secret\n enabled: true\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Private Workerpool\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst pool = new gcp.cloudbuild.WorkerPool(\"pool\", {\n name: \"workerpool\",\n location: \"us-central1\",\n workerConfig: {\n diskSizeGb: 100,\n machineType: \"e2-standard-8\",\n noExternalIp: false,\n },\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-workerpool\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n workerPool: pool.id,\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\npool = gcp.cloudbuild.WorkerPool(\"pool\",\n name=\"workerpool\",\n location=\"us-central1\",\n worker_config={\n \"disk_size_gb\": 100,\n \"machine_type\": \"e2-standard-8\",\n \"no_external_ip\": False,\n })\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-workerpool\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"worker_pool\": pool.id,\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var pool = new Gcp.CloudBuild.WorkerPool(\"pool\", new()\n {\n Name = \"workerpool\",\n Location = \"us-central1\",\n WorkerConfig = new Gcp.CloudBuild.Inputs.WorkerPoolWorkerConfigArgs\n {\n DiskSizeGb = 100,\n MachineType = \"e2-standard-8\",\n NoExternalIp = false,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-workerpool\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n WorkerPool = pool.Id,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudbuild\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cloudbuild.NewWorkerPool(ctx, \"pool\", \u0026cloudbuild.WorkerPoolArgs{\n\t\t\tName: pulumi.String(\"workerpool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tWorkerConfig: \u0026cloudbuild.WorkerPoolWorkerConfigArgs{\n\t\t\t\tDiskSizeGb: pulumi.Int(100),\n\t\t\t\tMachineType: pulumi.String(\"e2-standard-8\"),\n\t\t\t\tNoExternalIp: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-workerpool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tWorkerPool: pool.ID(),\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudbuild.WorkerPool;\nimport com.pulumi.gcp.cloudbuild.WorkerPoolArgs;\nimport com.pulumi.gcp.cloudbuild.inputs.WorkerPoolWorkerConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var pool = new WorkerPool(\"pool\", WorkerPoolArgs.builder()\n .name(\"workerpool\")\n .location(\"us-central1\")\n .workerConfig(WorkerPoolWorkerConfigArgs.builder()\n .diskSizeGb(100)\n .machineType(\"e2-standard-8\")\n .noExternalIp(false)\n .build())\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-workerpool\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .workerPool(pool.id())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n pool:\n type: gcp:cloudbuild:WorkerPool\n properties:\n name: workerpool\n location: us-central1\n workerConfig:\n diskSizeGb: 100\n machineType: e2-standard-8\n noExternalIp: false\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-workerpool\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n workerPool: ${pool.id}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Cmek Docs\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst projectGetProject = gcp.organizations.getProject({});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst eaSa = new gcp.projects.ServiceIdentity(\"ea_sa\", {\n project: projectGetProject.then(projectGetProject =\u003e projectGetProject.projectId),\n service: \"eventarc.googleapis.com\",\n});\nconst unencoded_ar_repo = new gcp.artifactregistry.Repository(\"unencoded-ar-repo\", {\n repositoryId: \"ar-repo\",\n location: \"us-central1\",\n format: \"DOCKER\",\n});\nconst gcfCmekKeyuser = new gcp.kms.CryptoKeyIAMBinding(\"gcf_cmek_keyuser\", {\n cryptoKeyId: \"cmek-key\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com`),\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com`),\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gs-project-accounts.iam.gserviceaccount.com`),\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@serverless-robot-prod.iam.gserviceaccount.com`),\n pulumi.interpolate`serviceAccount:${eaSa.email}`,\n ],\n}, {\n dependsOn: [eaSa],\n});\nconst encoded_ar_repo = new gcp.artifactregistry.Repository(\"encoded-ar-repo\", {\n location: \"us-central1\",\n repositoryId: \"cmek-repo\",\n format: \"DOCKER\",\n kmsKeyName: \"cmek-key\",\n}, {\n dependsOn: [gcfCmekKeyuser],\n});\nconst binding = new gcp.artifactregistry.RepositoryIamBinding(\"binding\", {\n location: encoded_ar_repo.location,\n repository: encoded_ar_repo.name,\n role: \"roles/artifactregistry.admin\",\n members: [projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com`)],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-cmek\",\n location: \"us-central1\",\n description: \"CMEK function\",\n kmsKeyName: \"cmek-key\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n dockerRepository: encoded_ar_repo.id,\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n}, {\n dependsOn: [gcfCmekKeyuser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nproject_get_project = gcp.organizations.get_project()\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nea_sa = gcp.projects.ServiceIdentity(\"ea_sa\",\n project=project_get_project.project_id,\n service=\"eventarc.googleapis.com\")\nunencoded_ar_repo = gcp.artifactregistry.Repository(\"unencoded-ar-repo\",\n repository_id=\"ar-repo\",\n location=\"us-central1\",\n format=\"DOCKER\")\ngcf_cmek_keyuser = gcp.kms.CryptoKeyIAMBinding(\"gcf_cmek_keyuser\",\n crypto_key_id=\"cmek-key\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[\n f\"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com\",\n f\"serviceAccount:service-{project_get_project.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com\",\n f\"serviceAccount:service-{project_get_project.number}@gs-project-accounts.iam.gserviceaccount.com\",\n f\"serviceAccount:service-{project_get_project.number}@serverless-robot-prod.iam.gserviceaccount.com\",\n ea_sa.email.apply(lambda email: f\"serviceAccount:{email}\"),\n ],\n opts = pulumi.ResourceOptions(depends_on=[ea_sa]))\nencoded_ar_repo = gcp.artifactregistry.Repository(\"encoded-ar-repo\",\n location=\"us-central1\",\n repository_id=\"cmek-repo\",\n format=\"DOCKER\",\n kms_key_name=\"cmek-key\",\n opts = pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))\nbinding = gcp.artifactregistry.RepositoryIamBinding(\"binding\",\n location=encoded_ar_repo.location,\n repository=encoded_ar_repo.name,\n role=\"roles/artifactregistry.admin\",\n members=[f\"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com\"])\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-cmek\",\n location=\"us-central1\",\n description=\"CMEK function\",\n kms_key_name=\"cmek-key\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"docker_repository\": encoded_ar_repo.id,\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n },\n opts = pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var projectGetProject = Gcp.Organizations.GetProject.Invoke();\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var eaSa = new Gcp.Projects.ServiceIdentity(\"ea_sa\", new()\n {\n Project = projectGetProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Service = \"eventarc.googleapis.com\",\n });\n\n var unencoded_ar_repo = new Gcp.ArtifactRegistry.Repository(\"unencoded-ar-repo\", new()\n {\n RepositoryId = \"ar-repo\",\n Location = \"us-central1\",\n Format = \"DOCKER\",\n });\n\n var gcfCmekKeyuser = new Gcp.Kms.CryptoKeyIAMBinding(\"gcf_cmek_keyuser\", new()\n {\n CryptoKeyId = \"cmek-key\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcf-admin-robot.iam.gserviceaccount.com\",\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-artifactregistry.iam.gserviceaccount.com\",\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gs-project-accounts.iam.gserviceaccount.com\",\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@serverless-robot-prod.iam.gserviceaccount.com\",\n eaSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n eaSa,\n },\n });\n\n var encoded_ar_repo = new Gcp.ArtifactRegistry.Repository(\"encoded-ar-repo\", new()\n {\n Location = \"us-central1\",\n RepositoryId = \"cmek-repo\",\n Format = \"DOCKER\",\n KmsKeyName = \"cmek-key\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n gcfCmekKeyuser,\n },\n });\n\n var binding = new Gcp.ArtifactRegistry.RepositoryIamBinding(\"binding\", new()\n {\n Location = encoded_ar_repo.Location,\n Repository = encoded_ar_repo.Name,\n Role = \"roles/artifactregistry.admin\",\n Members = new[]\n {\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcf-admin-robot.iam.gserviceaccount.com\",\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-cmek\",\n Location = \"us-central1\",\n Description = \"CMEK function\",\n KmsKeyName = \"cmek-key\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n DockerRepository = encoded_ar_repo.Id,\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n gcfCmekKeyuser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/artifactregistry\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tprojectGetProject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teaSa, err := projects.NewServiceIdentity(ctx, \"ea_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.String(projectGetProject.ProjectId),\n\t\t\tService: pulumi.String(\"eventarc.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = artifactregistry.NewRepository(ctx, \"unencoded-ar-repo\", \u0026artifactregistry.RepositoryArgs{\n\t\t\tRepositoryId: pulumi.String(\"ar-repo\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tFormat: pulumi.String(\"DOCKER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgcfCmekKeyuser, err := kms.NewCryptoKeyIAMBinding(ctx, \"gcf_cmek_keyuser\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"cmek-key\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-artifactregistry.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gs-project-accounts.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@serverless-robot-prod.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\teaSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\teaSa,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = artifactregistry.NewRepository(ctx, \"encoded-ar-repo\", \u0026artifactregistry.RepositoryArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tRepositoryId: pulumi.String(\"cmek-repo\"),\n\t\t\tFormat: pulumi.String(\"DOCKER\"),\n\t\t\tKmsKeyName: pulumi.String(\"cmek-key\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tgcfCmekKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = artifactregistry.NewRepositoryIamBinding(ctx, \"binding\", \u0026artifactregistry.RepositoryIamBindingArgs{\n\t\t\tLocation: encoded_ar_repo.Location,\n\t\t\tRepository: encoded_ar_repo.Name,\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.admin\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-cmek\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"CMEK function\"),\n\t\t\tKmsKeyName: pulumi.String(\"cmek-key\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tDockerRepository: encoded_ar_repo.ID(),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tgcfCmekKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.artifactregistry.Repository;\nimport com.pulumi.gcp.artifactregistry.RepositoryArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.artifactregistry.RepositoryIamBinding;\nimport com.pulumi.gcp.artifactregistry.RepositoryIamBindingArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n final var projectGetProject = OrganizationsFunctions.getProject();\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var eaSa = new ServiceIdentity(\"eaSa\", ServiceIdentityArgs.builder()\n .project(projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .service(\"eventarc.googleapis.com\")\n .build());\n\n var unencoded_ar_repo = new Repository(\"unencoded-ar-repo\", RepositoryArgs.builder()\n .repositoryId(\"ar-repo\")\n .location(\"us-central1\")\n .format(\"DOCKER\")\n .build());\n\n var gcfCmekKeyuser = new CryptoKeyIAMBinding(\"gcfCmekKeyuser\", CryptoKeyIAMBindingArgs.builder()\n .cryptoKeyId(\"cmek-key\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members( \n String.format(\"serviceAccount:service-%s@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n String.format(\"serviceAccount:service-%s@gcp-sa-artifactregistry.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n String.format(\"serviceAccount:service-%s@gs-project-accounts.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n String.format(\"serviceAccount:service-%s@serverless-robot-prod.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n eaSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(eaSa)\n .build());\n\n var encoded_ar_repo = new Repository(\"encoded-ar-repo\", RepositoryArgs.builder()\n .location(\"us-central1\")\n .repositoryId(\"cmek-repo\")\n .format(\"DOCKER\")\n .kmsKeyName(\"cmek-key\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(gcfCmekKeyuser)\n .build());\n\n var binding = new RepositoryIamBinding(\"binding\", RepositoryIamBindingArgs.builder()\n .location(encoded_ar_repo.location())\n .repository(encoded_ar_repo.name())\n .role(\"roles/artifactregistry.admin\")\n .members(String.format(\"serviceAccount:service-%s@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-cmek\")\n .location(\"us-central1\")\n .description(\"CMEK function\")\n .kmsKeyName(\"cmek-key\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .dockerRepository(encoded_ar_repo.id())\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(gcfCmekKeyuser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n eaSa:\n type: gcp:projects:ServiceIdentity\n name: ea_sa\n properties:\n project: ${projectGetProject.projectId}\n service: eventarc.googleapis.com\n unencoded-ar-repo:\n type: gcp:artifactregistry:Repository\n properties:\n repositoryId: ar-repo\n location: us-central1\n format: DOCKER\n binding:\n type: gcp:artifactregistry:RepositoryIamBinding\n properties:\n location: ${[\"encoded-ar-repo\"].location}\n repository: ${[\"encoded-ar-repo\"].name}\n role: roles/artifactregistry.admin\n members:\n - serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com\n gcfCmekKeyuser:\n type: gcp:kms:CryptoKeyIAMBinding\n name: gcf_cmek_keyuser\n properties:\n cryptoKeyId: cmek-key\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com\n - serviceAccount:service-${projectGetProject.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com\n - serviceAccount:service-${projectGetProject.number}@gs-project-accounts.iam.gserviceaccount.com\n - serviceAccount:service-${projectGetProject.number}@serverless-robot-prod.iam.gserviceaccount.com\n - serviceAccount:${eaSa.email}\n options:\n dependson:\n - ${eaSa}\n encoded-ar-repo:\n type: gcp:artifactregistry:Repository\n properties:\n location: us-central1\n repositoryId: cmek-repo\n format: DOCKER\n kmsKeyName: cmek-key\n options:\n dependson:\n - ${gcfCmekKeyuser}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-cmek\n location: us-central1\n description: CMEK function\n kmsKeyName: cmek-key\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n dockerRepository: ${[\"encoded-ar-repo\"].id}\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n options:\n dependson:\n - ${gcfCmekKeyuser}\nvariables:\n project: my-project-name\n projectGetProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Abiu\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst topic = new gcp.pubsub.Topic(\"topic\", {name: \"functions2-topic\"});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"europe-west6\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloPubSub\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n automaticUpdatePolicy: {},\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"4Gi\",\n timeoutSeconds: 60,\n maxInstanceRequestConcurrency: 80,\n availableCpu: \"4\",\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.pubsub.topic.v1.messagePublished\",\n pubsubTopic: topic.id,\n retryPolicy: \"RETRY_POLICY_RETRY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\ntopic = gcp.pubsub.Topic(\"topic\", name=\"functions2-topic\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"europe-west6\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloPubSub\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"automatic_update_policy\": {},\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"4Gi\",\n \"timeout_seconds\": 60,\n \"max_instance_request_concurrency\": 80,\n \"available_cpu\": \"4\",\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.pubsub.topic.v1.messagePublished\",\n \"pubsub_topic\": topic.id,\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var topic = new Gcp.PubSub.Topic(\"topic\", new()\n {\n Name = \"functions2-topic\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"europe-west6\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloPubSub\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n AutomaticUpdatePolicy = null,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"4Gi\",\n TimeoutSeconds = 60,\n MaxInstanceRequestConcurrency = 80,\n AvailableCpu = \"4\",\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.pubsub.topic.v1.messagePublished\",\n PubsubTopic = topic.Id,\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := pubsub.NewTopic(ctx, \"topic\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"functions2-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"europe-west6\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloPubSub\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tAutomaticUpdatePolicy: nil,\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"4Gi\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tMaxInstanceRequestConcurrency: pulumi.Int(80),\n\t\t\t\tAvailableCpu: pulumi.String(\"4\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.pubsub.topic.v1.messagePublished\"),\n\t\t\t\tPubsubTopic: topic.ID(),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigAutomaticUpdatePolicyArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var topic = new Topic(\"topic\", TopicArgs.builder()\n .name(\"functions2-topic\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"europe-west6\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloPubSub\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .automaticUpdatePolicy()\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"4Gi\")\n .timeoutSeconds(60)\n .maxInstanceRequestConcurrency(80)\n .availableCpu(\"4\")\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.pubsub.topic.v1.messagePublished\")\n .pubsubTopic(topic.id())\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n topic:\n type: gcp:pubsub:Topic\n properties:\n name: functions2-topic\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: europe-west6\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloPubSub\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n automaticUpdatePolicy: {}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 4Gi\n timeoutSeconds: 60\n maxInstanceRequestConcurrency: 80\n availableCpu: '4'\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.pubsub.topic.v1.messagePublished\n pubsubTopic: ${topic.id}\n retryPolicy: RETRY_POLICY_RETRY\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Abiu On Deploy\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst topic = new gcp.pubsub.Topic(\"topic\", {name: \"functions2-topic\"});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"europe-west6\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloPubSub\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n onDeployUpdatePolicy: {},\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"4Gi\",\n timeoutSeconds: 60,\n maxInstanceRequestConcurrency: 80,\n availableCpu: \"4\",\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.pubsub.topic.v1.messagePublished\",\n pubsubTopic: topic.id,\n retryPolicy: \"RETRY_POLICY_RETRY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\ntopic = gcp.pubsub.Topic(\"topic\", name=\"functions2-topic\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"europe-west6\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloPubSub\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"on_deploy_update_policy\": {},\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"4Gi\",\n \"timeout_seconds\": 60,\n \"max_instance_request_concurrency\": 80,\n \"available_cpu\": \"4\",\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.pubsub.topic.v1.messagePublished\",\n \"pubsub_topic\": topic.id,\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var topic = new Gcp.PubSub.Topic(\"topic\", new()\n {\n Name = \"functions2-topic\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"europe-west6\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloPubSub\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n OnDeployUpdatePolicy = null,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"4Gi\",\n TimeoutSeconds = 60,\n MaxInstanceRequestConcurrency = 80,\n AvailableCpu = \"4\",\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.pubsub.topic.v1.messagePublished\",\n PubsubTopic = topic.Id,\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := pubsub.NewTopic(ctx, \"topic\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"functions2-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"europe-west6\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloPubSub\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tOnDeployUpdatePolicy: nil,\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"4Gi\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tMaxInstanceRequestConcurrency: pulumi.Int(80),\n\t\t\t\tAvailableCpu: pulumi.String(\"4\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.pubsub.topic.v1.messagePublished\"),\n\t\t\t\tPubsubTopic: topic.ID(),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigOnDeployUpdatePolicyArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var topic = new Topic(\"topic\", TopicArgs.builder()\n .name(\"functions2-topic\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"europe-west6\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloPubSub\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .onDeployUpdatePolicy()\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"4Gi\")\n .timeoutSeconds(60)\n .maxInstanceRequestConcurrency(80)\n .availableCpu(\"4\")\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.pubsub.topic.v1.messagePublished\")\n .pubsubTopic(topic.id())\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n topic:\n type: gcp:pubsub:Topic\n properties:\n name: functions2-topic\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: europe-west6\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloPubSub\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n onDeployUpdatePolicy: {}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 4Gi\n timeoutSeconds: 60\n maxInstanceRequestConcurrency: 80\n availableCpu: '4'\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.pubsub.topic.v1.messagePublished\n pubsubTopic: ${topic.id}\n retryPolicy: RETRY_POLICY_RETRY\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nfunction can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/functions/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, function can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:cloudfunctionsv2/function:Function default projects/{{project}}/locations/{{location}}/functions/{{name}}\n```\n\n```sh\n$ pulumi import gcp:cloudfunctionsv2/function:Function default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:cloudfunctionsv2/function:Function default {{location}}/{{name}}\n```\n\n", + "description": "A Cloud Function that contains user computation executed in response to an event.\n\n\nTo get more information about function, see:\n\n* [API documentation](https://cloud.google.com/functions/docs/reference/rest/v2beta/projects.locations.functions)\n\n## Example Usage\n\n### Cloudfunctions2 Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-v2\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-v2\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-v2\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-v2\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-v2\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-v2\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst topic = new gcp.pubsub.Topic(\"topic\", {name: \"functions2-topic\"});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloPubSub\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"4Gi\",\n timeoutSeconds: 60,\n maxInstanceRequestConcurrency: 80,\n availableCpu: \"4\",\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.pubsub.topic.v1.messagePublished\",\n pubsubTopic: topic.id,\n retryPolicy: \"RETRY_POLICY_RETRY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\ntopic = gcp.pubsub.Topic(\"topic\", name=\"functions2-topic\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloPubSub\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"4Gi\",\n \"timeout_seconds\": 60,\n \"max_instance_request_concurrency\": 80,\n \"available_cpu\": \"4\",\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.pubsub.topic.v1.messagePublished\",\n \"pubsub_topic\": topic.id,\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var topic = new Gcp.PubSub.Topic(\"topic\", new()\n {\n Name = \"functions2-topic\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloPubSub\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"4Gi\",\n TimeoutSeconds = 60,\n MaxInstanceRequestConcurrency = 80,\n AvailableCpu = \"4\",\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.pubsub.topic.v1.messagePublished\",\n PubsubTopic = topic.Id,\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := pubsub.NewTopic(ctx, \"topic\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"functions2-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloPubSub\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"4Gi\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tMaxInstanceRequestConcurrency: pulumi.Int(80),\n\t\t\t\tAvailableCpu: pulumi.String(\"4\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.pubsub.topic.v1.messagePublished\"),\n\t\t\t\tPubsubTopic: topic.ID(),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var topic = new Topic(\"topic\", TopicArgs.builder()\n .name(\"functions2-topic\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloPubSub\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"4Gi\")\n .timeoutSeconds(60)\n .maxInstanceRequestConcurrency(80)\n .availableCpu(\"4\")\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.pubsub.topic.v1.messagePublished\")\n .pubsubTopic(topic.id())\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n topic:\n type: gcp:pubsub:Topic\n properties:\n name: functions2-topic\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloPubSub\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 4Gi\n timeoutSeconds: 60\n maxInstanceRequestConcurrency: 80\n availableCpu: '4'\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.pubsub.topic.v1.messagePublished\n pubsubTopic: ${topic.id}\n retryPolicy: RETRY_POLICY_RETRY\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Scheduler Auth\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n minInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n serviceAccountEmail: account.email,\n },\n});\nconst invoker = new gcp.cloudfunctionsv2.FunctionIamMember(\"invoker\", {\n project: _function.project,\n location: _function.location,\n cloudFunction: _function.name,\n role: \"roles/cloudfunctions.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst cloudRunInvoker = new gcp.cloudrun.IamMember(\"cloud_run_invoker\", {\n project: _function.project,\n location: _function.location,\n service: _function.name,\n role: \"roles/run.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst invokeCloudFunction = new gcp.cloudscheduler.Job(\"invoke_cloud_function\", {\n name: \"invoke-gcf-function\",\n description: \"Schedule the HTTPS trigger for cloud function\",\n schedule: \"0 0 * * *\",\n project: _function.project,\n region: _function.location,\n httpTarget: {\n uri: _function.serviceConfig.apply(serviceConfig =\u003e serviceConfig?.uri),\n httpMethod: \"POST\",\n oidcToken: {\n audience: _function.serviceConfig.apply(serviceConfig =\u003e `${serviceConfig?.uri}/`),\n serviceAccountEmail: account.email,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"min_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"service_account_email\": account.email,\n })\ninvoker = gcp.cloudfunctionsv2.FunctionIamMember(\"invoker\",\n project=function.project,\n location=function.location,\n cloud_function=function.name,\n role=\"roles/cloudfunctions.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\ncloud_run_invoker = gcp.cloudrun.IamMember(\"cloud_run_invoker\",\n project=function.project,\n location=function.location,\n service=function.name,\n role=\"roles/run.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\ninvoke_cloud_function = gcp.cloudscheduler.Job(\"invoke_cloud_function\",\n name=\"invoke-gcf-function\",\n description=\"Schedule the HTTPS trigger for cloud function\",\n schedule=\"0 0 * * *\",\n project=function.project,\n region=function.location,\n http_target={\n \"uri\": function.service_config.uri,\n \"http_method\": \"POST\",\n \"oidc_token\": {\n \"audience\": function.service_config.apply(lambda service_config: f\"{service_config.uri}/\"),\n \"service_account_email\": account.email,\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MinInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n ServiceAccountEmail = account.Email,\n },\n });\n\n var invoker = new Gcp.CloudFunctionsV2.FunctionIamMember(\"invoker\", new()\n {\n Project = function.Project,\n Location = function.Location,\n CloudFunction = function.Name,\n Role = \"roles/cloudfunctions.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var cloudRunInvoker = new Gcp.CloudRun.IamMember(\"cloud_run_invoker\", new()\n {\n Project = function.Project,\n Location = function.Location,\n Service = function.Name,\n Role = \"roles/run.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var invokeCloudFunction = new Gcp.CloudScheduler.Job(\"invoke_cloud_function\", new()\n {\n Name = \"invoke-gcf-function\",\n Description = \"Schedule the HTTPS trigger for cloud function\",\n Schedule = \"0 0 * * *\",\n Project = function.Project,\n Region = function.Location,\n HttpTarget = new Gcp.CloudScheduler.Inputs.JobHttpTargetArgs\n {\n Uri = function.ServiceConfig.Apply(serviceConfig =\u003e serviceConfig?.Uri),\n HttpMethod = \"POST\",\n OidcToken = new Gcp.CloudScheduler.Inputs.JobHttpTargetOidcTokenArgs\n {\n Audience = function.ServiceConfig.Apply(serviceConfig =\u003e $\"{serviceConfig?.Uri}/\"),\n ServiceAccountEmail = account.Email,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudrun\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudscheduler\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfunction, err := cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunctionIamMember(ctx, \"invoker\", \u0026cloudfunctionsv2.FunctionIamMemberArgs{\n\t\t\tProject: function.Project,\n\t\t\tLocation: function.Location,\n\t\t\tCloudFunction: function.Name,\n\t\t\tRole: pulumi.String(\"roles/cloudfunctions.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudrun.NewIamMember(ctx, \"cloud_run_invoker\", \u0026cloudrun.IamMemberArgs{\n\t\t\tProject: function.Project,\n\t\t\tLocation: function.Location,\n\t\t\tService: function.Name,\n\t\t\tRole: pulumi.String(\"roles/run.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudscheduler.NewJob(ctx, \"invoke_cloud_function\", \u0026cloudscheduler.JobArgs{\n\t\t\tName: pulumi.String(\"invoke-gcf-function\"),\n\t\t\tDescription: pulumi.String(\"Schedule the HTTPS trigger for cloud function\"),\n\t\t\tSchedule: pulumi.String(\"0 0 * * *\"),\n\t\t\tProject: function.Project,\n\t\t\tRegion: function.Location,\n\t\t\tHttpTarget: \u0026cloudscheduler.JobHttpTargetArgs{\n\t\t\t\tUri: function.ServiceConfig.ApplyT(func(serviceConfig cloudfunctionsv2.FunctionServiceConfig) (*string, error) {\n\t\t\t\t\treturn \u0026serviceConfig.Uri, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\tHttpMethod: pulumi.String(\"POST\"),\n\t\t\t\tOidcToken: \u0026cloudscheduler.JobHttpTargetOidcTokenArgs{\n\t\t\t\t\tAudience: function.ServiceConfig.ApplyT(func(serviceConfig cloudfunctionsv2.FunctionServiceConfig) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"%v/\", serviceConfig.Uri), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionIamMember;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionIamMemberArgs;\nimport com.pulumi.gcp.cloudrun.IamMember;\nimport com.pulumi.gcp.cloudrun.IamMemberArgs;\nimport com.pulumi.gcp.cloudscheduler.Job;\nimport com.pulumi.gcp.cloudscheduler.JobArgs;\nimport com.pulumi.gcp.cloudscheduler.inputs.JobHttpTargetArgs;\nimport com.pulumi.gcp.cloudscheduler.inputs.JobHttpTargetOidcTokenArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .minInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .serviceAccountEmail(account.email())\n .build())\n .build());\n\n var invoker = new FunctionIamMember(\"invoker\", FunctionIamMemberArgs.builder()\n .project(function.project())\n .location(function.location())\n .cloudFunction(function.name())\n .role(\"roles/cloudfunctions.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var cloudRunInvoker = new IamMember(\"cloudRunInvoker\", IamMemberArgs.builder()\n .project(function.project())\n .location(function.location())\n .service(function.name())\n .role(\"roles/run.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var invokeCloudFunction = new Job(\"invokeCloudFunction\", JobArgs.builder()\n .name(\"invoke-gcf-function\")\n .description(\"Schedule the HTTPS trigger for cloud function\")\n .schedule(\"0 0 * * *\")\n .project(function.project())\n .region(function.location())\n .httpTarget(JobHttpTargetArgs.builder()\n .uri(function.serviceConfig().applyValue(serviceConfig -\u003e serviceConfig.uri()))\n .httpMethod(\"POST\")\n .oidcToken(JobHttpTargetOidcTokenArgs.builder()\n .audience(function.serviceConfig().applyValue(serviceConfig -\u003e String.format(\"%s/\", serviceConfig.uri())))\n .serviceAccountEmail(account.email())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n minInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n serviceAccountEmail: ${account.email}\n invoker:\n type: gcp:cloudfunctionsv2:FunctionIamMember\n properties:\n project: ${function.project}\n location: ${function.location}\n cloudFunction: ${function.name}\n role: roles/cloudfunctions.invoker\n member: serviceAccount:${account.email}\n cloudRunInvoker:\n type: gcp:cloudrun:IamMember\n name: cloud_run_invoker\n properties:\n project: ${function.project}\n location: ${function.location}\n service: ${function.name}\n role: roles/run.invoker\n member: serviceAccount:${account.email}\n invokeCloudFunction:\n type: gcp:cloudscheduler:Job\n name: invoke_cloud_function\n properties:\n name: invoke-gcf-function\n description: Schedule the HTTPS trigger for cloud function\n schedule: 0 0 * * *\n project: ${function.project}\n region: ${function.location}\n httpTarget:\n uri: ${function.serviceConfig.uri}\n httpMethod: POST\n oidcToken:\n audience: ${function.serviceConfig.uri}/\n serviceAccountEmail: ${account.email}\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Basic Gcs\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source_bucket = new gcp.storage.Bucket(\"source-bucket\", {\n name: \"gcf-source-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: source_bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst trigger_bucket = new gcp.storage.Bucket(\"trigger-bucket\", {\n name: \"gcf-trigger-bucket\",\n location: \"us-central1\",\n uniformBucketLevelAccess: true,\n});\nconst gcsAccount = gcp.storage.getProjectServiceAccount({});\n// To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n// (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\nconst gcs_pubsub_publishing = new gcp.projects.IAMMember(\"gcs-pubsub-publishing\", {\n project: \"my-project-name\",\n role: \"roles/pubsub.publisher\",\n member: gcsAccount.then(gcsAccount =\u003e `serviceAccount:${gcsAccount.emailAddress}`),\n});\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n});\n// Permissions on the service account used by the function and Eventarc trigger\nconst invoking = new gcp.projects.IAMMember(\"invoking\", {\n project: \"my-project-name\",\n role: \"roles/run.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [gcs_pubsub_publishing],\n});\nconst event_receiving = new gcp.projects.IAMMember(\"event-receiving\", {\n project: \"my-project-name\",\n role: \"roles/eventarc.eventReceiver\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [invoking],\n});\nconst artifactregistry_reader = new gcp.projects.IAMMember(\"artifactregistry-reader\", {\n project: \"my-project-name\",\n role: \"roles/artifactregistry.reader\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [event_receiving],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs12\",\n entryPoint: \"entryPoint\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: source_bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n eventType: \"google.cloud.storage.object.v1.finalized\",\n retryPolicy: \"RETRY_POLICY_RETRY\",\n serviceAccountEmail: account.email,\n eventFilters: [{\n attribute: \"bucket\",\n value: trigger_bucket.name,\n }],\n },\n}, {\n dependsOn: [\n event_receiving,\n artifactregistry_reader,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource_bucket = gcp.storage.Bucket(\"source-bucket\",\n name=\"gcf-source-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=source_bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\ntrigger_bucket = gcp.storage.Bucket(\"trigger-bucket\",\n name=\"gcf-trigger-bucket\",\n location=\"us-central1\",\n uniform_bucket_level_access=True)\ngcs_account = gcp.storage.get_project_service_account()\n# To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n# (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\ngcs_pubsub_publishing = gcp.projects.IAMMember(\"gcs-pubsub-publishing\",\n project=\"my-project-name\",\n role=\"roles/pubsub.publisher\",\n member=f\"serviceAccount:{gcs_account.email_address}\")\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n# Permissions on the service account used by the function and Eventarc trigger\ninvoking = gcp.projects.IAMMember(\"invoking\",\n project=\"my-project-name\",\n role=\"roles/run.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[gcs_pubsub_publishing]))\nevent_receiving = gcp.projects.IAMMember(\"event-receiving\",\n project=\"my-project-name\",\n role=\"roles/eventarc.eventReceiver\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[invoking]))\nartifactregistry_reader = gcp.projects.IAMMember(\"artifactregistry-reader\",\n project=\"my-project-name\",\n role=\"roles/artifactregistry.reader\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[event_receiving]))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs12\",\n \"entry_point\": \"entryPoint\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": source_bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"event_type\": \"google.cloud.storage.object.v1.finalized\",\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n \"service_account_email\": account.email,\n \"event_filters\": [{\n \"attribute\": \"bucket\",\n \"value\": trigger_bucket.name,\n }],\n },\n opts = pulumi.ResourceOptions(depends_on=[\n event_receiving,\n artifactregistry_reader,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source_bucket = new Gcp.Storage.Bucket(\"source-bucket\", new()\n {\n Name = \"gcf-source-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = source_bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var trigger_bucket = new Gcp.Storage.Bucket(\"trigger-bucket\", new()\n {\n Name = \"gcf-trigger-bucket\",\n Location = \"us-central1\",\n UniformBucketLevelAccess = true,\n });\n\n var gcsAccount = Gcp.Storage.GetProjectServiceAccount.Invoke();\n\n // To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n // (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n var gcs_pubsub_publishing = new Gcp.Projects.IAMMember(\"gcs-pubsub-publishing\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/pubsub.publisher\",\n Member = $\"serviceAccount:{gcsAccount.Apply(getProjectServiceAccountResult =\u003e getProjectServiceAccountResult.EmailAddress)}\",\n });\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n });\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new Gcp.Projects.IAMMember(\"invoking\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/run.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n gcs_pubsub_publishing,\n },\n });\n\n var event_receiving = new Gcp.Projects.IAMMember(\"event-receiving\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/eventarc.eventReceiver\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n invoking,\n },\n });\n\n var artifactregistry_reader = new Gcp.Projects.IAMMember(\"artifactregistry-reader\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/artifactregistry.reader\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs12\",\n EntryPoint = \"entryPoint\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = source_bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n EventType = \"google.cloud.storage.object.v1.finalized\",\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n ServiceAccountEmail = account.Email,\n EventFilters = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"bucket\",\n Value = trigger_bucket.Name,\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n artifactregistry_reader,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storage.NewBucket(ctx, \"source-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-source-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: source_bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucket(ctx, \"trigger-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-trigger-bucket\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgcsAccount, err := storage.GetProjectServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n\t\t// (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n\t\t_, err = projects.NewIAMMember(ctx, \"gcs-pubsub-publishing\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/pubsub.publisher\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:%v\", gcsAccount.EmailAddress)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Permissions on the service account used by the function and Eventarc trigger\n\t\tinvoking, err := projects.NewIAMMember(ctx, \"invoking\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/run.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tgcs_pubsub_publishing,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"event-receiving\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/eventarc.eventReceiver\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tinvoking,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"artifactregistry-reader\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.reader\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs12\"),\n\t\t\t\tEntryPoint: pulumi.String(\"entryPoint\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: source_bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tEventType: pulumi.String(\"google.cloud.storage.object.v1.finalized\"),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t\tEventFilters: cloudfunctionsv2.FunctionEventTriggerEventFilterArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"bucket\"),\n\t\t\t\t\t\tValue: trigger_bucket.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t\tartifactregistry_reader,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.storage.StorageFunctions;\nimport com.pulumi.gcp.storage.inputs.GetProjectServiceAccountArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source_bucket = new Bucket(\"source-bucket\", BucketArgs.builder()\n .name(\"gcf-source-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(source_bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var trigger_bucket = new Bucket(\"trigger-bucket\", BucketArgs.builder()\n .name(\"gcf-trigger-bucket\")\n .location(\"us-central1\")\n .uniformBucketLevelAccess(true)\n .build());\n\n final var gcsAccount = StorageFunctions.getProjectServiceAccount();\n\n // To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n // (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n var gcs_pubsub_publishing = new IAMMember(\"gcs-pubsub-publishing\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/pubsub.publisher\")\n .member(String.format(\"serviceAccount:%s\", gcsAccount.applyValue(getProjectServiceAccountResult -\u003e getProjectServiceAccountResult.emailAddress())))\n .build());\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n .build());\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new IAMMember(\"invoking\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/run.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(gcs_pubsub_publishing)\n .build());\n\n var event_receiving = new IAMMember(\"event-receiving\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/eventarc.eventReceiver\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(invoking)\n .build());\n\n var artifactregistry_reader = new IAMMember(\"artifactregistry-reader\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/artifactregistry.reader\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(event_receiving)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs12\")\n .entryPoint(\"entryPoint\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(source_bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .eventType(\"google.cloud.storage.object.v1.finalized\")\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .serviceAccountEmail(account.email())\n .eventFilters(FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"bucket\")\n .value(trigger_bucket.name())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n event_receiving,\n artifactregistry_reader)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-source-bucket\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${[\"source-bucket\"].name}\n source:\n fn::FileAsset: function-source.zip\n trigger-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-trigger-bucket\n location: us-central1\n uniformBucketLevelAccess: true\n # To use GCS CloudEvent triggers, the GCS service account requires the Pub/Sub Publisher(roles/pubsub.publisher) IAM role in the specified project.\n # (See https://cloud.google.com/eventarc/docs/run/quickstart-storage#before-you-begin)\n gcs-pubsub-publishing:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/pubsub.publisher\n member: serviceAccount:${gcsAccount.emailAddress}\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account - used for both the cloud function and eventarc trigger in the test\n # Permissions on the service account used by the function and Eventarc trigger\n invoking:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/run.invoker\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${[\"gcs-pubsub-publishing\"]}\n event-receiving:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/eventarc.eventReceiver\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${invoking}\n artifactregistry-reader:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/artifactregistry.reader\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${[\"event-receiving\"]}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs12\n entryPoint: entryPoint\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${[\"source-bucket\"].name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n eventType: google.cloud.storage.object.v1.finalized\n retryPolicy: RETRY_POLICY_RETRY\n serviceAccountEmail: ${account.email}\n eventFilters:\n - attribute: bucket\n value: ${[\"trigger-bucket\"].name}\n options:\n dependson:\n - ${[\"event-receiving\"]}\n - ${[\"artifactregistry-reader\"]}\nvariables:\n gcsAccount:\n fn::invoke:\n Function: gcp:storage:getProjectServiceAccount\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Basic Auditlogs\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\n// This example follows the examples shown in this Google Cloud Community blog post\n// https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n// and the docs:\n// https://cloud.google.com/eventarc/docs/path-patterns\nconst source_bucket = new gcp.storage.Bucket(\"source-bucket\", {\n name: \"gcf-source-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: source_bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n});\n// Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n// Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n// google_cloudfunctions2_function below (Audit Log events have path pattern support)\nconst audit_log_bucket = new gcp.storage.Bucket(\"audit-log-bucket\", {\n name: \"gcf-auditlog-bucket\",\n location: \"us-central1\",\n uniformBucketLevelAccess: true,\n});\n// Permissions on the service account used by the function and Eventarc trigger\nconst invoking = new gcp.projects.IAMMember(\"invoking\", {\n project: \"my-project-name\",\n role: \"roles/run.invoker\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst event_receiving = new gcp.projects.IAMMember(\"event-receiving\", {\n project: \"my-project-name\",\n role: \"roles/eventarc.eventReceiver\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [invoking],\n});\nconst artifactregistry_reader = new gcp.projects.IAMMember(\"artifactregistry-reader\", {\n project: \"my-project-name\",\n role: \"roles/artifactregistry.reader\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n}, {\n dependsOn: [event_receiving],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs12\",\n entryPoint: \"entryPoint\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: source_bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.audit.log.v1.written\",\n retryPolicy: \"RETRY_POLICY_RETRY\",\n serviceAccountEmail: account.email,\n eventFilters: [\n {\n attribute: \"serviceName\",\n value: \"storage.googleapis.com\",\n },\n {\n attribute: \"methodName\",\n value: \"storage.objects.create\",\n },\n {\n attribute: \"resourceName\",\n value: pulumi.interpolate`/projects/_/buckets/${audit_log_bucket.name}/objects/*.txt`,\n operator: \"match-path-pattern\",\n },\n ],\n },\n}, {\n dependsOn: [\n event_receiving,\n artifactregistry_reader,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\n# This example follows the examples shown in this Google Cloud Community blog post\n# https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n# and the docs:\n# https://cloud.google.com/eventarc/docs/path-patterns\nsource_bucket = gcp.storage.Bucket(\"source-bucket\",\n name=\"gcf-source-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=source_bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n# Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n# Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n# google_cloudfunctions2_function below (Audit Log events have path pattern support)\naudit_log_bucket = gcp.storage.Bucket(\"audit-log-bucket\",\n name=\"gcf-auditlog-bucket\",\n location=\"us-central1\",\n uniform_bucket_level_access=True)\n# Permissions on the service account used by the function and Eventarc trigger\ninvoking = gcp.projects.IAMMember(\"invoking\",\n project=\"my-project-name\",\n role=\"roles/run.invoker\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nevent_receiving = gcp.projects.IAMMember(\"event-receiving\",\n project=\"my-project-name\",\n role=\"roles/eventarc.eventReceiver\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[invoking]))\nartifactregistry_reader = gcp.projects.IAMMember(\"artifactregistry-reader\",\n project=\"my-project-name\",\n role=\"roles/artifactregistry.reader\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"),\n opts = pulumi.ResourceOptions(depends_on=[event_receiving]))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs12\",\n \"entry_point\": \"entryPoint\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": source_bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.audit.log.v1.written\",\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n \"service_account_email\": account.email,\n \"event_filters\": [\n {\n \"attribute\": \"serviceName\",\n \"value\": \"storage.googleapis.com\",\n },\n {\n \"attribute\": \"methodName\",\n \"value\": \"storage.objects.create\",\n },\n {\n \"attribute\": \"resourceName\",\n \"value\": audit_log_bucket.name.apply(lambda name: f\"/projects/_/buckets/{name}/objects/*.txt\"),\n \"operator\": \"match-path-pattern\",\n },\n ],\n },\n opts = pulumi.ResourceOptions(depends_on=[\n event_receiving,\n artifactregistry_reader,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // This example follows the examples shown in this Google Cloud Community blog post\n // https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n // and the docs:\n // https://cloud.google.com/eventarc/docs/path-patterns\n var source_bucket = new Gcp.Storage.Bucket(\"source-bucket\", new()\n {\n Name = \"gcf-source-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = source_bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account - used for both the cloud function and eventarc trigger in the test\",\n });\n\n // Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n // Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n // google_cloudfunctions2_function below (Audit Log events have path pattern support)\n var audit_log_bucket = new Gcp.Storage.Bucket(\"audit-log-bucket\", new()\n {\n Name = \"gcf-auditlog-bucket\",\n Location = \"us-central1\",\n UniformBucketLevelAccess = true,\n });\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new Gcp.Projects.IAMMember(\"invoking\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/run.invoker\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var event_receiving = new Gcp.Projects.IAMMember(\"event-receiving\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/eventarc.eventReceiver\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n invoking,\n },\n });\n\n var artifactregistry_reader = new Gcp.Projects.IAMMember(\"artifactregistry-reader\", new()\n {\n Project = \"my-project-name\",\n Role = \"roles/artifactregistry.reader\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs12\",\n EntryPoint = \"entryPoint\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = source_bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.audit.log.v1.written\",\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n ServiceAccountEmail = account.Email,\n EventFilters = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"serviceName\",\n Value = \"storage.googleapis.com\",\n },\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"methodName\",\n Value = \"storage.objects.create\",\n },\n new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerEventFilterArgs\n {\n Attribute = \"resourceName\",\n Value = audit_log_bucket.Name.Apply(name =\u003e $\"/projects/_/buckets/{name}/objects/*.txt\"),\n Operator = \"match-path-pattern\",\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n event_receiving,\n artifactregistry_reader,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// This example follows the examples shown in this Google Cloud Community blog post\n\t\t// https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n\t\t// and the docs:\n\t\t// https://cloud.google.com/eventarc/docs/path-patterns\n\t\t_, err := storage.NewBucket(ctx, \"source-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-source-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: source_bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n\t\t// Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n\t\t// google_cloudfunctions2_function below (Audit Log events have path pattern support)\n\t\t_, err = storage.NewBucket(ctx, \"audit-log-bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"gcf-auditlog-bucket\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Permissions on the service account used by the function and Eventarc trigger\n\t\tinvoking, err := projects.NewIAMMember(ctx, \"invoking\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/run.invoker\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"event-receiving\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/eventarc.eventReceiver\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tinvoking,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"artifactregistry-reader\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.reader\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs12\"),\n\t\t\t\tEntryPoint: pulumi.String(\"entryPoint\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: source_bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.audit.log.v1.written\"),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t\tEventFilters: cloudfunctionsv2.FunctionEventTriggerEventFilterArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"serviceName\"),\n\t\t\t\t\t\tValue: pulumi.String(\"storage.googleapis.com\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"methodName\"),\n\t\t\t\t\t\tValue: pulumi.String(\"storage.objects.create\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionEventTriggerEventFilterArgs{\n\t\t\t\t\t\tAttribute: pulumi.String(\"resourceName\"),\n\t\t\t\t\t\tValue: audit_log_bucket.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\t\t\treturn fmt.Sprintf(\"/projects/_/buckets/%v/objects/*.txt\", name), nil\n\t\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t\t\tOperator: pulumi.String(\"match-path-pattern\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tevent_receiving,\n\t\t\tartifactregistry_reader,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n // This example follows the examples shown in this Google Cloud Community blog post\n // https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n // and the docs:\n // https://cloud.google.com/eventarc/docs/path-patterns\n var source_bucket = new Bucket(\"source-bucket\", BucketArgs.builder()\n .name(\"gcf-source-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(source_bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account - used for both the cloud function and eventarc trigger in the test\")\n .build());\n\n // Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n // Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n // google_cloudfunctions2_function below (Audit Log events have path pattern support)\n var audit_log_bucket = new Bucket(\"audit-log-bucket\", BucketArgs.builder()\n .name(\"gcf-auditlog-bucket\")\n .location(\"us-central1\")\n .uniformBucketLevelAccess(true)\n .build());\n\n // Permissions on the service account used by the function and Eventarc trigger\n var invoking = new IAMMember(\"invoking\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/run.invoker\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var event_receiving = new IAMMember(\"event-receiving\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/eventarc.eventReceiver\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(invoking)\n .build());\n\n var artifactregistry_reader = new IAMMember(\"artifactregistry-reader\", IAMMemberArgs.builder()\n .project(\"my-project-name\")\n .role(\"roles/artifactregistry.reader\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(event_receiving)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs12\")\n .entryPoint(\"entryPoint\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(source_bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.audit.log.v1.written\")\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .serviceAccountEmail(account.email())\n .eventFilters( \n FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"serviceName\")\n .value(\"storage.googleapis.com\")\n .build(),\n FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"methodName\")\n .value(\"storage.objects.create\")\n .build(),\n FunctionEventTriggerEventFilterArgs.builder()\n .attribute(\"resourceName\")\n .value(audit_log_bucket.name().applyValue(name -\u003e String.format(\"/projects/_/buckets/%s/objects/*.txt\", name)))\n .operator(\"match-path-pattern\")\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n event_receiving,\n artifactregistry_reader)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # This example follows the examples shown in this Google Cloud Community blog post\n # https://medium.com/google-cloud/applying-a-path-pattern-when-filtering-in-eventarc-f06b937b4c34\n # and the docs:\n # https://cloud.google.com/eventarc/docs/path-patterns\n source-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-source-bucket\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${[\"source-bucket\"].name}\n source:\n fn::FileAsset: function-source.zip\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account - used for both the cloud function and eventarc trigger in the test\n # Note: The right way of listening for Cloud Storage events is to use a Cloud Storage trigger.\n # Here we use Audit Logs to monitor the bucket so path patterns can be used in the example of\n # google_cloudfunctions2_function below (Audit Log events have path pattern support)\n audit-log-bucket:\n type: gcp:storage:Bucket\n properties:\n name: gcf-auditlog-bucket\n location: us-central1\n uniformBucketLevelAccess: true\n # Permissions on the service account used by the function and Eventarc trigger\n invoking:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/run.invoker\n member: serviceAccount:${account.email}\n event-receiving:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/eventarc.eventReceiver\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${invoking}\n artifactregistry-reader:\n type: gcp:projects:IAMMember\n properties:\n project: my-project-name\n role: roles/artifactregistry.reader\n member: serviceAccount:${account.email}\n options:\n dependson:\n - ${[\"event-receiving\"]}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs12\n entryPoint: entryPoint\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${[\"source-bucket\"].name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.audit.log.v1.written\n retryPolicy: RETRY_POLICY_RETRY\n serviceAccountEmail: ${account.email}\n eventFilters:\n - attribute: serviceName\n value: storage.googleapis.com\n - attribute: methodName\n value: storage.objects.create\n - attribute: resourceName\n value: /projects/_/buckets/${[\"audit-log-bucket\"].name}/objects/*.txt\n operator: match-path-pattern\n options:\n dependson:\n - ${[\"event-receiving\"]}\n - ${[\"artifactregistry-reader\"]}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Basic Builder\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst logWriter = new gcp.projects.IAMMember(\"log_writer\", {\n project: account.project,\n role: \"roles/logging.logWriter\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst artifactRegistryWriter = new gcp.projects.IAMMember(\"artifact_registry_writer\", {\n project: account.project,\n role: \"roles/artifactregistry.writer\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst storageObjectAdmin = new gcp.projects.IAMMember(\"storage_object_admin\", {\n project: account.project,\n role: \"roles/storage.objectAdmin\",\n member: pulumi.interpolate`serviceAccount:${account.email}`,\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\n// builder permissions need to stablize before it can pull the source zip\nconst wait60s = new time.index.Sleep(\"wait_60s\", {createDuration: \"60s\"}, {\n dependsOn: [\n logWriter,\n artifactRegistryWriter,\n storageObjectAdmin,\n ],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-v2\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n serviceAccount: account.id,\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n}, {\n dependsOn: [wait60s],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\nlog_writer = gcp.projects.IAMMember(\"log_writer\",\n project=account.project,\n role=\"roles/logging.logWriter\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nartifact_registry_writer = gcp.projects.IAMMember(\"artifact_registry_writer\",\n project=account.project,\n role=\"roles/artifactregistry.writer\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nstorage_object_admin = gcp.projects.IAMMember(\"storage_object_admin\",\n project=account.project,\n role=\"roles/storage.objectAdmin\",\n member=account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\n# builder permissions need to stablize before it can pull the source zip\nwait60s = time.index.Sleep(\"wait_60s\", create_duration=60s,\nopts = pulumi.ResourceOptions(depends_on=[\n log_writer,\n artifact_registry_writer,\n storage_object_admin,\n ]))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-v2\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"service_account\": account.id,\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n },\n opts = pulumi.ResourceOptions(depends_on=[wait60s]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var logWriter = new Gcp.Projects.IAMMember(\"log_writer\", new()\n {\n Project = account.Project,\n Role = \"roles/logging.logWriter\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var artifactRegistryWriter = new Gcp.Projects.IAMMember(\"artifact_registry_writer\", new()\n {\n Project = account.Project,\n Role = \"roles/artifactregistry.writer\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var storageObjectAdmin = new Gcp.Projects.IAMMember(\"storage_object_admin\", new()\n {\n Project = account.Project,\n Role = \"roles/storage.objectAdmin\",\n Member = account.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n // builder permissions need to stablize before it can pull the source zip\n var wait60s = new Time.Index.Sleep(\"wait_60s\", new()\n {\n CreateDuration = \"60s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n logWriter,\n artifactRegistryWriter,\n storageObjectAdmin,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-v2\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n ServiceAccount = account.Id,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n wait60s,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlogWriter, err := projects.NewIAMMember(ctx, \"log_writer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: account.Project,\n\t\t\tRole: pulumi.String(\"roles/logging.logWriter\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tartifactRegistryWriter, err := projects.NewIAMMember(ctx, \"artifact_registry_writer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: account.Project,\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.writer\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstorageObjectAdmin, err := projects.NewIAMMember(ctx, \"storage_object_admin\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: account.Project,\n\t\t\tRole: pulumi.String(\"roles/storage.objectAdmin\"),\n\t\t\tMember: account.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// builder permissions need to stablize before it can pull the source zip\n\t\twait60s, err := time.NewSleep(ctx, \"wait_60s\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"60s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tlogWriter,\n\t\t\tartifactRegistryWriter,\n\t\t\tstorageObjectAdmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-v2\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tServiceAccount: account.ID(),\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait60s,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var logWriter = new IAMMember(\"logWriter\", IAMMemberArgs.builder()\n .project(account.project())\n .role(\"roles/logging.logWriter\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var artifactRegistryWriter = new IAMMember(\"artifactRegistryWriter\", IAMMemberArgs.builder()\n .project(account.project())\n .role(\"roles/artifactregistry.writer\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var storageObjectAdmin = new IAMMember(\"storageObjectAdmin\", IAMMemberArgs.builder()\n .project(account.project())\n .role(\"roles/storage.objectAdmin\")\n .member(account.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n // builder permissions need to stablize before it can pull the source zip\n var wait60s = new Sleep(\"wait60s\", SleepArgs.builder()\n .createDuration(\"60s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n logWriter,\n artifactRegistryWriter,\n storageObjectAdmin)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-v2\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .serviceAccount(account.id())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(wait60s)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n logWriter:\n type: gcp:projects:IAMMember\n name: log_writer\n properties:\n project: ${account.project}\n role: roles/logging.logWriter\n member: serviceAccount:${account.email}\n artifactRegistryWriter:\n type: gcp:projects:IAMMember\n name: artifact_registry_writer\n properties:\n project: ${account.project}\n role: roles/artifactregistry.writer\n member: serviceAccount:${account.email}\n storageObjectAdmin:\n type: gcp:projects:IAMMember\n name: storage_object_admin\n properties:\n project: ${account.project}\n role: roles/storage.objectAdmin\n member: serviceAccount:${account.email}\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n # builder permissions need to stablize before it can pull the source zip\n wait60s:\n type: time:sleep\n name: wait_60s\n properties:\n createDuration: 60s\n options:\n dependson:\n - ${logWriter}\n - ${artifactRegistryWriter}\n - ${storageObjectAdmin}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-v2\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceAccount: ${account.id}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n options:\n dependson:\n - ${wait60s}\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Secret Env\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst secret = new gcp.secretmanager.Secret(\"secret\", {\n secretId: \"secret\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secretSecretVersion = new gcp.secretmanager.SecretVersion(\"secret\", {\n secret: secret.name,\n secretData: \"secret\",\n enabled: true,\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-secret\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n secretEnvironmentVariables: [{\n key: \"TEST\",\n projectId: project,\n secret: secret.secretId,\n version: \"latest\",\n }],\n },\n}, {\n dependsOn: [secretSecretVersion],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nsecret = gcp.secretmanager.Secret(\"secret\",\n secret_id=\"secret\",\n replication={\n \"user_managed\": {\n \"replicas\": [{\n \"location\": \"us-central1\",\n }],\n },\n })\nsecret_secret_version = gcp.secretmanager.SecretVersion(\"secret\",\n secret=secret.name,\n secret_data=\"secret\",\n enabled=True)\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-secret\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"secret_environment_variables\": [{\n \"key\": \"TEST\",\n \"project_id\": project,\n \"secret\": secret.secret_id,\n \"version\": \"latest\",\n }],\n },\n opts = pulumi.ResourceOptions(depends_on=[secret_secret_version]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var secret = new Gcp.SecretManager.Secret(\"secret\", new()\n {\n SecretId = \"secret\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secretSecretVersion = new Gcp.SecretManager.SecretVersion(\"secret\", new()\n {\n Secret = secret.Name,\n SecretData = \"secret\",\n Enabled = true,\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-secret\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n SecretEnvironmentVariables = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigSecretEnvironmentVariableArgs\n {\n Key = \"TEST\",\n ProjectId = project,\n Secret = secret.SecretId,\n Version = \"latest\",\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n secretSecretVersion,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecret, err := secretmanager.NewSecret(ctx, \"secret\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecretSecretVersion, err := secretmanager.NewSecretVersion(ctx, \"secret\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret.Name,\n\t\t\tSecretData: pulumi.String(\"secret\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-secret\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tSecretEnvironmentVariables: cloudfunctionsv2.FunctionServiceConfigSecretEnvironmentVariableArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionServiceConfigSecretEnvironmentVariableArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"TEST\"),\n\t\t\t\t\t\tProjectId: pulumi.String(project),\n\t\t\t\t\t\tSecret: secret.SecretId,\n\t\t\t\t\t\tVersion: pulumi.String(\"latest\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsecretSecretVersion,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var secret = new Secret(\"secret\", SecretArgs.builder()\n .secretId(\"secret\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secretSecretVersion = new SecretVersion(\"secretSecretVersion\", SecretVersionArgs.builder()\n .secret(secret.name())\n .secretData(\"secret\")\n .enabled(true)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-secret\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .secretEnvironmentVariables(FunctionServiceConfigSecretEnvironmentVariableArgs.builder()\n .key(\"TEST\")\n .projectId(project)\n .secret(secret.secretId())\n .version(\"latest\")\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(secretSecretVersion)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-secret\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n secretEnvironmentVariables:\n - key: TEST\n projectId: ${project}\n secret: ${secret.secretId}\n version: latest\n options:\n dependson:\n - ${secretSecretVersion}\n secret:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secretSecretVersion:\n type: gcp:secretmanager:SecretVersion\n name: secret\n properties:\n secret: ${secret.name}\n secretData: secret\n enabled: true\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Secret Volume\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst secret = new gcp.secretmanager.Secret(\"secret\", {\n secretId: \"secret\",\n replication: {\n userManaged: {\n replicas: [{\n location: \"us-central1\",\n }],\n },\n },\n});\nconst secretSecretVersion = new gcp.secretmanager.SecretVersion(\"secret\", {\n secret: secret.name,\n secretData: \"secret\",\n enabled: true,\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-secret\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n secretVolumes: [{\n mountPath: \"/etc/secrets\",\n projectId: project,\n secret: secret.secretId,\n }],\n },\n}, {\n dependsOn: [secretSecretVersion],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nsecret = gcp.secretmanager.Secret(\"secret\",\n secret_id=\"secret\",\n replication={\n \"user_managed\": {\n \"replicas\": [{\n \"location\": \"us-central1\",\n }],\n },\n })\nsecret_secret_version = gcp.secretmanager.SecretVersion(\"secret\",\n secret=secret.name,\n secret_data=\"secret\",\n enabled=True)\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-secret\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n \"secret_volumes\": [{\n \"mount_path\": \"/etc/secrets\",\n \"project_id\": project,\n \"secret\": secret.secret_id,\n }],\n },\n opts = pulumi.ResourceOptions(depends_on=[secret_secret_version]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var secret = new Gcp.SecretManager.Secret(\"secret\", new()\n {\n SecretId = \"secret\",\n Replication = new Gcp.SecretManager.Inputs.SecretReplicationArgs\n {\n UserManaged = new Gcp.SecretManager.Inputs.SecretReplicationUserManagedArgs\n {\n Replicas = new[]\n {\n new Gcp.SecretManager.Inputs.SecretReplicationUserManagedReplicaArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n });\n\n var secretSecretVersion = new Gcp.SecretManager.SecretVersion(\"secret\", new()\n {\n Secret = secret.Name,\n SecretData = \"secret\",\n Enabled = true,\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-secret\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n SecretVolumes = new[]\n {\n new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigSecretVolumeArgs\n {\n MountPath = \"/etc/secrets\",\n ProjectId = project,\n Secret = secret.SecretId,\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n secretSecretVersion,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/secretmanager\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecret, err := secretmanager.NewSecret(ctx, \"secret\", \u0026secretmanager.SecretArgs{\n\t\t\tSecretId: pulumi.String(\"secret\"),\n\t\t\tReplication: \u0026secretmanager.SecretReplicationArgs{\n\t\t\t\tUserManaged: \u0026secretmanager.SecretReplicationUserManagedArgs{\n\t\t\t\t\tReplicas: secretmanager.SecretReplicationUserManagedReplicaArray{\n\t\t\t\t\t\t\u0026secretmanager.SecretReplicationUserManagedReplicaArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsecretSecretVersion, err := secretmanager.NewSecretVersion(ctx, \"secret\", \u0026secretmanager.SecretVersionArgs{\n\t\t\tSecret: secret.Name,\n\t\t\tSecretData: pulumi.String(\"secret\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-secret\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tSecretVolumes: cloudfunctionsv2.FunctionServiceConfigSecretVolumeArray{\n\t\t\t\t\t\u0026cloudfunctionsv2.FunctionServiceConfigSecretVolumeArgs{\n\t\t\t\t\t\tMountPath: pulumi.String(\"/etc/secrets\"),\n\t\t\t\t\t\tProjectId: pulumi.String(project),\n\t\t\t\t\t\tSecret: secret.SecretId,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tsecretSecretVersion,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.secretmanager.Secret;\nimport com.pulumi.gcp.secretmanager.SecretArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationArgs;\nimport com.pulumi.gcp.secretmanager.inputs.SecretReplicationUserManagedArgs;\nimport com.pulumi.gcp.secretmanager.SecretVersion;\nimport com.pulumi.gcp.secretmanager.SecretVersionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var secret = new Secret(\"secret\", SecretArgs.builder()\n .secretId(\"secret\")\n .replication(SecretReplicationArgs.builder()\n .userManaged(SecretReplicationUserManagedArgs.builder()\n .replicas(SecretReplicationUserManagedReplicaArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build());\n\n var secretSecretVersion = new SecretVersion(\"secretSecretVersion\", SecretVersionArgs.builder()\n .secret(secret.name())\n .secretData(\"secret\")\n .enabled(true)\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-secret\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .secretVolumes(FunctionServiceConfigSecretVolumeArgs.builder()\n .mountPath(\"/etc/secrets\")\n .projectId(project)\n .secret(secret.secretId())\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(secretSecretVersion)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-secret\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n secretVolumes:\n - mountPath: /etc/secrets\n projectId: ${project}\n secret: ${secret.secretId}\n options:\n dependson:\n - ${secretSecretVersion}\n secret:\n type: gcp:secretmanager:Secret\n properties:\n secretId: secret\n replication:\n userManaged:\n replicas:\n - location: us-central1\n secretSecretVersion:\n type: gcp:secretmanager:SecretVersion\n name: secret\n properties:\n secret: ${secret.name}\n secretData: secret\n enabled: true\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Private Workerpool\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst pool = new gcp.cloudbuild.WorkerPool(\"pool\", {\n name: \"workerpool\",\n location: \"us-central1\",\n workerConfig: {\n diskSizeGb: 100,\n machineType: \"e2-standard-8\",\n noExternalIp: false,\n },\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-workerpool\",\n location: \"us-central1\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n workerPool: pool.id,\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\npool = gcp.cloudbuild.WorkerPool(\"pool\",\n name=\"workerpool\",\n location=\"us-central1\",\n worker_config={\n \"disk_size_gb\": 100,\n \"machine_type\": \"e2-standard-8\",\n \"no_external_ip\": False,\n })\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-workerpool\",\n location=\"us-central1\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"worker_pool\": pool.id,\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var pool = new Gcp.CloudBuild.WorkerPool(\"pool\", new()\n {\n Name = \"workerpool\",\n Location = \"us-central1\",\n WorkerConfig = new Gcp.CloudBuild.Inputs.WorkerPoolWorkerConfigArgs\n {\n DiskSizeGb = 100,\n MachineType = \"e2-standard-8\",\n NoExternalIp = false,\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-workerpool\",\n Location = \"us-central1\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n WorkerPool = pool.Id,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudbuild\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpool, err := cloudbuild.NewWorkerPool(ctx, \"pool\", \u0026cloudbuild.WorkerPoolArgs{\n\t\t\tName: pulumi.String(\"workerpool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tWorkerConfig: \u0026cloudbuild.WorkerPoolWorkerConfigArgs{\n\t\t\t\tDiskSizeGb: pulumi.Int(100),\n\t\t\t\tMachineType: pulumi.String(\"e2-standard-8\"),\n\t\t\t\tNoExternalIp: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-workerpool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tWorkerPool: pool.ID(),\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudbuild.WorkerPool;\nimport com.pulumi.gcp.cloudbuild.WorkerPoolArgs;\nimport com.pulumi.gcp.cloudbuild.inputs.WorkerPoolWorkerConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var pool = new WorkerPool(\"pool\", WorkerPoolArgs.builder()\n .name(\"workerpool\")\n .location(\"us-central1\")\n .workerConfig(WorkerPoolWorkerConfigArgs.builder()\n .diskSizeGb(100)\n .machineType(\"e2-standard-8\")\n .noExternalIp(false)\n .build())\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-workerpool\")\n .location(\"us-central1\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .workerPool(pool.id())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n pool:\n type: gcp:cloudbuild:WorkerPool\n properties:\n name: workerpool\n location: us-central1\n workerConfig:\n diskSizeGb: 100\n machineType: e2-standard-8\n noExternalIp: false\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-workerpool\n location: us-central1\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n workerPool: ${pool.id}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Cmek Docs\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst projectGetProject = gcp.organizations.getProject({});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst eaSa = new gcp.projects.ServiceIdentity(\"ea_sa\", {\n project: projectGetProject.then(projectGetProject =\u003e projectGetProject.projectId),\n service: \"eventarc.googleapis.com\",\n});\nconst unencoded_ar_repo = new gcp.artifactregistry.Repository(\"unencoded-ar-repo\", {\n repositoryId: \"ar-repo\",\n location: \"us-central1\",\n format: \"DOCKER\",\n});\nconst gcfCmekKeyuser = new gcp.kms.CryptoKeyIAMBinding(\"gcf_cmek_keyuser\", {\n cryptoKeyId: \"cmek-key\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members: [\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com`),\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com`),\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gs-project-accounts.iam.gserviceaccount.com`),\n projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@serverless-robot-prod.iam.gserviceaccount.com`),\n eaSa.member,\n ],\n}, {\n dependsOn: [eaSa],\n});\nconst encoded_ar_repo = new gcp.artifactregistry.Repository(\"encoded-ar-repo\", {\n location: \"us-central1\",\n repositoryId: \"cmek-repo\",\n format: \"DOCKER\",\n kmsKeyName: \"cmek-key\",\n}, {\n dependsOn: [gcfCmekKeyuser],\n});\nconst binding = new gcp.artifactregistry.RepositoryIamBinding(\"binding\", {\n location: encoded_ar_repo.location,\n repository: encoded_ar_repo.name,\n role: \"roles/artifactregistry.admin\",\n members: [projectGetProject.then(projectGetProject =\u003e `serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com`)],\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"function-cmek\",\n location: \"us-central1\",\n description: \"CMEK function\",\n kmsKeyName: \"cmek-key\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloHttp\",\n dockerRepository: encoded_ar_repo.id,\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n },\n serviceConfig: {\n maxInstanceCount: 1,\n availableMemory: \"256M\",\n timeoutSeconds: 60,\n },\n}, {\n dependsOn: [gcfCmekKeyuser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\nproject_get_project = gcp.organizations.get_project()\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nea_sa = gcp.projects.ServiceIdentity(\"ea_sa\",\n project=project_get_project.project_id,\n service=\"eventarc.googleapis.com\")\nunencoded_ar_repo = gcp.artifactregistry.Repository(\"unencoded-ar-repo\",\n repository_id=\"ar-repo\",\n location=\"us-central1\",\n format=\"DOCKER\")\ngcf_cmek_keyuser = gcp.kms.CryptoKeyIAMBinding(\"gcf_cmek_keyuser\",\n crypto_key_id=\"cmek-key\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n members=[\n f\"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com\",\n f\"serviceAccount:service-{project_get_project.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com\",\n f\"serviceAccount:service-{project_get_project.number}@gs-project-accounts.iam.gserviceaccount.com\",\n f\"serviceAccount:service-{project_get_project.number}@serverless-robot-prod.iam.gserviceaccount.com\",\n ea_sa.member,\n ],\n opts = pulumi.ResourceOptions(depends_on=[ea_sa]))\nencoded_ar_repo = gcp.artifactregistry.Repository(\"encoded-ar-repo\",\n location=\"us-central1\",\n repository_id=\"cmek-repo\",\n format=\"DOCKER\",\n kms_key_name=\"cmek-key\",\n opts = pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))\nbinding = gcp.artifactregistry.RepositoryIamBinding(\"binding\",\n location=encoded_ar_repo.location,\n repository=encoded_ar_repo.name,\n role=\"roles/artifactregistry.admin\",\n members=[f\"serviceAccount:service-{project_get_project.number}@gcf-admin-robot.iam.gserviceaccount.com\"])\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"function-cmek\",\n location=\"us-central1\",\n description=\"CMEK function\",\n kms_key_name=\"cmek-key\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloHttp\",\n \"docker_repository\": encoded_ar_repo.id,\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n },\n service_config={\n \"max_instance_count\": 1,\n \"available_memory\": \"256M\",\n \"timeout_seconds\": 60,\n },\n opts = pulumi.ResourceOptions(depends_on=[gcf_cmek_keyuser]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var projectGetProject = Gcp.Organizations.GetProject.Invoke();\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var eaSa = new Gcp.Projects.ServiceIdentity(\"ea_sa\", new()\n {\n Project = projectGetProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Service = \"eventarc.googleapis.com\",\n });\n\n var unencoded_ar_repo = new Gcp.ArtifactRegistry.Repository(\"unencoded-ar-repo\", new()\n {\n RepositoryId = \"ar-repo\",\n Location = \"us-central1\",\n Format = \"DOCKER\",\n });\n\n var gcfCmekKeyuser = new Gcp.Kms.CryptoKeyIAMBinding(\"gcf_cmek_keyuser\", new()\n {\n CryptoKeyId = \"cmek-key\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Members = new[]\n {\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcf-admin-robot.iam.gserviceaccount.com\",\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-artifactregistry.iam.gserviceaccount.com\",\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gs-project-accounts.iam.gserviceaccount.com\",\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@serverless-robot-prod.iam.gserviceaccount.com\",\n eaSa.Member,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n eaSa,\n },\n });\n\n var encoded_ar_repo = new Gcp.ArtifactRegistry.Repository(\"encoded-ar-repo\", new()\n {\n Location = \"us-central1\",\n RepositoryId = \"cmek-repo\",\n Format = \"DOCKER\",\n KmsKeyName = \"cmek-key\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n gcfCmekKeyuser,\n },\n });\n\n var binding = new Gcp.ArtifactRegistry.RepositoryIamBinding(\"binding\", new()\n {\n Location = encoded_ar_repo.Location,\n Repository = encoded_ar_repo.Name,\n Role = \"roles/artifactregistry.admin\",\n Members = new[]\n {\n $\"serviceAccount:service-{projectGetProject.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcf-admin-robot.iam.gserviceaccount.com\",\n },\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"function-cmek\",\n Location = \"us-central1\",\n Description = \"CMEK function\",\n KmsKeyName = \"cmek-key\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloHttp\",\n DockerRepository = encoded_ar_repo.Id,\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 1,\n AvailableMemory = \"256M\",\n TimeoutSeconds = 60,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n gcfCmekKeyuser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/artifactregistry\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\tprojectGetProject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teaSa, err := projects.NewServiceIdentity(ctx, \"ea_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.String(projectGetProject.ProjectId),\n\t\t\tService: pulumi.String(\"eventarc.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = artifactregistry.NewRepository(ctx, \"unencoded-ar-repo\", \u0026artifactregistry.RepositoryArgs{\n\t\t\tRepositoryId: pulumi.String(\"ar-repo\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tFormat: pulumi.String(\"DOCKER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgcfCmekKeyuser, err := kms.NewCryptoKeyIAMBinding(ctx, \"gcf_cmek_keyuser\", \u0026kms.CryptoKeyIAMBindingArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"cmek-key\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-artifactregistry.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gs-project-accounts.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@serverless-robot-prod.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t\teaSa.Member,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\teaSa,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = artifactregistry.NewRepository(ctx, \"encoded-ar-repo\", \u0026artifactregistry.RepositoryArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tRepositoryId: pulumi.String(\"cmek-repo\"),\n\t\t\tFormat: pulumi.String(\"DOCKER\"),\n\t\t\tKmsKeyName: pulumi.String(\"cmek-key\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tgcfCmekKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = artifactregistry.NewRepositoryIamBinding(ctx, \"binding\", \u0026artifactregistry.RepositoryIamBindingArgs{\n\t\t\tLocation: encoded_ar_repo.Location,\n\t\t\tRepository: encoded_ar_repo.Name,\n\t\t\tRole: pulumi.String(\"roles/artifactregistry.admin\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"function-cmek\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"CMEK function\"),\n\t\t\tKmsKeyName: pulumi.String(\"cmek-key\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloHttp\"),\n\t\t\t\tDockerRepository: encoded_ar_repo.ID(),\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"256M\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tgcfCmekKeyuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.artifactregistry.Repository;\nimport com.pulumi.gcp.artifactregistry.RepositoryArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBinding;\nimport com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;\nimport com.pulumi.gcp.artifactregistry.RepositoryIamBinding;\nimport com.pulumi.gcp.artifactregistry.RepositoryIamBindingArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n final var projectGetProject = OrganizationsFunctions.getProject();\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var eaSa = new ServiceIdentity(\"eaSa\", ServiceIdentityArgs.builder()\n .project(projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .service(\"eventarc.googleapis.com\")\n .build());\n\n var unencoded_ar_repo = new Repository(\"unencoded-ar-repo\", RepositoryArgs.builder()\n .repositoryId(\"ar-repo\")\n .location(\"us-central1\")\n .format(\"DOCKER\")\n .build());\n\n var gcfCmekKeyuser = new CryptoKeyIAMBinding(\"gcfCmekKeyuser\", CryptoKeyIAMBindingArgs.builder()\n .cryptoKeyId(\"cmek-key\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .members( \n String.format(\"serviceAccount:service-%s@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n String.format(\"serviceAccount:service-%s@gcp-sa-artifactregistry.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n String.format(\"serviceAccount:service-%s@gs-project-accounts.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n String.format(\"serviceAccount:service-%s@serverless-robot-prod.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())),\n eaSa.member())\n .build(), CustomResourceOptions.builder()\n .dependsOn(eaSa)\n .build());\n\n var encoded_ar_repo = new Repository(\"encoded-ar-repo\", RepositoryArgs.builder()\n .location(\"us-central1\")\n .repositoryId(\"cmek-repo\")\n .format(\"DOCKER\")\n .kmsKeyName(\"cmek-key\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(gcfCmekKeyuser)\n .build());\n\n var binding = new RepositoryIamBinding(\"binding\", RepositoryIamBindingArgs.builder()\n .location(encoded_ar_repo.location())\n .repository(encoded_ar_repo.name())\n .role(\"roles/artifactregistry.admin\")\n .members(String.format(\"serviceAccount:service-%s@gcf-admin-robot.iam.gserviceaccount.com\", projectGetProject.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"function-cmek\")\n .location(\"us-central1\")\n .description(\"CMEK function\")\n .kmsKeyName(\"cmek-key\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloHttp\")\n .dockerRepository(encoded_ar_repo.id())\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(1)\n .availableMemory(\"256M\")\n .timeoutSeconds(60)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(gcfCmekKeyuser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n eaSa:\n type: gcp:projects:ServiceIdentity\n name: ea_sa\n properties:\n project: ${projectGetProject.projectId}\n service: eventarc.googleapis.com\n unencoded-ar-repo:\n type: gcp:artifactregistry:Repository\n properties:\n repositoryId: ar-repo\n location: us-central1\n format: DOCKER\n binding:\n type: gcp:artifactregistry:RepositoryIamBinding\n properties:\n location: ${[\"encoded-ar-repo\"].location}\n repository: ${[\"encoded-ar-repo\"].name}\n role: roles/artifactregistry.admin\n members:\n - serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com\n gcfCmekKeyuser:\n type: gcp:kms:CryptoKeyIAMBinding\n name: gcf_cmek_keyuser\n properties:\n cryptoKeyId: cmek-key\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n members:\n - serviceAccount:service-${projectGetProject.number}@gcf-admin-robot.iam.gserviceaccount.com\n - serviceAccount:service-${projectGetProject.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com\n - serviceAccount:service-${projectGetProject.number}@gs-project-accounts.iam.gserviceaccount.com\n - serviceAccount:service-${projectGetProject.number}@serverless-robot-prod.iam.gserviceaccount.com\n - ${eaSa.member}\n options:\n dependson:\n - ${eaSa}\n encoded-ar-repo:\n type: gcp:artifactregistry:Repository\n properties:\n location: us-central1\n repositoryId: cmek-repo\n format: DOCKER\n kmsKeyName: cmek-key\n options:\n dependson:\n - ${gcfCmekKeyuser}\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: function-cmek\n location: us-central1\n description: CMEK function\n kmsKeyName: cmek-key\n buildConfig:\n runtime: nodejs16\n entryPoint: helloHttp\n dockerRepository: ${[\"encoded-ar-repo\"].id}\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n serviceConfig:\n maxInstanceCount: 1\n availableMemory: 256M\n timeoutSeconds: 60\n options:\n dependson:\n - ${gcfCmekKeyuser}\nvariables:\n project: my-project-name\n projectGetProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Abiu\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst topic = new gcp.pubsub.Topic(\"topic\", {name: \"functions2-topic\"});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"europe-west6\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloPubSub\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n automaticUpdatePolicy: {},\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"4Gi\",\n timeoutSeconds: 60,\n maxInstanceRequestConcurrency: 80,\n availableCpu: \"4\",\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.pubsub.topic.v1.messagePublished\",\n pubsubTopic: topic.id,\n retryPolicy: \"RETRY_POLICY_RETRY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\ntopic = gcp.pubsub.Topic(\"topic\", name=\"functions2-topic\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"europe-west6\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloPubSub\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"automatic_update_policy\": {},\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"4Gi\",\n \"timeout_seconds\": 60,\n \"max_instance_request_concurrency\": 80,\n \"available_cpu\": \"4\",\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.pubsub.topic.v1.messagePublished\",\n \"pubsub_topic\": topic.id,\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var topic = new Gcp.PubSub.Topic(\"topic\", new()\n {\n Name = \"functions2-topic\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"europe-west6\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloPubSub\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n AutomaticUpdatePolicy = null,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"4Gi\",\n TimeoutSeconds = 60,\n MaxInstanceRequestConcurrency = 80,\n AvailableCpu = \"4\",\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.pubsub.topic.v1.messagePublished\",\n PubsubTopic = topic.Id,\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := pubsub.NewTopic(ctx, \"topic\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"functions2-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"europe-west6\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloPubSub\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tAutomaticUpdatePolicy: nil,\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"4Gi\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tMaxInstanceRequestConcurrency: pulumi.Int(80),\n\t\t\t\tAvailableCpu: pulumi.String(\"4\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.pubsub.topic.v1.messagePublished\"),\n\t\t\t\tPubsubTopic: topic.ID(),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigAutomaticUpdatePolicyArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var topic = new Topic(\"topic\", TopicArgs.builder()\n .name(\"functions2-topic\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"europe-west6\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloPubSub\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .automaticUpdatePolicy()\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"4Gi\")\n .timeoutSeconds(60)\n .maxInstanceRequestConcurrency(80)\n .availableCpu(\"4\")\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.pubsub.topic.v1.messagePublished\")\n .pubsubTopic(topic.id())\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n topic:\n type: gcp:pubsub:Topic\n properties:\n name: functions2-topic\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: europe-west6\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloPubSub\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n automaticUpdatePolicy: {}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 4Gi\n timeoutSeconds: 60\n maxInstanceRequestConcurrency: 80\n availableCpu: '4'\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.pubsub.topic.v1.messagePublished\n pubsubTopic: ${topic.id}\n retryPolicy: RETRY_POLICY_RETRY\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Cloudfunctions2 Abiu On Deploy\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = \"my-project-name\";\nconst account = new gcp.serviceaccount.Account(\"account\", {\n accountId: \"gcf-sa\",\n displayName: \"Test Service Account\",\n});\nconst topic = new gcp.pubsub.Topic(\"topic\", {name: \"functions2-topic\"});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: `${project}-gcf-source`,\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst object = new gcp.storage.BucketObject(\"object\", {\n name: \"function-source.zip\",\n bucket: bucket.name,\n source: new pulumi.asset.FileAsset(\"function-source.zip\"),\n});\nconst _function = new gcp.cloudfunctionsv2.Function(\"function\", {\n name: \"gcf-function\",\n location: \"europe-west6\",\n description: \"a new function\",\n buildConfig: {\n runtime: \"nodejs16\",\n entryPoint: \"helloPubSub\",\n environmentVariables: {\n BUILD_CONFIG_TEST: \"build_test\",\n },\n source: {\n storageSource: {\n bucket: bucket.name,\n object: object.name,\n },\n },\n onDeployUpdatePolicy: {},\n },\n serviceConfig: {\n maxInstanceCount: 3,\n minInstanceCount: 1,\n availableMemory: \"4Gi\",\n timeoutSeconds: 60,\n maxInstanceRequestConcurrency: 80,\n availableCpu: \"4\",\n environmentVariables: {\n SERVICE_CONFIG_TEST: \"config_test\",\n },\n ingressSettings: \"ALLOW_INTERNAL_ONLY\",\n allTrafficOnLatestRevision: true,\n serviceAccountEmail: account.email,\n },\n eventTrigger: {\n triggerRegion: \"us-central1\",\n eventType: \"google.cloud.pubsub.topic.v1.messagePublished\",\n pubsubTopic: topic.id,\n retryPolicy: \"RETRY_POLICY_RETRY\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = \"my-project-name\"\naccount = gcp.serviceaccount.Account(\"account\",\n account_id=\"gcf-sa\",\n display_name=\"Test Service Account\")\ntopic = gcp.pubsub.Topic(\"topic\", name=\"functions2-topic\")\nbucket = gcp.storage.Bucket(\"bucket\",\n name=f\"{project}-gcf-source\",\n location=\"US\",\n uniform_bucket_level_access=True)\nobject = gcp.storage.BucketObject(\"object\",\n name=\"function-source.zip\",\n bucket=bucket.name,\n source=pulumi.FileAsset(\"function-source.zip\"))\nfunction = gcp.cloudfunctionsv2.Function(\"function\",\n name=\"gcf-function\",\n location=\"europe-west6\",\n description=\"a new function\",\n build_config={\n \"runtime\": \"nodejs16\",\n \"entry_point\": \"helloPubSub\",\n \"environment_variables\": {\n \"buil_d__confi_g__test\": \"build_test\",\n },\n \"source\": {\n \"storage_source\": {\n \"bucket\": bucket.name,\n \"object\": object.name,\n },\n },\n \"on_deploy_update_policy\": {},\n },\n service_config={\n \"max_instance_count\": 3,\n \"min_instance_count\": 1,\n \"available_memory\": \"4Gi\",\n \"timeout_seconds\": 60,\n \"max_instance_request_concurrency\": 80,\n \"available_cpu\": \"4\",\n \"environment_variables\": {\n \"servic_e__confi_g__test\": \"config_test\",\n },\n \"ingress_settings\": \"ALLOW_INTERNAL_ONLY\",\n \"all_traffic_on_latest_revision\": True,\n \"service_account_email\": account.email,\n },\n event_trigger={\n \"trigger_region\": \"us-central1\",\n \"event_type\": \"google.cloud.pubsub.topic.v1.messagePublished\",\n \"pubsub_topic\": topic.id,\n \"retry_policy\": \"RETRY_POLICY_RETRY\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = \"my-project-name\";\n\n var account = new Gcp.ServiceAccount.Account(\"account\", new()\n {\n AccountId = \"gcf-sa\",\n DisplayName = \"Test Service Account\",\n });\n\n var topic = new Gcp.PubSub.Topic(\"topic\", new()\n {\n Name = \"functions2-topic\",\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = $\"{project}-gcf-source\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var @object = new Gcp.Storage.BucketObject(\"object\", new()\n {\n Name = \"function-source.zip\",\n Bucket = bucket.Name,\n Source = new FileAsset(\"function-source.zip\"),\n });\n\n var function = new Gcp.CloudFunctionsV2.Function(\"function\", new()\n {\n Name = \"gcf-function\",\n Location = \"europe-west6\",\n Description = \"a new function\",\n BuildConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigArgs\n {\n Runtime = \"nodejs16\",\n EntryPoint = \"helloPubSub\",\n EnvironmentVariables = \n {\n { \"BUILD_CONFIG_TEST\", \"build_test\" },\n },\n Source = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceArgs\n {\n StorageSource = new Gcp.CloudFunctionsV2.Inputs.FunctionBuildConfigSourceStorageSourceArgs\n {\n Bucket = bucket.Name,\n Object = @object.Name,\n },\n },\n OnDeployUpdatePolicy = null,\n },\n ServiceConfig = new Gcp.CloudFunctionsV2.Inputs.FunctionServiceConfigArgs\n {\n MaxInstanceCount = 3,\n MinInstanceCount = 1,\n AvailableMemory = \"4Gi\",\n TimeoutSeconds = 60,\n MaxInstanceRequestConcurrency = 80,\n AvailableCpu = \"4\",\n EnvironmentVariables = \n {\n { \"SERVICE_CONFIG_TEST\", \"config_test\" },\n },\n IngressSettings = \"ALLOW_INTERNAL_ONLY\",\n AllTrafficOnLatestRevision = true,\n ServiceAccountEmail = account.Email,\n },\n EventTrigger = new Gcp.CloudFunctionsV2.Inputs.FunctionEventTriggerArgs\n {\n TriggerRegion = \"us-central1\",\n EventType = \"google.cloud.pubsub.topic.v1.messagePublished\",\n PubsubTopic = topic.Id,\n RetryPolicy = \"RETRY_POLICY_RETRY\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/cloudfunctionsv2\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject := \"my-project-name\"\n\t\taccount, err := serviceaccount.NewAccount(ctx, \"account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"gcf-sa\"),\n\t\t\tDisplayName: pulumi.String(\"Test Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := pubsub.NewTopic(ctx, \"topic\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"functions2-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(fmt.Sprintf(\"%v-gcf-source\", project)),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tobject, err := storage.NewBucketObject(ctx, \"object\", \u0026storage.BucketObjectArgs{\n\t\t\tName: pulumi.String(\"function-source.zip\"),\n\t\t\tBucket: bucket.Name,\n\t\t\tSource: pulumi.NewFileAsset(\"function-source.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudfunctionsv2.NewFunction(ctx, \"function\", \u0026cloudfunctionsv2.FunctionArgs{\n\t\t\tName: pulumi.String(\"gcf-function\"),\n\t\t\tLocation: pulumi.String(\"europe-west6\"),\n\t\t\tDescription: pulumi.String(\"a new function\"),\n\t\t\tBuildConfig: \u0026cloudfunctionsv2.FunctionBuildConfigArgs{\n\t\t\t\tRuntime: pulumi.String(\"nodejs16\"),\n\t\t\t\tEntryPoint: pulumi.String(\"helloPubSub\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"BUILD_CONFIG_TEST\": pulumi.String(\"build_test\"),\n\t\t\t\t},\n\t\t\t\tSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceArgs{\n\t\t\t\t\tStorageSource: \u0026cloudfunctionsv2.FunctionBuildConfigSourceStorageSourceArgs{\n\t\t\t\t\t\tBucket: bucket.Name,\n\t\t\t\t\t\tObject: object.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tOnDeployUpdatePolicy: nil,\n\t\t\t},\n\t\t\tServiceConfig: \u0026cloudfunctionsv2.FunctionServiceConfigArgs{\n\t\t\t\tMaxInstanceCount: pulumi.Int(3),\n\t\t\t\tMinInstanceCount: pulumi.Int(1),\n\t\t\t\tAvailableMemory: pulumi.String(\"4Gi\"),\n\t\t\t\tTimeoutSeconds: pulumi.Int(60),\n\t\t\t\tMaxInstanceRequestConcurrency: pulumi.Int(80),\n\t\t\t\tAvailableCpu: pulumi.String(\"4\"),\n\t\t\t\tEnvironmentVariables: pulumi.StringMap{\n\t\t\t\t\t\"SERVICE_CONFIG_TEST\": pulumi.String(\"config_test\"),\n\t\t\t\t},\n\t\t\t\tIngressSettings: pulumi.String(\"ALLOW_INTERNAL_ONLY\"),\n\t\t\t\tAllTrafficOnLatestRevision: pulumi.Bool(true),\n\t\t\t\tServiceAccountEmail: account.Email,\n\t\t\t},\n\t\t\tEventTrigger: \u0026cloudfunctionsv2.FunctionEventTriggerArgs{\n\t\t\t\tTriggerRegion: pulumi.String(\"us-central1\"),\n\t\t\t\tEventType: pulumi.String(\"google.cloud.pubsub.topic.v1.messagePublished\"),\n\t\t\t\tPubsubTopic: topic.ID(),\n\t\t\t\tRetryPolicy: pulumi.String(\"RETRY_POLICY_RETRY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketObject;\nimport com.pulumi.gcp.storage.BucketObjectArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.Function;\nimport com.pulumi.gcp.cloudfunctionsv2.FunctionArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigSourceStorageSourceArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionBuildConfigOnDeployUpdatePolicyArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionServiceConfigArgs;\nimport com.pulumi.gcp.cloudfunctionsv2.inputs.FunctionEventTriggerArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = \"my-project-name\";\n\n var account = new Account(\"account\", AccountArgs.builder()\n .accountId(\"gcf-sa\")\n .displayName(\"Test Service Account\")\n .build());\n\n var topic = new Topic(\"topic\", TopicArgs.builder()\n .name(\"functions2-topic\")\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(String.format(\"%s-gcf-source\", project))\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var object = new BucketObject(\"object\", BucketObjectArgs.builder()\n .name(\"function-source.zip\")\n .bucket(bucket.name())\n .source(new FileAsset(\"function-source.zip\"))\n .build());\n\n var function = new Function(\"function\", FunctionArgs.builder()\n .name(\"gcf-function\")\n .location(\"europe-west6\")\n .description(\"a new function\")\n .buildConfig(FunctionBuildConfigArgs.builder()\n .runtime(\"nodejs16\")\n .entryPoint(\"helloPubSub\")\n .environmentVariables(Map.of(\"BUILD_CONFIG_TEST\", \"build_test\"))\n .source(FunctionBuildConfigSourceArgs.builder()\n .storageSource(FunctionBuildConfigSourceStorageSourceArgs.builder()\n .bucket(bucket.name())\n .object(object.name())\n .build())\n .build())\n .onDeployUpdatePolicy()\n .build())\n .serviceConfig(FunctionServiceConfigArgs.builder()\n .maxInstanceCount(3)\n .minInstanceCount(1)\n .availableMemory(\"4Gi\")\n .timeoutSeconds(60)\n .maxInstanceRequestConcurrency(80)\n .availableCpu(\"4\")\n .environmentVariables(Map.of(\"SERVICE_CONFIG_TEST\", \"config_test\"))\n .ingressSettings(\"ALLOW_INTERNAL_ONLY\")\n .allTrafficOnLatestRevision(true)\n .serviceAccountEmail(account.email())\n .build())\n .eventTrigger(FunctionEventTriggerArgs.builder()\n .triggerRegion(\"us-central1\")\n .eventType(\"google.cloud.pubsub.topic.v1.messagePublished\")\n .pubsubTopic(topic.id())\n .retryPolicy(\"RETRY_POLICY_RETRY\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n account:\n type: gcp:serviceaccount:Account\n properties:\n accountId: gcf-sa\n displayName: Test Service Account\n topic:\n type: gcp:pubsub:Topic\n properties:\n name: functions2-topic\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: ${project}-gcf-source\n location: US\n uniformBucketLevelAccess: true\n object:\n type: gcp:storage:BucketObject\n properties:\n name: function-source.zip\n bucket: ${bucket.name}\n source:\n fn::FileAsset: function-source.zip\n function:\n type: gcp:cloudfunctionsv2:Function\n properties:\n name: gcf-function\n location: europe-west6\n description: a new function\n buildConfig:\n runtime: nodejs16\n entryPoint: helloPubSub\n environmentVariables:\n BUILD_CONFIG_TEST: build_test\n source:\n storageSource:\n bucket: ${bucket.name}\n object: ${object.name}\n onDeployUpdatePolicy: {}\n serviceConfig:\n maxInstanceCount: 3\n minInstanceCount: 1\n availableMemory: 4Gi\n timeoutSeconds: 60\n maxInstanceRequestConcurrency: 80\n availableCpu: '4'\n environmentVariables:\n SERVICE_CONFIG_TEST: config_test\n ingressSettings: ALLOW_INTERNAL_ONLY\n allTrafficOnLatestRevision: true\n serviceAccountEmail: ${account.email}\n eventTrigger:\n triggerRegion: us-central1\n eventType: google.cloud.pubsub.topic.v1.messagePublished\n pubsubTopic: ${topic.id}\n retryPolicy: RETRY_POLICY_RETRY\nvariables:\n project: my-project-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nfunction can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/functions/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, function can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:cloudfunctionsv2/function:Function default projects/{{project}}/locations/{{location}}/functions/{{name}}\n```\n\n```sh\n$ pulumi import gcp:cloudfunctionsv2/function:Function default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:cloudfunctionsv2/function:Function default {{location}}/{{name}}\n```\n\n", "properties": { "buildConfig": { "$ref": "#/types/gcp:cloudfunctionsv2/FunctionBuildConfig:FunctionBuildConfig", @@ -142076,7 +143300,7 @@ } }, "gcp:compute/backendService:BackendService": { - "description": "A Backend Service defines a group of virtual machines that will serve\ntraffic for load balancing. This resource is a global backend service,\nappropriate for external load balancing or self-managed internal load balancing.\nFor managed internal load balancing, use a regional backend service instead.\n\nCurrently self-managed internal load balancing is only available in beta.\n\n\nTo get more information about BackendService, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/v1/backendServices)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service)\n\n\n\n## Example Usage\n\n### Backend Service Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service External Iap\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"tf-test-backend-service-external\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"EXTERNAL\",\n iap: {\n oauth2ClientId: \"abc\",\n oauth2ClientSecret: \"xyz\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.BackendService(\"default\",\n name=\"tf-test-backend-service-external\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"EXTERNAL\",\n iap={\n \"oauth2_client_id\": \"abc\",\n \"oauth2_client_secret\": \"xyz\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"tf-test-backend-service-external\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"EXTERNAL\",\n Iap = new Gcp.Compute.Inputs.BackendServiceIapArgs\n {\n Oauth2ClientId = \"abc\",\n Oauth2ClientSecret = \"xyz\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"tf-test-backend-service-external\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tIap: \u0026compute.BackendServiceIapArgs{\n\t\t\t\tOauth2ClientId: pulumi.String(\"abc\"),\n\t\t\t\tOauth2ClientSecret: pulumi.String(\"xyz\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceIapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"tf-test-backend-service-external\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .iap(BackendServiceIapArgs.builder()\n .oauth2ClientId(\"abc\")\n .oauth2ClientSecret(\"xyz\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: tf-test-backend-service-external\n protocol: HTTP\n loadBalancingScheme: EXTERNAL\n iap:\n oauth2ClientId: abc\n oauth2ClientSecret: xyz\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Simple\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n enableCdn: true,\n cdnPolicy: {\n signedUrlCacheMaxAgeSec: 7200,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id,\n enable_cdn=True,\n cdn_policy={\n \"signed_url_cache_max_age_sec\": 7200,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n SignedUrlCacheMaxAgeSec = 7200,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tSignedUrlCacheMaxAgeSec: pulumi.Int(7200),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .signedUrlCacheMaxAgeSec(7200)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n enableCdn: true\n cdnPolicy:\n signedUrlCacheMaxAgeSec: 7200\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Include Http Headers\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"USE_ORIGIN_HEADERS\",\n cacheKeyPolicy: {\n includeHost: true,\n includeProtocol: true,\n includeQueryString: true,\n includeHttpHeaders: [\"X-My-Header-Field\"],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"USE_ORIGIN_HEADERS\",\n \"cache_key_policy\": {\n \"include_host\": True,\n \"include_protocol\": True,\n \"include_query_string\": True,\n \"include_http_headers\": [\"X-My-Header-Field\"],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"USE_ORIGIN_HEADERS\",\n CacheKeyPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs\n {\n IncludeHost = true,\n IncludeProtocol = true,\n IncludeQueryString = true,\n IncludeHttpHeaders = new[]\n {\n \"X-My-Header-Field\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"USE_ORIGIN_HEADERS\"),\n\t\t\t\tCacheKeyPolicy: \u0026compute.BackendServiceCdnPolicyCacheKeyPolicyArgs{\n\t\t\t\t\tIncludeHost: pulumi.Bool(true),\n\t\t\t\t\tIncludeProtocol: pulumi.Bool(true),\n\t\t\t\t\tIncludeQueryString: pulumi.Bool(true),\n\t\t\t\t\tIncludeHttpHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"X-My-Header-Field\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"USE_ORIGIN_HEADERS\")\n .cacheKeyPolicy(BackendServiceCdnPolicyCacheKeyPolicyArgs.builder()\n .includeHost(true)\n .includeProtocol(true)\n .includeQueryString(true)\n .includeHttpHeaders(\"X-My-Header-Field\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n enableCdn: true\n cdnPolicy:\n cacheMode: USE_ORIGIN_HEADERS\n cacheKeyPolicy:\n includeHost: true\n includeProtocol: true\n includeQueryString: true\n includeHttpHeaders:\n - X-My-Header-Field\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Include Named Cookies\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"CACHE_ALL_STATIC\",\n defaultTtl: 3600,\n clientTtl: 7200,\n maxTtl: 10800,\n cacheKeyPolicy: {\n includeHost: true,\n includeProtocol: true,\n includeQueryString: true,\n includeNamedCookies: [\n \"__next_preview_data\",\n \"__prerender_bypass\",\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"CACHE_ALL_STATIC\",\n \"default_ttl\": 3600,\n \"client_ttl\": 7200,\n \"max_ttl\": 10800,\n \"cache_key_policy\": {\n \"include_host\": True,\n \"include_protocol\": True,\n \"include_query_string\": True,\n \"include_named_cookies\": [\n \"__next_preview_data\",\n \"__prerender_bypass\",\n ],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"CACHE_ALL_STATIC\",\n DefaultTtl = 3600,\n ClientTtl = 7200,\n MaxTtl = 10800,\n CacheKeyPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs\n {\n IncludeHost = true,\n IncludeProtocol = true,\n IncludeQueryString = true,\n IncludeNamedCookies = new[]\n {\n \"__next_preview_data\",\n \"__prerender_bypass\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"CACHE_ALL_STATIC\"),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tClientTtl: pulumi.Int(7200),\n\t\t\t\tMaxTtl: pulumi.Int(10800),\n\t\t\t\tCacheKeyPolicy: \u0026compute.BackendServiceCdnPolicyCacheKeyPolicyArgs{\n\t\t\t\t\tIncludeHost: pulumi.Bool(true),\n\t\t\t\t\tIncludeProtocol: pulumi.Bool(true),\n\t\t\t\t\tIncludeQueryString: pulumi.Bool(true),\n\t\t\t\t\tIncludeNamedCookies: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"__next_preview_data\"),\n\t\t\t\t\t\tpulumi.String(\"__prerender_bypass\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"CACHE_ALL_STATIC\")\n .defaultTtl(3600)\n .clientTtl(7200)\n .maxTtl(10800)\n .cacheKeyPolicy(BackendServiceCdnPolicyCacheKeyPolicyArgs.builder()\n .includeHost(true)\n .includeProtocol(true)\n .includeQueryString(true)\n .includeNamedCookies( \n \"__next_preview_data\",\n \"__prerender_bypass\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n enableCdn: true\n cdnPolicy:\n cacheMode: CACHE_ALL_STATIC\n defaultTtl: 3600\n clientTtl: 7200\n maxTtl: 10800\n cacheKeyPolicy:\n includeHost: true\n includeProtocol: true\n includeQueryString: true\n includeNamedCookies:\n - __next_preview_data\n - __prerender_bypass\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"CACHE_ALL_STATIC\",\n defaultTtl: 3600,\n clientTtl: 7200,\n maxTtl: 10800,\n negativeCaching: true,\n signedUrlCacheMaxAgeSec: 7200,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id,\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"CACHE_ALL_STATIC\",\n \"default_ttl\": 3600,\n \"client_ttl\": 7200,\n \"max_ttl\": 10800,\n \"negative_caching\": True,\n \"signed_url_cache_max_age_sec\": 7200,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"CACHE_ALL_STATIC\",\n DefaultTtl = 3600,\n ClientTtl = 7200,\n MaxTtl = 10800,\n NegativeCaching = true,\n SignedUrlCacheMaxAgeSec = 7200,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"CACHE_ALL_STATIC\"),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tClientTtl: pulumi.Int(7200),\n\t\t\t\tMaxTtl: pulumi.Int(10800),\n\t\t\t\tNegativeCaching: pulumi.Bool(true),\n\t\t\t\tSignedUrlCacheMaxAgeSec: pulumi.Int(7200),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"CACHE_ALL_STATIC\")\n .defaultTtl(3600)\n .clientTtl(7200)\n .maxTtl(10800)\n .negativeCaching(true)\n .signedUrlCacheMaxAgeSec(7200)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n enableCdn: true\n cdnPolicy:\n cacheMode: CACHE_ALL_STATIC\n defaultTtl: 3600\n clientTtl: 7200\n maxTtl: 10800\n negativeCaching: true\n signedUrlCacheMaxAgeSec: 7200\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Bypass Cache On Request Headers\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"CACHE_ALL_STATIC\",\n defaultTtl: 3600,\n clientTtl: 7200,\n maxTtl: 10800,\n negativeCaching: true,\n signedUrlCacheMaxAgeSec: 7200,\n bypassCacheOnRequestHeaders: [\n {\n headerName: \"Authorization\",\n },\n {\n headerName: \"Proxy-Authorization\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id,\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"CACHE_ALL_STATIC\",\n \"default_ttl\": 3600,\n \"client_ttl\": 7200,\n \"max_ttl\": 10800,\n \"negative_caching\": True,\n \"signed_url_cache_max_age_sec\": 7200,\n \"bypass_cache_on_request_headers\": [\n {\n \"header_name\": \"Authorization\",\n },\n {\n \"header_name\": \"Proxy-Authorization\",\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"CACHE_ALL_STATIC\",\n DefaultTtl = 3600,\n ClientTtl = 7200,\n MaxTtl = 10800,\n NegativeCaching = true,\n SignedUrlCacheMaxAgeSec = 7200,\n BypassCacheOnRequestHeaders = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs\n {\n HeaderName = \"Authorization\",\n },\n new Gcp.Compute.Inputs.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs\n {\n HeaderName = \"Proxy-Authorization\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"CACHE_ALL_STATIC\"),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tClientTtl: pulumi.Int(7200),\n\t\t\t\tMaxTtl: pulumi.Int(10800),\n\t\t\t\tNegativeCaching: pulumi.Bool(true),\n\t\t\t\tSignedUrlCacheMaxAgeSec: pulumi.Int(7200),\n\t\t\t\tBypassCacheOnRequestHeaders: compute.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray{\n\t\t\t\t\t\u0026compute.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs{\n\t\t\t\t\t\tHeaderName: pulumi.String(\"Authorization\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026compute.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs{\n\t\t\t\t\t\tHeaderName: pulumi.String(\"Proxy-Authorization\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"CACHE_ALL_STATIC\")\n .defaultTtl(3600)\n .clientTtl(7200)\n .maxTtl(10800)\n .negativeCaching(true)\n .signedUrlCacheMaxAgeSec(7200)\n .bypassCacheOnRequestHeaders( \n BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs.builder()\n .headerName(\"Authorization\")\n .build(),\n BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs.builder()\n .headerName(\"Proxy-Authorization\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n enableCdn: true\n cdnPolicy:\n cacheMode: CACHE_ALL_STATIC\n defaultTtl: 3600\n clientTtl: 7200\n maxTtl: 10800\n negativeCaching: true\n signedUrlCacheMaxAgeSec: 7200\n bypassCacheOnRequestHeaders:\n - headerName: Authorization\n - headerName: Proxy-Authorization\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Traffic Director Round Robin\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst healthCheck = new gcp.compute.HealthCheck(\"health_check\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: healthCheck.id,\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n localityLbPolicy: \"ROUND_ROBIN\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhealth_check = gcp.compute.HealthCheck(\"health_check\",\n name=\"health-check\",\n http_health_check={\n \"port\": 80,\n })\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=health_check.id,\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n locality_lb_policy=\"ROUND_ROBIN\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var healthCheck = new Gcp.Compute.HealthCheck(\"health_check\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = healthCheck.Id,\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n LocalityLbPolicy = \"ROUND_ROBIN\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thealthCheck, err := compute.NewHealthCheck(ctx, \"health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: healthCheck.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tLocalityLbPolicy: pulumi.String(\"ROUND_ROBIN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var healthCheck = new HealthCheck(\"healthCheck\", HealthCheckArgs.builder()\n .name(\"health-check\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(healthCheck.id())\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .localityLbPolicy(\"ROUND_ROBIN\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${healthCheck.id}\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n localityLbPolicy: ROUND_ROBIN\n healthCheck:\n type: gcp:compute:HealthCheck\n name: health_check\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Traffic Director Ring Hash\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst healthCheck = new gcp.compute.HealthCheck(\"health_check\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: healthCheck.id,\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n localityLbPolicy: \"RING_HASH\",\n sessionAffinity: \"HTTP_COOKIE\",\n circuitBreakers: {\n maxConnections: 10,\n },\n consistentHash: {\n httpCookie: {\n ttl: {\n seconds: 11,\n nanos: 1111,\n },\n name: \"mycookie\",\n },\n },\n outlierDetection: {\n consecutiveErrors: 2,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhealth_check = gcp.compute.HealthCheck(\"health_check\",\n name=\"health-check\",\n http_health_check={\n \"port\": 80,\n })\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=health_check.id,\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n locality_lb_policy=\"RING_HASH\",\n session_affinity=\"HTTP_COOKIE\",\n circuit_breakers={\n \"max_connections\": 10,\n },\n consistent_hash={\n \"http_cookie\": {\n \"ttl\": {\n \"seconds\": 11,\n \"nanos\": 1111,\n },\n \"name\": \"mycookie\",\n },\n },\n outlier_detection={\n \"consecutive_errors\": 2,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var healthCheck = new Gcp.Compute.HealthCheck(\"health_check\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = healthCheck.Id,\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n LocalityLbPolicy = \"RING_HASH\",\n SessionAffinity = \"HTTP_COOKIE\",\n CircuitBreakers = new Gcp.Compute.Inputs.BackendServiceCircuitBreakersArgs\n {\n MaxConnections = 10,\n },\n ConsistentHash = new Gcp.Compute.Inputs.BackendServiceConsistentHashArgs\n {\n HttpCookie = new Gcp.Compute.Inputs.BackendServiceConsistentHashHttpCookieArgs\n {\n Ttl = new Gcp.Compute.Inputs.BackendServiceConsistentHashHttpCookieTtlArgs\n {\n Seconds = 11,\n Nanos = 1111,\n },\n Name = \"mycookie\",\n },\n },\n OutlierDetection = new Gcp.Compute.Inputs.BackendServiceOutlierDetectionArgs\n {\n ConsecutiveErrors = 2,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thealthCheck, err := compute.NewHealthCheck(ctx, \"health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: healthCheck.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tLocalityLbPolicy: pulumi.String(\"RING_HASH\"),\n\t\t\tSessionAffinity: pulumi.String(\"HTTP_COOKIE\"),\n\t\t\tCircuitBreakers: \u0026compute.BackendServiceCircuitBreakersArgs{\n\t\t\t\tMaxConnections: pulumi.Int(10),\n\t\t\t},\n\t\t\tConsistentHash: \u0026compute.BackendServiceConsistentHashArgs{\n\t\t\t\tHttpCookie: \u0026compute.BackendServiceConsistentHashHttpCookieArgs{\n\t\t\t\t\tTtl: \u0026compute.BackendServiceConsistentHashHttpCookieTtlArgs{\n\t\t\t\t\t\tSeconds: pulumi.Int(11),\n\t\t\t\t\t\tNanos: pulumi.Int(1111),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"mycookie\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutlierDetection: \u0026compute.BackendServiceOutlierDetectionArgs{\n\t\t\t\tConsecutiveErrors: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCircuitBreakersArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceConsistentHashArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceConsistentHashHttpCookieArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceConsistentHashHttpCookieTtlArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceOutlierDetectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var healthCheck = new HealthCheck(\"healthCheck\", HealthCheckArgs.builder()\n .name(\"health-check\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(healthCheck.id())\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .localityLbPolicy(\"RING_HASH\")\n .sessionAffinity(\"HTTP_COOKIE\")\n .circuitBreakers(BackendServiceCircuitBreakersArgs.builder()\n .maxConnections(10)\n .build())\n .consistentHash(BackendServiceConsistentHashArgs.builder()\n .httpCookie(BackendServiceConsistentHashHttpCookieArgs.builder()\n .ttl(BackendServiceConsistentHashHttpCookieTtlArgs.builder()\n .seconds(11)\n .nanos(1111)\n .build())\n .name(\"mycookie\")\n .build())\n .build())\n .outlierDetection(BackendServiceOutlierDetectionArgs.builder()\n .consecutiveErrors(2)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${healthCheck.id}\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n localityLbPolicy: RING_HASH\n sessionAffinity: HTTP_COOKIE\n circuitBreakers:\n maxConnections: 10\n consistentHash:\n httpCookie:\n ttl:\n seconds: 11\n nanos: 1111\n name: mycookie\n outlierDetection:\n consecutiveErrors: 2\n healthCheck:\n type: gcp:compute:HealthCheck\n name: health_check\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Network Endpoint\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst externalProxy = new gcp.compute.GlobalNetworkEndpointGroup(\"external_proxy\", {\n name: \"network-endpoint\",\n networkEndpointType: \"INTERNET_FQDN_PORT\",\n defaultPort: 443,\n});\nconst proxy = new gcp.compute.GlobalNetworkEndpoint(\"proxy\", {\n globalNetworkEndpointGroup: externalProxy.id,\n fqdn: \"test.example.com\",\n port: externalProxy.defaultPort,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n enableCdn: true,\n timeoutSec: 10,\n connectionDrainingTimeoutSec: 10,\n customRequestHeaders: [proxy.fqdn.apply(fqdn =\u003e `host: ${fqdn}`)],\n customResponseHeaders: [\"X-Cache-Hit: {cdn_cache_status}\"],\n backends: [{\n group: externalProxy.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexternal_proxy = gcp.compute.GlobalNetworkEndpointGroup(\"external_proxy\",\n name=\"network-endpoint\",\n network_endpoint_type=\"INTERNET_FQDN_PORT\",\n default_port=443)\nproxy = gcp.compute.GlobalNetworkEndpoint(\"proxy\",\n global_network_endpoint_group=external_proxy.id,\n fqdn=\"test.example.com\",\n port=external_proxy.default_port)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n enable_cdn=True,\n timeout_sec=10,\n connection_draining_timeout_sec=10,\n custom_request_headers=[proxy.fqdn.apply(lambda fqdn: f\"host: {fqdn}\")],\n custom_response_headers=[\"X-Cache-Hit: {cdn_cache_status}\"],\n backends=[{\n \"group\": external_proxy.id,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var externalProxy = new Gcp.Compute.GlobalNetworkEndpointGroup(\"external_proxy\", new()\n {\n Name = \"network-endpoint\",\n NetworkEndpointType = \"INTERNET_FQDN_PORT\",\n DefaultPort = 443,\n });\n\n var proxy = new Gcp.Compute.GlobalNetworkEndpoint(\"proxy\", new()\n {\n GlobalNetworkEndpointGroup = externalProxy.Id,\n Fqdn = \"test.example.com\",\n Port = externalProxy.DefaultPort,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n EnableCdn = true,\n TimeoutSec = 10,\n ConnectionDrainingTimeoutSec = 10,\n CustomRequestHeaders = new[]\n {\n proxy.Fqdn.Apply(fqdn =\u003e $\"host: {fqdn}\"),\n },\n CustomResponseHeaders = new[]\n {\n \"X-Cache-Hit: {cdn_cache_status}\",\n },\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = externalProxy.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texternalProxy, err := compute.NewGlobalNetworkEndpointGroup(ctx, \"external_proxy\", \u0026compute.GlobalNetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"network-endpoint\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"INTERNET_FQDN_PORT\"),\n\t\t\tDefaultPort: pulumi.Int(443),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproxy, err := compute.NewGlobalNetworkEndpoint(ctx, \"proxy\", \u0026compute.GlobalNetworkEndpointArgs{\n\t\t\tGlobalNetworkEndpointGroup: externalProxy.ID(),\n\t\t\tFqdn: pulumi.String(\"test.example.com\"),\n\t\t\tPort: externalProxy.DefaultPort,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tConnectionDrainingTimeoutSec: pulumi.Int(10),\n\t\t\tCustomRequestHeaders: pulumi.StringArray{\n\t\t\t\tproxy.Fqdn.ApplyT(func(fqdn *string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"host: %v\", fqdn), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tCustomResponseHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Cache-Hit: {cdn_cache_status}\"),\n\t\t\t},\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: externalProxy.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpointGroup;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpointGroupArgs;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpoint;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpointArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var externalProxy = new GlobalNetworkEndpointGroup(\"externalProxy\", GlobalNetworkEndpointGroupArgs.builder()\n .name(\"network-endpoint\")\n .networkEndpointType(\"INTERNET_FQDN_PORT\")\n .defaultPort(\"443\")\n .build());\n\n var proxy = new GlobalNetworkEndpoint(\"proxy\", GlobalNetworkEndpointArgs.builder()\n .globalNetworkEndpointGroup(externalProxy.id())\n .fqdn(\"test.example.com\")\n .port(externalProxy.defaultPort())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .enableCdn(true)\n .timeoutSec(10)\n .connectionDrainingTimeoutSec(10)\n .customRequestHeaders(proxy.fqdn().applyValue(fqdn -\u003e String.format(\"host: %s\", fqdn)))\n .customResponseHeaders(\"X-Cache-Hit: {cdn_cache_status}\")\n .backends(BackendServiceBackendArgs.builder()\n .group(externalProxy.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n externalProxy:\n type: gcp:compute:GlobalNetworkEndpointGroup\n name: external_proxy\n properties:\n name: network-endpoint\n networkEndpointType: INTERNET_FQDN_PORT\n defaultPort: '443'\n proxy:\n type: gcp:compute:GlobalNetworkEndpoint\n properties:\n globalNetworkEndpointGroup: ${externalProxy.id}\n fqdn: test.example.com\n port: ${externalProxy.defaultPort}\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n enableCdn: true\n timeoutSec: 10\n connectionDrainingTimeoutSec: 10\n customRequestHeaders:\n - 'host: ${proxy.fqdn}'\n customResponseHeaders:\n - 'X-Cache-Hit: {cdn_cache_status}'\n backends:\n - group: ${externalProxy.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service External Managed\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHealthCheck.id,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"health-check\",\n http_health_check={\n \"port\": 80,\n })\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_health_check.id,\n load_balancing_scheme=\"EXTERNAL_MANAGED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHealthCheck.Id,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder()\n .name(\"health-check\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHealthCheck.id())\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHealthCheck.id}\n loadBalancingScheme: EXTERNAL_MANAGED\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBackendService can be imported using any of these accepted formats:\n\n* `projects/{{project}}/global/backendServices/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, BackendService can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/backendService:BackendService default projects/{{project}}/global/backendServices/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/backendService:BackendService default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/backendService:BackendService default {{name}}\n```\n\n", + "description": "A Backend Service defines a group of virtual machines that will serve\ntraffic for load balancing. This resource is a global backend service,\nappropriate for external load balancing or self-managed internal load balancing.\nFor managed internal load balancing, use a regional backend service instead.\n\nCurrently self-managed internal load balancing is only available in beta.\n\n\nTo get more information about BackendService, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/v1/backendServices)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service)\n\n\u003e **Warning:** All arguments including the following potentially sensitive\nvalues will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`.\n\n## Example Usage\n\n### Backend Service Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service External Iap\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"tf-test-backend-service-external\",\n protocol: \"HTTP\",\n loadBalancingScheme: \"EXTERNAL\",\n iap: {\n oauth2ClientId: \"abc\",\n oauth2ClientSecret: \"xyz\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.BackendService(\"default\",\n name=\"tf-test-backend-service-external\",\n protocol=\"HTTP\",\n load_balancing_scheme=\"EXTERNAL\",\n iap={\n \"oauth2_client_id\": \"abc\",\n \"oauth2_client_secret\": \"xyz\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"tf-test-backend-service-external\",\n Protocol = \"HTTP\",\n LoadBalancingScheme = \"EXTERNAL\",\n Iap = new Gcp.Compute.Inputs.BackendServiceIapArgs\n {\n Oauth2ClientId = \"abc\",\n Oauth2ClientSecret = \"xyz\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"tf-test-backend-service-external\"),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL\"),\n\t\t\tIap: \u0026compute.BackendServiceIapArgs{\n\t\t\t\tOauth2ClientId: pulumi.String(\"abc\"),\n\t\t\t\tOauth2ClientSecret: pulumi.String(\"xyz\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceIapArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"tf-test-backend-service-external\")\n .protocol(\"HTTP\")\n .loadBalancingScheme(\"EXTERNAL\")\n .iap(BackendServiceIapArgs.builder()\n .oauth2ClientId(\"abc\")\n .oauth2ClientSecret(\"xyz\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: tf-test-backend-service-external\n protocol: HTTP\n loadBalancingScheme: EXTERNAL\n iap:\n oauth2ClientId: abc\n oauth2ClientSecret: xyz\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Simple\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n enableCdn: true,\n cdnPolicy: {\n signedUrlCacheMaxAgeSec: 7200,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id,\n enable_cdn=True,\n cdn_policy={\n \"signed_url_cache_max_age_sec\": 7200,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n SignedUrlCacheMaxAgeSec = 7200,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tSignedUrlCacheMaxAgeSec: pulumi.Int(7200),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .signedUrlCacheMaxAgeSec(7200)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n enableCdn: true\n cdnPolicy:\n signedUrlCacheMaxAgeSec: 7200\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Include Http Headers\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"USE_ORIGIN_HEADERS\",\n cacheKeyPolicy: {\n includeHost: true,\n includeProtocol: true,\n includeQueryString: true,\n includeHttpHeaders: [\"X-My-Header-Field\"],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"USE_ORIGIN_HEADERS\",\n \"cache_key_policy\": {\n \"include_host\": True,\n \"include_protocol\": True,\n \"include_query_string\": True,\n \"include_http_headers\": [\"X-My-Header-Field\"],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"USE_ORIGIN_HEADERS\",\n CacheKeyPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs\n {\n IncludeHost = true,\n IncludeProtocol = true,\n IncludeQueryString = true,\n IncludeHttpHeaders = new[]\n {\n \"X-My-Header-Field\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"USE_ORIGIN_HEADERS\"),\n\t\t\t\tCacheKeyPolicy: \u0026compute.BackendServiceCdnPolicyCacheKeyPolicyArgs{\n\t\t\t\t\tIncludeHost: pulumi.Bool(true),\n\t\t\t\t\tIncludeProtocol: pulumi.Bool(true),\n\t\t\t\t\tIncludeQueryString: pulumi.Bool(true),\n\t\t\t\t\tIncludeHttpHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"X-My-Header-Field\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"USE_ORIGIN_HEADERS\")\n .cacheKeyPolicy(BackendServiceCdnPolicyCacheKeyPolicyArgs.builder()\n .includeHost(true)\n .includeProtocol(true)\n .includeQueryString(true)\n .includeHttpHeaders(\"X-My-Header-Field\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n enableCdn: true\n cdnPolicy:\n cacheMode: USE_ORIGIN_HEADERS\n cacheKeyPolicy:\n includeHost: true\n includeProtocol: true\n includeQueryString: true\n includeHttpHeaders:\n - X-My-Header-Field\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Include Named Cookies\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"CACHE_ALL_STATIC\",\n defaultTtl: 3600,\n clientTtl: 7200,\n maxTtl: 10800,\n cacheKeyPolicy: {\n includeHost: true,\n includeProtocol: true,\n includeQueryString: true,\n includeNamedCookies: [\n \"__next_preview_data\",\n \"__prerender_bypass\",\n ],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"CACHE_ALL_STATIC\",\n \"default_ttl\": 3600,\n \"client_ttl\": 7200,\n \"max_ttl\": 10800,\n \"cache_key_policy\": {\n \"include_host\": True,\n \"include_protocol\": True,\n \"include_query_string\": True,\n \"include_named_cookies\": [\n \"__next_preview_data\",\n \"__prerender_bypass\",\n ],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"CACHE_ALL_STATIC\",\n DefaultTtl = 3600,\n ClientTtl = 7200,\n MaxTtl = 10800,\n CacheKeyPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs\n {\n IncludeHost = true,\n IncludeProtocol = true,\n IncludeQueryString = true,\n IncludeNamedCookies = new[]\n {\n \"__next_preview_data\",\n \"__prerender_bypass\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"CACHE_ALL_STATIC\"),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tClientTtl: pulumi.Int(7200),\n\t\t\t\tMaxTtl: pulumi.Int(10800),\n\t\t\t\tCacheKeyPolicy: \u0026compute.BackendServiceCdnPolicyCacheKeyPolicyArgs{\n\t\t\t\t\tIncludeHost: pulumi.Bool(true),\n\t\t\t\t\tIncludeProtocol: pulumi.Bool(true),\n\t\t\t\t\tIncludeQueryString: pulumi.Bool(true),\n\t\t\t\t\tIncludeNamedCookies: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"__next_preview_data\"),\n\t\t\t\t\t\tpulumi.String(\"__prerender_bypass\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyCacheKeyPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"CACHE_ALL_STATIC\")\n .defaultTtl(3600)\n .clientTtl(7200)\n .maxTtl(10800)\n .cacheKeyPolicy(BackendServiceCdnPolicyCacheKeyPolicyArgs.builder()\n .includeHost(true)\n .includeProtocol(true)\n .includeQueryString(true)\n .includeNamedCookies( \n \"__next_preview_data\",\n \"__prerender_bypass\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n enableCdn: true\n cdnPolicy:\n cacheMode: CACHE_ALL_STATIC\n defaultTtl: 3600\n clientTtl: 7200\n maxTtl: 10800\n cacheKeyPolicy:\n includeHost: true\n includeProtocol: true\n includeQueryString: true\n includeNamedCookies:\n - __next_preview_data\n - __prerender_bypass\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"CACHE_ALL_STATIC\",\n defaultTtl: 3600,\n clientTtl: 7200,\n maxTtl: 10800,\n negativeCaching: true,\n signedUrlCacheMaxAgeSec: 7200,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id,\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"CACHE_ALL_STATIC\",\n \"default_ttl\": 3600,\n \"client_ttl\": 7200,\n \"max_ttl\": 10800,\n \"negative_caching\": True,\n \"signed_url_cache_max_age_sec\": 7200,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"CACHE_ALL_STATIC\",\n DefaultTtl = 3600,\n ClientTtl = 7200,\n MaxTtl = 10800,\n NegativeCaching = true,\n SignedUrlCacheMaxAgeSec = 7200,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"CACHE_ALL_STATIC\"),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tClientTtl: pulumi.Int(7200),\n\t\t\t\tMaxTtl: pulumi.Int(10800),\n\t\t\t\tNegativeCaching: pulumi.Bool(true),\n\t\t\t\tSignedUrlCacheMaxAgeSec: pulumi.Int(7200),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"CACHE_ALL_STATIC\")\n .defaultTtl(3600)\n .clientTtl(7200)\n .maxTtl(10800)\n .negativeCaching(true)\n .signedUrlCacheMaxAgeSec(7200)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n enableCdn: true\n cdnPolicy:\n cacheMode: CACHE_ALL_STATIC\n defaultTtl: 3600\n clientTtl: 7200\n maxTtl: 10800\n negativeCaching: true\n signedUrlCacheMaxAgeSec: 7200\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Cache Bypass Cache On Request Headers\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHttpHealthCheck = new gcp.compute.HttpHealthCheck(\"default\", {\n name: \"health-check\",\n requestPath: \"/\",\n checkIntervalSec: 1,\n timeoutSec: 1,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHttpHealthCheck.id,\n enableCdn: true,\n cdnPolicy: {\n cacheMode: \"CACHE_ALL_STATIC\",\n defaultTtl: 3600,\n clientTtl: 7200,\n maxTtl: 10800,\n negativeCaching: true,\n signedUrlCacheMaxAgeSec: 7200,\n bypassCacheOnRequestHeaders: [\n {\n headerName: \"Authorization\",\n },\n {\n headerName: \"Proxy-Authorization\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_http_health_check = gcp.compute.HttpHealthCheck(\"default\",\n name=\"health-check\",\n request_path=\"/\",\n check_interval_sec=1,\n timeout_sec=1)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_http_health_check.id,\n enable_cdn=True,\n cdn_policy={\n \"cache_mode\": \"CACHE_ALL_STATIC\",\n \"default_ttl\": 3600,\n \"client_ttl\": 7200,\n \"max_ttl\": 10800,\n \"negative_caching\": True,\n \"signed_url_cache_max_age_sec\": 7200,\n \"bypass_cache_on_request_headers\": [\n {\n \"header_name\": \"Authorization\",\n },\n {\n \"header_name\": \"Proxy-Authorization\",\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHttpHealthCheck = new Gcp.Compute.HttpHealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n RequestPath = \"/\",\n CheckIntervalSec = 1,\n TimeoutSec = 1,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHttpHealthCheck.Id,\n EnableCdn = true,\n CdnPolicy = new Gcp.Compute.Inputs.BackendServiceCdnPolicyArgs\n {\n CacheMode = \"CACHE_ALL_STATIC\",\n DefaultTtl = 3600,\n ClientTtl = 7200,\n MaxTtl = 10800,\n NegativeCaching = true,\n SignedUrlCacheMaxAgeSec = 7200,\n BypassCacheOnRequestHeaders = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs\n {\n HeaderName = \"Authorization\",\n },\n new Gcp.Compute.Inputs.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs\n {\n HeaderName = \"Proxy-Authorization\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHttpHealthCheck, err := compute.NewHttpHealthCheck(ctx, \"default\", \u0026compute.HttpHealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tRequestPath: pulumi.String(\"/\"),\n\t\t\tCheckIntervalSec: pulumi.Int(1),\n\t\t\tTimeoutSec: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHttpHealthCheck.ID(),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tCdnPolicy: \u0026compute.BackendServiceCdnPolicyArgs{\n\t\t\t\tCacheMode: pulumi.String(\"CACHE_ALL_STATIC\"),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tClientTtl: pulumi.Int(7200),\n\t\t\t\tMaxTtl: pulumi.Int(10800),\n\t\t\t\tNegativeCaching: pulumi.Bool(true),\n\t\t\t\tSignedUrlCacheMaxAgeSec: pulumi.Int(7200),\n\t\t\t\tBypassCacheOnRequestHeaders: compute.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArray{\n\t\t\t\t\t\u0026compute.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs{\n\t\t\t\t\t\tHeaderName: pulumi.String(\"Authorization\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026compute.BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs{\n\t\t\t\t\t\tHeaderName: pulumi.String(\"Proxy-Authorization\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HttpHealthCheck;\nimport com.pulumi.gcp.compute.HttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCdnPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHttpHealthCheck = new HttpHealthCheck(\"defaultHttpHealthCheck\", HttpHealthCheckArgs.builder()\n .name(\"health-check\")\n .requestPath(\"/\")\n .checkIntervalSec(1)\n .timeoutSec(1)\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHttpHealthCheck.id())\n .enableCdn(true)\n .cdnPolicy(BackendServiceCdnPolicyArgs.builder()\n .cacheMode(\"CACHE_ALL_STATIC\")\n .defaultTtl(3600)\n .clientTtl(7200)\n .maxTtl(10800)\n .negativeCaching(true)\n .signedUrlCacheMaxAgeSec(7200)\n .bypassCacheOnRequestHeaders( \n BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs.builder()\n .headerName(\"Authorization\")\n .build(),\n BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs.builder()\n .headerName(\"Proxy-Authorization\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHttpHealthCheck.id}\n enableCdn: true\n cdnPolicy:\n cacheMode: CACHE_ALL_STATIC\n defaultTtl: 3600\n clientTtl: 7200\n maxTtl: 10800\n negativeCaching: true\n signedUrlCacheMaxAgeSec: 7200\n bypassCacheOnRequestHeaders:\n - headerName: Authorization\n - headerName: Proxy-Authorization\n defaultHttpHealthCheck:\n type: gcp:compute:HttpHealthCheck\n name: default\n properties:\n name: health-check\n requestPath: /\n checkIntervalSec: 1\n timeoutSec: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Traffic Director Round Robin\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst healthCheck = new gcp.compute.HealthCheck(\"health_check\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: healthCheck.id,\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n localityLbPolicy: \"ROUND_ROBIN\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhealth_check = gcp.compute.HealthCheck(\"health_check\",\n name=\"health-check\",\n http_health_check={\n \"port\": 80,\n })\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=health_check.id,\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n locality_lb_policy=\"ROUND_ROBIN\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var healthCheck = new Gcp.Compute.HealthCheck(\"health_check\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = healthCheck.Id,\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n LocalityLbPolicy = \"ROUND_ROBIN\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thealthCheck, err := compute.NewHealthCheck(ctx, \"health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: healthCheck.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tLocalityLbPolicy: pulumi.String(\"ROUND_ROBIN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var healthCheck = new HealthCheck(\"healthCheck\", HealthCheckArgs.builder()\n .name(\"health-check\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(healthCheck.id())\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .localityLbPolicy(\"ROUND_ROBIN\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${healthCheck.id}\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n localityLbPolicy: ROUND_ROBIN\n healthCheck:\n type: gcp:compute:HealthCheck\n name: health_check\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Traffic Director Ring Hash\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst healthCheck = new gcp.compute.HealthCheck(\"health_check\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: healthCheck.id,\n loadBalancingScheme: \"INTERNAL_SELF_MANAGED\",\n localityLbPolicy: \"RING_HASH\",\n sessionAffinity: \"HTTP_COOKIE\",\n circuitBreakers: {\n maxConnections: 10,\n },\n consistentHash: {\n httpCookie: {\n ttl: {\n seconds: 11,\n nanos: 1111,\n },\n name: \"mycookie\",\n },\n },\n outlierDetection: {\n consecutiveErrors: 2,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhealth_check = gcp.compute.HealthCheck(\"health_check\",\n name=\"health-check\",\n http_health_check={\n \"port\": 80,\n })\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=health_check.id,\n load_balancing_scheme=\"INTERNAL_SELF_MANAGED\",\n locality_lb_policy=\"RING_HASH\",\n session_affinity=\"HTTP_COOKIE\",\n circuit_breakers={\n \"max_connections\": 10,\n },\n consistent_hash={\n \"http_cookie\": {\n \"ttl\": {\n \"seconds\": 11,\n \"nanos\": 1111,\n },\n \"name\": \"mycookie\",\n },\n },\n outlier_detection={\n \"consecutive_errors\": 2,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var healthCheck = new Gcp.Compute.HealthCheck(\"health_check\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = healthCheck.Id,\n LoadBalancingScheme = \"INTERNAL_SELF_MANAGED\",\n LocalityLbPolicy = \"RING_HASH\",\n SessionAffinity = \"HTTP_COOKIE\",\n CircuitBreakers = new Gcp.Compute.Inputs.BackendServiceCircuitBreakersArgs\n {\n MaxConnections = 10,\n },\n ConsistentHash = new Gcp.Compute.Inputs.BackendServiceConsistentHashArgs\n {\n HttpCookie = new Gcp.Compute.Inputs.BackendServiceConsistentHashHttpCookieArgs\n {\n Ttl = new Gcp.Compute.Inputs.BackendServiceConsistentHashHttpCookieTtlArgs\n {\n Seconds = 11,\n Nanos = 1111,\n },\n Name = \"mycookie\",\n },\n },\n OutlierDetection = new Gcp.Compute.Inputs.BackendServiceOutlierDetectionArgs\n {\n ConsecutiveErrors = 2,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\thealthCheck, err := compute.NewHealthCheck(ctx, \"health_check\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: healthCheck.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_SELF_MANAGED\"),\n\t\t\tLocalityLbPolicy: pulumi.String(\"RING_HASH\"),\n\t\t\tSessionAffinity: pulumi.String(\"HTTP_COOKIE\"),\n\t\t\tCircuitBreakers: \u0026compute.BackendServiceCircuitBreakersArgs{\n\t\t\t\tMaxConnections: pulumi.Int(10),\n\t\t\t},\n\t\t\tConsistentHash: \u0026compute.BackendServiceConsistentHashArgs{\n\t\t\t\tHttpCookie: \u0026compute.BackendServiceConsistentHashHttpCookieArgs{\n\t\t\t\t\tTtl: \u0026compute.BackendServiceConsistentHashHttpCookieTtlArgs{\n\t\t\t\t\t\tSeconds: pulumi.Int(11),\n\t\t\t\t\t\tNanos: pulumi.Int(1111),\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"mycookie\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tOutlierDetection: \u0026compute.BackendServiceOutlierDetectionArgs{\n\t\t\t\tConsecutiveErrors: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceCircuitBreakersArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceConsistentHashArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceConsistentHashHttpCookieArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceConsistentHashHttpCookieTtlArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceOutlierDetectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var healthCheck = new HealthCheck(\"healthCheck\", HealthCheckArgs.builder()\n .name(\"health-check\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(healthCheck.id())\n .loadBalancingScheme(\"INTERNAL_SELF_MANAGED\")\n .localityLbPolicy(\"RING_HASH\")\n .sessionAffinity(\"HTTP_COOKIE\")\n .circuitBreakers(BackendServiceCircuitBreakersArgs.builder()\n .maxConnections(10)\n .build())\n .consistentHash(BackendServiceConsistentHashArgs.builder()\n .httpCookie(BackendServiceConsistentHashHttpCookieArgs.builder()\n .ttl(BackendServiceConsistentHashHttpCookieTtlArgs.builder()\n .seconds(11)\n .nanos(1111)\n .build())\n .name(\"mycookie\")\n .build())\n .build())\n .outlierDetection(BackendServiceOutlierDetectionArgs.builder()\n .consecutiveErrors(2)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${healthCheck.id}\n loadBalancingScheme: INTERNAL_SELF_MANAGED\n localityLbPolicy: RING_HASH\n sessionAffinity: HTTP_COOKIE\n circuitBreakers:\n maxConnections: 10\n consistentHash:\n httpCookie:\n ttl:\n seconds: 11\n nanos: 1111\n name: mycookie\n outlierDetection:\n consecutiveErrors: 2\n healthCheck:\n type: gcp:compute:HealthCheck\n name: health_check\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service Network Endpoint\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst externalProxy = new gcp.compute.GlobalNetworkEndpointGroup(\"external_proxy\", {\n name: \"network-endpoint\",\n networkEndpointType: \"INTERNET_FQDN_PORT\",\n defaultPort: 443,\n});\nconst proxy = new gcp.compute.GlobalNetworkEndpoint(\"proxy\", {\n globalNetworkEndpointGroup: externalProxy.id,\n fqdn: \"test.example.com\",\n port: externalProxy.defaultPort,\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n enableCdn: true,\n timeoutSec: 10,\n connectionDrainingTimeoutSec: 10,\n customRequestHeaders: [proxy.fqdn.apply(fqdn =\u003e `host: ${fqdn}`)],\n customResponseHeaders: [\"X-Cache-Hit: {cdn_cache_status}\"],\n backends: [{\n group: externalProxy.id,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexternal_proxy = gcp.compute.GlobalNetworkEndpointGroup(\"external_proxy\",\n name=\"network-endpoint\",\n network_endpoint_type=\"INTERNET_FQDN_PORT\",\n default_port=443)\nproxy = gcp.compute.GlobalNetworkEndpoint(\"proxy\",\n global_network_endpoint_group=external_proxy.id,\n fqdn=\"test.example.com\",\n port=external_proxy.default_port)\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n enable_cdn=True,\n timeout_sec=10,\n connection_draining_timeout_sec=10,\n custom_request_headers=[proxy.fqdn.apply(lambda fqdn: f\"host: {fqdn}\")],\n custom_response_headers=[\"X-Cache-Hit: {cdn_cache_status}\"],\n backends=[{\n \"group\": external_proxy.id,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var externalProxy = new Gcp.Compute.GlobalNetworkEndpointGroup(\"external_proxy\", new()\n {\n Name = \"network-endpoint\",\n NetworkEndpointType = \"INTERNET_FQDN_PORT\",\n DefaultPort = 443,\n });\n\n var proxy = new Gcp.Compute.GlobalNetworkEndpoint(\"proxy\", new()\n {\n GlobalNetworkEndpointGroup = externalProxy.Id,\n Fqdn = \"test.example.com\",\n Port = externalProxy.DefaultPort,\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n EnableCdn = true,\n TimeoutSec = 10,\n ConnectionDrainingTimeoutSec = 10,\n CustomRequestHeaders = new[]\n {\n proxy.Fqdn.Apply(fqdn =\u003e $\"host: {fqdn}\"),\n },\n CustomResponseHeaders = new[]\n {\n \"X-Cache-Hit: {cdn_cache_status}\",\n },\n Backends = new[]\n {\n new Gcp.Compute.Inputs.BackendServiceBackendArgs\n {\n Group = externalProxy.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texternalProxy, err := compute.NewGlobalNetworkEndpointGroup(ctx, \"external_proxy\", \u0026compute.GlobalNetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"network-endpoint\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"INTERNET_FQDN_PORT\"),\n\t\t\tDefaultPort: pulumi.Int(443),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproxy, err := compute.NewGlobalNetworkEndpoint(ctx, \"proxy\", \u0026compute.GlobalNetworkEndpointArgs{\n\t\t\tGlobalNetworkEndpointGroup: externalProxy.ID(),\n\t\t\tFqdn: pulumi.String(\"test.example.com\"),\n\t\t\tPort: externalProxy.DefaultPort,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tEnableCdn: pulumi.Bool(true),\n\t\t\tTimeoutSec: pulumi.Int(10),\n\t\t\tConnectionDrainingTimeoutSec: pulumi.Int(10),\n\t\t\tCustomRequestHeaders: pulumi.StringArray{\n\t\t\t\tproxy.Fqdn.ApplyT(func(fqdn *string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"host: %v\", fqdn), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t\tCustomResponseHeaders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"X-Cache-Hit: {cdn_cache_status}\"),\n\t\t\t},\n\t\t\tBackends: compute.BackendServiceBackendArray{\n\t\t\t\t\u0026compute.BackendServiceBackendArgs{\n\t\t\t\t\tGroup: externalProxy.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpointGroup;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpointGroupArgs;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpoint;\nimport com.pulumi.gcp.compute.GlobalNetworkEndpointArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.BackendServiceBackendArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var externalProxy = new GlobalNetworkEndpointGroup(\"externalProxy\", GlobalNetworkEndpointGroupArgs.builder()\n .name(\"network-endpoint\")\n .networkEndpointType(\"INTERNET_FQDN_PORT\")\n .defaultPort(\"443\")\n .build());\n\n var proxy = new GlobalNetworkEndpoint(\"proxy\", GlobalNetworkEndpointArgs.builder()\n .globalNetworkEndpointGroup(externalProxy.id())\n .fqdn(\"test.example.com\")\n .port(externalProxy.defaultPort())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .enableCdn(true)\n .timeoutSec(10)\n .connectionDrainingTimeoutSec(10)\n .customRequestHeaders(proxy.fqdn().applyValue(fqdn -\u003e String.format(\"host: %s\", fqdn)))\n .customResponseHeaders(\"X-Cache-Hit: {cdn_cache_status}\")\n .backends(BackendServiceBackendArgs.builder()\n .group(externalProxy.id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n externalProxy:\n type: gcp:compute:GlobalNetworkEndpointGroup\n name: external_proxy\n properties:\n name: network-endpoint\n networkEndpointType: INTERNET_FQDN_PORT\n defaultPort: '443'\n proxy:\n type: gcp:compute:GlobalNetworkEndpoint\n properties:\n globalNetworkEndpointGroup: ${externalProxy.id}\n fqdn: test.example.com\n port: ${externalProxy.defaultPort}\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n enableCdn: true\n timeoutSec: 10\n connectionDrainingTimeoutSec: 10\n customRequestHeaders:\n - 'host: ${proxy.fqdn}'\n customResponseHeaders:\n - 'X-Cache-Hit: {cdn_cache_status}'\n backends:\n - group: ${externalProxy.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Backend Service External Managed\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst defaultHealthCheck = new gcp.compute.HealthCheck(\"default\", {\n name: \"health-check\",\n httpHealthCheck: {\n port: 80,\n },\n});\nconst _default = new gcp.compute.BackendService(\"default\", {\n name: \"backend-service\",\n healthChecks: defaultHealthCheck.id,\n loadBalancingScheme: \"EXTERNAL_MANAGED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault_health_check = gcp.compute.HealthCheck(\"default\",\n name=\"health-check\",\n http_health_check={\n \"port\": 80,\n })\ndefault = gcp.compute.BackendService(\"default\",\n name=\"backend-service\",\n health_checks=default_health_check.id,\n load_balancing_scheme=\"EXTERNAL_MANAGED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var defaultHealthCheck = new Gcp.Compute.HealthCheck(\"default\", new()\n {\n Name = \"health-check\",\n HttpHealthCheck = new Gcp.Compute.Inputs.HealthCheckHttpHealthCheckArgs\n {\n Port = 80,\n },\n });\n\n var @default = new Gcp.Compute.BackendService(\"default\", new()\n {\n Name = \"backend-service\",\n HealthChecks = defaultHealthCheck.Id,\n LoadBalancingScheme = \"EXTERNAL_MANAGED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultHealthCheck, err := compute.NewHealthCheck(ctx, \"default\", \u0026compute.HealthCheckArgs{\n\t\t\tName: pulumi.String(\"health-check\"),\n\t\t\tHttpHealthCheck: \u0026compute.HealthCheckHttpHealthCheckArgs{\n\t\t\t\tPort: pulumi.Int(80),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewBackendService(ctx, \"default\", \u0026compute.BackendServiceArgs{\n\t\t\tName: pulumi.String(\"backend-service\"),\n\t\t\tHealthChecks: defaultHealthCheck.ID(),\n\t\t\tLoadBalancingScheme: pulumi.String(\"EXTERNAL_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.HealthCheck;\nimport com.pulumi.gcp.compute.HealthCheckArgs;\nimport com.pulumi.gcp.compute.inputs.HealthCheckHttpHealthCheckArgs;\nimport com.pulumi.gcp.compute.BackendService;\nimport com.pulumi.gcp.compute.BackendServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var defaultHealthCheck = new HealthCheck(\"defaultHealthCheck\", HealthCheckArgs.builder()\n .name(\"health-check\")\n .httpHealthCheck(HealthCheckHttpHealthCheckArgs.builder()\n .port(80)\n .build())\n .build());\n\n var default_ = new BackendService(\"default\", BackendServiceArgs.builder()\n .name(\"backend-service\")\n .healthChecks(defaultHealthCheck.id())\n .loadBalancingScheme(\"EXTERNAL_MANAGED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:compute:BackendService\n properties:\n name: backend-service\n healthChecks: ${defaultHealthCheck.id}\n loadBalancingScheme: EXTERNAL_MANAGED\n defaultHealthCheck:\n type: gcp:compute:HealthCheck\n name: default\n properties:\n name: health-check\n httpHealthCheck:\n port: 80\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBackendService can be imported using any of these accepted formats:\n\n* `projects/{{project}}/global/backendServices/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, BackendService can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/backendService:BackendService default projects/{{project}}/global/backendServices/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/backendService:BackendService default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/backendService:BackendService default {{name}}\n```\n\n", "properties": { "affinityCookieTtlSec": { "type": "integer", @@ -155189,6 +156413,10 @@ "selfLink": { "type": "string", "description": "The URI of the created resource.\n" + }, + "sharedSecret": { + "type": "string", + "description": "Output Only. The shared secret to be used for reverse DNS verification.\n" } }, "required": [ @@ -155196,7 +156424,8 @@ "ipCidrRange", "name", "project", - "selfLink" + "selfLink", + "sharedSecret" ], "inputProperties": { "description": { @@ -155260,6 +156489,10 @@ "selfLink": { "type": "string", "description": "The URI of the created resource.\n" + }, + "sharedSecret": { + "type": "string", + "description": "Output Only. The shared secret to be used for reverse DNS verification.\n" } }, "type": "object" @@ -160904,6 +162137,162 @@ "type": "object" } }, + "gcp:compute/resizeRequest:ResizeRequest": { + "description": "Represents a Managed Instance Group Resize Request\n\nResize Requests are the Managed Instance Group implementation of Dynamic Workload Scheduler Flex Start.\n\nWith Dynamic Workload Scheduler in Flex Start mode, you submit a GPU capacity request for your AI/ML jobs by indicating how many you need, a duration, and your preferred region. Dynamic Workload Scheduler intelligently persists the request; once the capacity becomes available, it automatically provisions your VMs enabling your workloads to run continuously for the entire duration of the capacity allocation.\n\n\nTo get more information about ResizeRequest, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagerResizeRequests)\n* How-to Guides\n * [QUICKSTART_TITLE](https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig)\n\n## Example Usage\n\n### Compute Mig Resize Request\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst a3Dws = new gcp.compute.RegionInstanceTemplate(\"a3_dws\", {\n name: \"a3-dws\",\n region: \"us-central1\",\n description: \"This template is used to create a mig instance that is compatible with DWS resize requests.\",\n instanceDescription: \"A3 GPU\",\n machineType: \"a3-highgpu-8g\",\n canIpForward: false,\n scheduling: {\n automaticRestart: false,\n onHostMaintenance: \"TERMINATE\",\n },\n disks: [{\n sourceImage: \"cos-cloud/cos-105-lts\",\n autoDelete: true,\n boot: true,\n diskType: \"pd-ssd\",\n diskSizeGb: 960,\n mode: \"READ_WRITE\",\n }],\n guestAccelerators: [{\n type: \"nvidia-h100-80gb\",\n count: 8,\n }],\n reservationAffinity: {\n type: \"NO_RESERVATION\",\n },\n shieldedInstanceConfig: {\n enableVtpm: true,\n enableIntegrityMonitoring: true,\n },\n networkInterfaces: [{\n network: \"default\",\n }],\n});\nconst a3DwsInstanceGroupManager = new gcp.compute.InstanceGroupManager(\"a3_dws\", {\n name: \"a3-dws\",\n baseInstanceName: \"a3-dws\",\n zone: \"us-central1-a\",\n versions: [{\n instanceTemplate: a3Dws.selfLink,\n }],\n instanceLifecyclePolicy: {\n defaultActionOnFailure: \"DO_NOTHING\",\n },\n waitForInstances: false,\n});\nconst a3ResizeRequest = new gcp.compute.ResizeRequest(\"a3_resize_request\", {\n name: \"a3-dws\",\n instanceGroupManager: a3DwsInstanceGroupManager.name,\n zone: \"us-central1-a\",\n description: \"Test resize request resource\",\n resizeBy: 2,\n requestedRunDuration: {\n seconds: \"14400\",\n nanos: 0,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\na3_dws = gcp.compute.RegionInstanceTemplate(\"a3_dws\",\n name=\"a3-dws\",\n region=\"us-central1\",\n description=\"This template is used to create a mig instance that is compatible with DWS resize requests.\",\n instance_description=\"A3 GPU\",\n machine_type=\"a3-highgpu-8g\",\n can_ip_forward=False,\n scheduling={\n \"automatic_restart\": False,\n \"on_host_maintenance\": \"TERMINATE\",\n },\n disks=[{\n \"source_image\": \"cos-cloud/cos-105-lts\",\n \"auto_delete\": True,\n \"boot\": True,\n \"disk_type\": \"pd-ssd\",\n \"disk_size_gb\": 960,\n \"mode\": \"READ_WRITE\",\n }],\n guest_accelerators=[{\n \"type\": \"nvidia-h100-80gb\",\n \"count\": 8,\n }],\n reservation_affinity={\n \"type\": \"NO_RESERVATION\",\n },\n shielded_instance_config={\n \"enable_vtpm\": True,\n \"enable_integrity_monitoring\": True,\n },\n network_interfaces=[{\n \"network\": \"default\",\n }])\na3_dws_instance_group_manager = gcp.compute.InstanceGroupManager(\"a3_dws\",\n name=\"a3-dws\",\n base_instance_name=\"a3-dws\",\n zone=\"us-central1-a\",\n versions=[{\n \"instance_template\": a3_dws.self_link,\n }],\n instance_lifecycle_policy={\n \"default_action_on_failure\": \"DO_NOTHING\",\n },\n wait_for_instances=False)\na3_resize_request = gcp.compute.ResizeRequest(\"a3_resize_request\",\n name=\"a3-dws\",\n instance_group_manager=a3_dws_instance_group_manager.name,\n zone=\"us-central1-a\",\n description=\"Test resize request resource\",\n resize_by=2,\n requested_run_duration={\n \"seconds\": \"14400\",\n \"nanos\": 0,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var a3Dws = new Gcp.Compute.RegionInstanceTemplate(\"a3_dws\", new()\n {\n Name = \"a3-dws\",\n Region = \"us-central1\",\n Description = \"This template is used to create a mig instance that is compatible with DWS resize requests.\",\n InstanceDescription = \"A3 GPU\",\n MachineType = \"a3-highgpu-8g\",\n CanIpForward = false,\n Scheduling = new Gcp.Compute.Inputs.RegionInstanceTemplateSchedulingArgs\n {\n AutomaticRestart = false,\n OnHostMaintenance = \"TERMINATE\",\n },\n Disks = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceTemplateDiskArgs\n {\n SourceImage = \"cos-cloud/cos-105-lts\",\n AutoDelete = true,\n Boot = true,\n DiskType = \"pd-ssd\",\n DiskSizeGb = 960,\n Mode = \"READ_WRITE\",\n },\n },\n GuestAccelerators = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceTemplateGuestAcceleratorArgs\n {\n Type = \"nvidia-h100-80gb\",\n Count = 8,\n },\n },\n ReservationAffinity = new Gcp.Compute.Inputs.RegionInstanceTemplateReservationAffinityArgs\n {\n Type = \"NO_RESERVATION\",\n },\n ShieldedInstanceConfig = new Gcp.Compute.Inputs.RegionInstanceTemplateShieldedInstanceConfigArgs\n {\n EnableVtpm = true,\n EnableIntegrityMonitoring = true,\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.RegionInstanceTemplateNetworkInterfaceArgs\n {\n Network = \"default\",\n },\n },\n });\n\n var a3DwsInstanceGroupManager = new Gcp.Compute.InstanceGroupManager(\"a3_dws\", new()\n {\n Name = \"a3-dws\",\n BaseInstanceName = \"a3-dws\",\n Zone = \"us-central1-a\",\n Versions = new[]\n {\n new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs\n {\n InstanceTemplate = a3Dws.SelfLink,\n },\n },\n InstanceLifecyclePolicy = new Gcp.Compute.Inputs.InstanceGroupManagerInstanceLifecyclePolicyArgs\n {\n DefaultActionOnFailure = \"DO_NOTHING\",\n },\n WaitForInstances = false,\n });\n\n var a3ResizeRequest = new Gcp.Compute.ResizeRequest(\"a3_resize_request\", new()\n {\n Name = \"a3-dws\",\n InstanceGroupManager = a3DwsInstanceGroupManager.Name,\n Zone = \"us-central1-a\",\n Description = \"Test resize request resource\",\n ResizeBy = 2,\n RequestedRunDuration = new Gcp.Compute.Inputs.ResizeRequestRequestedRunDurationArgs\n {\n Seconds = \"14400\",\n Nanos = 0,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ta3Dws, err := compute.NewRegionInstanceTemplate(ctx, \"a3_dws\", \u0026compute.RegionInstanceTemplateArgs{\n\t\t\tName: pulumi.String(\"a3-dws\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"This template is used to create a mig instance that is compatible with DWS resize requests.\"),\n\t\t\tInstanceDescription: pulumi.String(\"A3 GPU\"),\n\t\t\tMachineType: pulumi.String(\"a3-highgpu-8g\"),\n\t\t\tCanIpForward: pulumi.Bool(false),\n\t\t\tScheduling: \u0026compute.RegionInstanceTemplateSchedulingArgs{\n\t\t\t\tAutomaticRestart: pulumi.Bool(false),\n\t\t\t\tOnHostMaintenance: pulumi.String(\"TERMINATE\"),\n\t\t\t},\n\t\t\tDisks: compute.RegionInstanceTemplateDiskArray{\n\t\t\t\t\u0026compute.RegionInstanceTemplateDiskArgs{\n\t\t\t\t\tSourceImage: pulumi.String(\"cos-cloud/cos-105-lts\"),\n\t\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\t\tBoot: pulumi.Bool(true),\n\t\t\t\t\tDiskType: pulumi.String(\"pd-ssd\"),\n\t\t\t\t\tDiskSizeGb: pulumi.Int(960),\n\t\t\t\t\tMode: pulumi.String(\"READ_WRITE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tGuestAccelerators: compute.RegionInstanceTemplateGuestAcceleratorArray{\n\t\t\t\t\u0026compute.RegionInstanceTemplateGuestAcceleratorArgs{\n\t\t\t\t\tType: pulumi.String(\"nvidia-h100-80gb\"),\n\t\t\t\t\tCount: pulumi.Int(8),\n\t\t\t\t},\n\t\t\t},\n\t\t\tReservationAffinity: \u0026compute.RegionInstanceTemplateReservationAffinityArgs{\n\t\t\t\tType: pulumi.String(\"NO_RESERVATION\"),\n\t\t\t},\n\t\t\tShieldedInstanceConfig: \u0026compute.RegionInstanceTemplateShieldedInstanceConfigArgs{\n\t\t\t\tEnableVtpm: pulumi.Bool(true),\n\t\t\t\tEnableIntegrityMonitoring: pulumi.Bool(true),\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.RegionInstanceTemplateNetworkInterfaceArray{\n\t\t\t\t\u0026compute.RegionInstanceTemplateNetworkInterfaceArgs{\n\t\t\t\t\tNetwork: pulumi.String(\"default\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ta3DwsInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, \"a3_dws\", \u0026compute.InstanceGroupManagerArgs{\n\t\t\tName: pulumi.String(\"a3-dws\"),\n\t\t\tBaseInstanceName: pulumi.String(\"a3-dws\"),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tVersions: compute.InstanceGroupManagerVersionArray{\n\t\t\t\t\u0026compute.InstanceGroupManagerVersionArgs{\n\t\t\t\t\tInstanceTemplate: a3Dws.SelfLink,\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstanceLifecyclePolicy: \u0026compute.InstanceGroupManagerInstanceLifecyclePolicyArgs{\n\t\t\t\tDefaultActionOnFailure: pulumi.String(\"DO_NOTHING\"),\n\t\t\t},\n\t\t\tWaitForInstances: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewResizeRequest(ctx, \"a3_resize_request\", \u0026compute.ResizeRequestArgs{\n\t\t\tName: pulumi.String(\"a3-dws\"),\n\t\t\tInstanceGroupManager: a3DwsInstanceGroupManager.Name,\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tDescription: pulumi.String(\"Test resize request resource\"),\n\t\t\tResizeBy: pulumi.Int(2),\n\t\t\tRequestedRunDuration: \u0026compute.ResizeRequestRequestedRunDurationArgs{\n\t\t\t\tSeconds: pulumi.String(\"14400\"),\n\t\t\t\tNanos: pulumi.Int(0),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RegionInstanceTemplate;\nimport com.pulumi.gcp.compute.RegionInstanceTemplateArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceTemplateSchedulingArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceTemplateDiskArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceTemplateGuestAcceleratorArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceTemplateReservationAffinityArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceTemplateShieldedInstanceConfigArgs;\nimport com.pulumi.gcp.compute.inputs.RegionInstanceTemplateNetworkInterfaceArgs;\nimport com.pulumi.gcp.compute.InstanceGroupManager;\nimport com.pulumi.gcp.compute.InstanceGroupManagerArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceGroupManagerInstanceLifecyclePolicyArgs;\nimport com.pulumi.gcp.compute.ResizeRequest;\nimport com.pulumi.gcp.compute.ResizeRequestArgs;\nimport com.pulumi.gcp.compute.inputs.ResizeRequestRequestedRunDurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var a3Dws = new RegionInstanceTemplate(\"a3Dws\", RegionInstanceTemplateArgs.builder()\n .name(\"a3-dws\")\n .region(\"us-central1\")\n .description(\"This template is used to create a mig instance that is compatible with DWS resize requests.\")\n .instanceDescription(\"A3 GPU\")\n .machineType(\"a3-highgpu-8g\")\n .canIpForward(false)\n .scheduling(RegionInstanceTemplateSchedulingArgs.builder()\n .automaticRestart(false)\n .onHostMaintenance(\"TERMINATE\")\n .build())\n .disks(RegionInstanceTemplateDiskArgs.builder()\n .sourceImage(\"cos-cloud/cos-105-lts\")\n .autoDelete(true)\n .boot(true)\n .diskType(\"pd-ssd\")\n .diskSizeGb(\"960\")\n .mode(\"READ_WRITE\")\n .build())\n .guestAccelerators(RegionInstanceTemplateGuestAcceleratorArgs.builder()\n .type(\"nvidia-h100-80gb\")\n .count(8)\n .build())\n .reservationAffinity(RegionInstanceTemplateReservationAffinityArgs.builder()\n .type(\"NO_RESERVATION\")\n .build())\n .shieldedInstanceConfig(RegionInstanceTemplateShieldedInstanceConfigArgs.builder()\n .enableVtpm(true)\n .enableIntegrityMonitoring(true)\n .build())\n .networkInterfaces(RegionInstanceTemplateNetworkInterfaceArgs.builder()\n .network(\"default\")\n .build())\n .build());\n\n var a3DwsInstanceGroupManager = new InstanceGroupManager(\"a3DwsInstanceGroupManager\", InstanceGroupManagerArgs.builder()\n .name(\"a3-dws\")\n .baseInstanceName(\"a3-dws\")\n .zone(\"us-central1-a\")\n .versions(InstanceGroupManagerVersionArgs.builder()\n .instanceTemplate(a3Dws.selfLink())\n .build())\n .instanceLifecyclePolicy(InstanceGroupManagerInstanceLifecyclePolicyArgs.builder()\n .defaultActionOnFailure(\"DO_NOTHING\")\n .build())\n .waitForInstances(false)\n .build());\n\n var a3ResizeRequest = new ResizeRequest(\"a3ResizeRequest\", ResizeRequestArgs.builder()\n .name(\"a3-dws\")\n .instanceGroupManager(a3DwsInstanceGroupManager.name())\n .zone(\"us-central1-a\")\n .description(\"Test resize request resource\")\n .resizeBy(2)\n .requestedRunDuration(ResizeRequestRequestedRunDurationArgs.builder()\n .seconds(14400)\n .nanos(0)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n a3Dws:\n type: gcp:compute:RegionInstanceTemplate\n name: a3_dws\n properties:\n name: a3-dws\n region: us-central1\n description: This template is used to create a mig instance that is compatible with DWS resize requests.\n instanceDescription: A3 GPU\n machineType: a3-highgpu-8g\n canIpForward: false\n scheduling:\n automaticRestart: false\n onHostMaintenance: TERMINATE\n disks:\n - sourceImage: cos-cloud/cos-105-lts\n autoDelete: true\n boot: true\n diskType: pd-ssd\n diskSizeGb: '960'\n mode: READ_WRITE\n guestAccelerators:\n - type: nvidia-h100-80gb\n count: 8\n reservationAffinity:\n type: NO_RESERVATION\n shieldedInstanceConfig:\n enableVtpm: true\n enableIntegrityMonitoring: true\n networkInterfaces:\n - network: default\n a3DwsInstanceGroupManager:\n type: gcp:compute:InstanceGroupManager\n name: a3_dws\n properties:\n name: a3-dws\n baseInstanceName: a3-dws\n zone: us-central1-a\n versions:\n - instanceTemplate: ${a3Dws.selfLink}\n instanceLifecyclePolicy:\n defaultActionOnFailure: DO_NOTHING\n waitForInstances: false\n a3ResizeRequest:\n type: gcp:compute:ResizeRequest\n name: a3_resize_request\n properties:\n name: a3-dws\n instanceGroupManager: ${a3DwsInstanceGroupManager.name}\n zone: us-central1-a\n description: Test resize request resource\n resizeBy: 2\n requestedRunDuration:\n seconds: 14400\n nanos: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nResizeRequest can be imported using any of these accepted formats:\n\n* `projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}`\n\n* `{{project}}/{{zone}}/{{instance_group_manager}}/{{name}}`\n\n* `{{zone}}/{{instance_group_manager}}/{{name}}`\n\n* `{{instance_group_manager}}/{{name}}`\n\nWhen using the `pulumi import` command, ResizeRequest can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/resizeRequest:ResizeRequest default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{zone}}/{{instance_group_manager}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{instance_group_manager}}/{{name}}\n```\n\n", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "The creation timestamp for this resize request in RFC3339 text format.\n" + }, + "description": { + "type": "string", + "description": "An optional description of this resize-request.\n" + }, + "instanceGroupManager": { + "type": "string", + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.\nAuthorization requires the following IAM permission on the specified resource instanceGroupManager:\n*compute.instanceGroupManagers.update\n\n\n- - -\n" + }, + "name": { + "type": "string", + "description": "The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035.\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" + }, + "requestedRunDuration": { + "$ref": "#/types/gcp:compute/ResizeRequestRequestedRunDuration:ResizeRequestRequestedRunDuration", + "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted.\nStructure is documented below.\n" + }, + "resizeBy": { + "type": "integer", + "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.\n" + }, + "state": { + "type": "string", + "description": "[Output only] Current state of the request.\n" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatus:ResizeRequestStatus" + }, + "description": "[Output only] Status of the request.\nStructure is documented below.\n" + }, + "zone": { + "type": "string", + "description": "Name of the compute zone scoping this request. Name should conform to RFC1035.\n" + } + }, + "required": [ + "creationTimestamp", + "instanceGroupManager", + "name", + "project", + "resizeBy", + "state", + "statuses", + "zone" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "An optional description of this resize-request.\n", + "willReplaceOnChanges": true + }, + "instanceGroupManager": { + "type": "string", + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.\nAuthorization requires the following IAM permission on the specified resource instanceGroupManager:\n*compute.instanceGroupManagers.update\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035.\n", + "willReplaceOnChanges": true + }, + "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", + "willReplaceOnChanges": true + }, + "requestedRunDuration": { + "$ref": "#/types/gcp:compute/ResizeRequestRequestedRunDuration:ResizeRequestRequestedRunDuration", + "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted.\nStructure is documented below.\n", + "willReplaceOnChanges": true + }, + "resizeBy": { + "type": "integer", + "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.\n", + "willReplaceOnChanges": true + }, + "zone": { + "type": "string", + "description": "Name of the compute zone scoping this request. Name should conform to RFC1035.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "instanceGroupManager", + "resizeBy", + "zone" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ResizeRequest resources.\n", + "properties": { + "creationTimestamp": { + "type": "string", + "description": "The creation timestamp for this resize request in RFC3339 text format.\n" + }, + "description": { + "type": "string", + "description": "An optional description of this resize-request.\n", + "willReplaceOnChanges": true + }, + "instanceGroupManager": { + "type": "string", + "description": "The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.\nAuthorization requires the following IAM permission on the specified resource instanceGroupManager:\n*compute.instanceGroupManagers.update\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035.\n", + "willReplaceOnChanges": true + }, + "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", + "willReplaceOnChanges": true + }, + "requestedRunDuration": { + "$ref": "#/types/gcp:compute/ResizeRequestRequestedRunDuration:ResizeRequestRequestedRunDuration", + "description": "Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted.\nStructure is documented below.\n", + "willReplaceOnChanges": true + }, + "resizeBy": { + "type": "integer", + "description": "The number of instances to be created by this resize request. The group's target size will be increased by this number.\n", + "willReplaceOnChanges": true + }, + "state": { + "type": "string", + "description": "[Output only] Current state of the request.\n" + }, + "statuses": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/ResizeRequestStatus:ResizeRequestStatus" + }, + "description": "[Output only] Status of the request.\nStructure is documented below.\n" + }, + "zone": { + "type": "string", + "description": "Name of the compute zone scoping this request. Name should conform to RFC1035.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "gcp:compute/resourcePolicy:ResourcePolicy": { "description": "A policy that can be attached to a resource to specify or schedule actions on that resource.\n\n\nTo get more information about ResourcePolicy, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/resourcePolicies)\n\n## Example Usage\n\n### Resource Policy Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst foo = new gcp.compute.ResourcePolicy(\"foo\", {\n name: \"gce-policy\",\n region: \"us-central1\",\n snapshotSchedulePolicy: {\n schedule: {\n dailySchedule: {\n daysInCycle: 1,\n startTime: \"04:00\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfoo = gcp.compute.ResourcePolicy(\"foo\",\n name=\"gce-policy\",\n region=\"us-central1\",\n snapshot_schedule_policy={\n \"schedule\": {\n \"daily_schedule\": {\n \"days_in_cycle\": 1,\n \"start_time\": \"04:00\",\n },\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Gcp.Compute.ResourcePolicy(\"foo\", new()\n {\n Name = \"gce-policy\",\n Region = \"us-central1\",\n SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs\n {\n Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs\n {\n DailySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs\n {\n DaysInCycle = 1,\n StartTime = \"04:00\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewResourcePolicy(ctx, \"foo\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"gce-policy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSnapshotSchedulePolicy: \u0026compute.ResourcePolicySnapshotSchedulePolicyArgs{\n\t\t\t\tSchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{\n\t\t\t\t\tDailySchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{\n\t\t\t\t\t\tDaysInCycle: pulumi.Int(1),\n\t\t\t\t\t\tStartTime: pulumi.String(\"04:00\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new ResourcePolicy(\"foo\", ResourcePolicyArgs.builder()\n .name(\"gce-policy\")\n .region(\"us-central1\")\n .snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()\n .schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()\n .dailySchedule(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs.builder()\n .daysInCycle(1)\n .startTime(\"04:00\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: gcp:compute:ResourcePolicy\n properties:\n name: gce-policy\n region: us-central1\n snapshotSchedulePolicy:\n schedule:\n dailySchedule:\n daysInCycle: 1\n startTime: 04:00\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Resource Policy Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst bar = new gcp.compute.ResourcePolicy(\"bar\", {\n name: \"gce-policy\",\n region: \"us-central1\",\n snapshotSchedulePolicy: {\n schedule: {\n hourlySchedule: {\n hoursInCycle: 20,\n startTime: \"23:00\",\n },\n },\n retentionPolicy: {\n maxRetentionDays: 10,\n onSourceDiskDelete: \"KEEP_AUTO_SNAPSHOTS\",\n },\n snapshotProperties: {\n labels: {\n my_label: \"value\",\n },\n storageLocations: \"us\",\n guestFlush: true,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbar = gcp.compute.ResourcePolicy(\"bar\",\n name=\"gce-policy\",\n region=\"us-central1\",\n snapshot_schedule_policy={\n \"schedule\": {\n \"hourly_schedule\": {\n \"hours_in_cycle\": 20,\n \"start_time\": \"23:00\",\n },\n },\n \"retention_policy\": {\n \"max_retention_days\": 10,\n \"on_source_disk_delete\": \"KEEP_AUTO_SNAPSHOTS\",\n },\n \"snapshot_properties\": {\n \"labels\": {\n \"my_label\": \"value\",\n },\n \"storage_locations\": \"us\",\n \"guest_flush\": True,\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bar = new Gcp.Compute.ResourcePolicy(\"bar\", new()\n {\n Name = \"gce-policy\",\n Region = \"us-central1\",\n SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs\n {\n Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs\n {\n HourlySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs\n {\n HoursInCycle = 20,\n StartTime = \"23:00\",\n },\n },\n RetentionPolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs\n {\n MaxRetentionDays = 10,\n OnSourceDiskDelete = \"KEEP_AUTO_SNAPSHOTS\",\n },\n SnapshotProperties = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs\n {\n Labels = \n {\n { \"my_label\", \"value\" },\n },\n StorageLocations = \"us\",\n GuestFlush = true,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewResourcePolicy(ctx, \"bar\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"gce-policy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSnapshotSchedulePolicy: \u0026compute.ResourcePolicySnapshotSchedulePolicyArgs{\n\t\t\t\tSchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{\n\t\t\t\t\tHourlySchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{\n\t\t\t\t\t\tHoursInCycle: pulumi.Int(20),\n\t\t\t\t\t\tStartTime: pulumi.String(\"23:00\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRetentionPolicy: \u0026compute.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{\n\t\t\t\t\tMaxRetentionDays: pulumi.Int(10),\n\t\t\t\t\tOnSourceDiskDelete: pulumi.String(\"KEEP_AUTO_SNAPSHOTS\"),\n\t\t\t\t},\n\t\t\t\tSnapshotProperties: \u0026compute.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"my_label\": pulumi.String(\"value\"),\n\t\t\t\t\t},\n\t\t\t\t\tStorageLocations: pulumi.String(\"us\"),\n\t\t\t\t\tGuestFlush: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var bar = new ResourcePolicy(\"bar\", ResourcePolicyArgs.builder()\n .name(\"gce-policy\")\n .region(\"us-central1\")\n .snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()\n .schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()\n .hourlySchedule(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs.builder()\n .hoursInCycle(20)\n .startTime(\"23:00\")\n .build())\n .build())\n .retentionPolicy(ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs.builder()\n .maxRetentionDays(10)\n .onSourceDiskDelete(\"KEEP_AUTO_SNAPSHOTS\")\n .build())\n .snapshotProperties(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs.builder()\n .labels(Map.of(\"my_label\", \"value\"))\n .storageLocations(\"us\")\n .guestFlush(true)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bar:\n type: gcp:compute:ResourcePolicy\n properties:\n name: gce-policy\n region: us-central1\n snapshotSchedulePolicy:\n schedule:\n hourlySchedule:\n hoursInCycle: 20\n startTime: 23:00\n retentionPolicy:\n maxRetentionDays: 10\n onSourceDiskDelete: KEEP_AUTO_SNAPSHOTS\n snapshotProperties:\n labels:\n my_label: value\n storageLocations: us\n guestFlush: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Resource Policy Placement Policy\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst baz = new gcp.compute.ResourcePolicy(\"baz\", {\n name: \"gce-policy\",\n region: \"us-central1\",\n groupPlacementPolicy: {\n vmCount: 2,\n collocation: \"COLLOCATED\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbaz = gcp.compute.ResourcePolicy(\"baz\",\n name=\"gce-policy\",\n region=\"us-central1\",\n group_placement_policy={\n \"vm_count\": 2,\n \"collocation\": \"COLLOCATED\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var baz = new Gcp.Compute.ResourcePolicy(\"baz\", new()\n {\n Name = \"gce-policy\",\n Region = \"us-central1\",\n GroupPlacementPolicy = new Gcp.Compute.Inputs.ResourcePolicyGroupPlacementPolicyArgs\n {\n VmCount = 2,\n Collocation = \"COLLOCATED\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewResourcePolicy(ctx, \"baz\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"gce-policy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tGroupPlacementPolicy: \u0026compute.ResourcePolicyGroupPlacementPolicyArgs{\n\t\t\t\tVmCount: pulumi.Int(2),\n\t\t\t\tCollocation: pulumi.String(\"COLLOCATED\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicyGroupPlacementPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var baz = new ResourcePolicy(\"baz\", ResourcePolicyArgs.builder()\n .name(\"gce-policy\")\n .region(\"us-central1\")\n .groupPlacementPolicy(ResourcePolicyGroupPlacementPolicyArgs.builder()\n .vmCount(2)\n .collocation(\"COLLOCATED\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n baz:\n type: gcp:compute:ResourcePolicy\n properties:\n name: gce-policy\n region: us-central1\n groupPlacementPolicy:\n vmCount: 2\n collocation: COLLOCATED\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Resource Policy Placement Policy Max Distance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst baz = new gcp.compute.ResourcePolicy(\"baz\", {\n name: \"gce-policy\",\n region: \"us-central1\",\n groupPlacementPolicy: {\n vmCount: 2,\n collocation: \"COLLOCATED\",\n maxDistance: 2,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbaz = gcp.compute.ResourcePolicy(\"baz\",\n name=\"gce-policy\",\n region=\"us-central1\",\n group_placement_policy={\n \"vm_count\": 2,\n \"collocation\": \"COLLOCATED\",\n \"max_distance\": 2,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var baz = new Gcp.Compute.ResourcePolicy(\"baz\", new()\n {\n Name = \"gce-policy\",\n Region = \"us-central1\",\n GroupPlacementPolicy = new Gcp.Compute.Inputs.ResourcePolicyGroupPlacementPolicyArgs\n {\n VmCount = 2,\n Collocation = \"COLLOCATED\",\n MaxDistance = 2,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewResourcePolicy(ctx, \"baz\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"gce-policy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tGroupPlacementPolicy: \u0026compute.ResourcePolicyGroupPlacementPolicyArgs{\n\t\t\t\tVmCount: pulumi.Int(2),\n\t\t\t\tCollocation: pulumi.String(\"COLLOCATED\"),\n\t\t\t\tMaxDistance: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicyGroupPlacementPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var baz = new ResourcePolicy(\"baz\", ResourcePolicyArgs.builder()\n .name(\"gce-policy\")\n .region(\"us-central1\")\n .groupPlacementPolicy(ResourcePolicyGroupPlacementPolicyArgs.builder()\n .vmCount(2)\n .collocation(\"COLLOCATED\")\n .maxDistance(2)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n baz:\n type: gcp:compute:ResourcePolicy\n properties:\n name: gce-policy\n region: us-central1\n groupPlacementPolicy:\n vmCount: 2\n collocation: COLLOCATED\n maxDistance: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Resource Policy Instance Schedule Policy\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hourly = new gcp.compute.ResourcePolicy(\"hourly\", {\n name: \"gce-policy\",\n region: \"us-central1\",\n description: \"Start and stop instances\",\n instanceSchedulePolicy: {\n vmStartSchedule: {\n schedule: \"0 * * * *\",\n },\n vmStopSchedule: {\n schedule: \"15 * * * *\",\n },\n timeZone: \"US/Central\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhourly = gcp.compute.ResourcePolicy(\"hourly\",\n name=\"gce-policy\",\n region=\"us-central1\",\n description=\"Start and stop instances\",\n instance_schedule_policy={\n \"vm_start_schedule\": {\n \"schedule\": \"0 * * * *\",\n },\n \"vm_stop_schedule\": {\n \"schedule\": \"15 * * * *\",\n },\n \"time_zone\": \"US/Central\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hourly = new Gcp.Compute.ResourcePolicy(\"hourly\", new()\n {\n Name = \"gce-policy\",\n Region = \"us-central1\",\n Description = \"Start and stop instances\",\n InstanceSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicyInstanceSchedulePolicyArgs\n {\n VmStartSchedule = new Gcp.Compute.Inputs.ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs\n {\n Schedule = \"0 * * * *\",\n },\n VmStopSchedule = new Gcp.Compute.Inputs.ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs\n {\n Schedule = \"15 * * * *\",\n },\n TimeZone = \"US/Central\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewResourcePolicy(ctx, \"hourly\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"gce-policy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"Start and stop instances\"),\n\t\t\tInstanceSchedulePolicy: \u0026compute.ResourcePolicyInstanceSchedulePolicyArgs{\n\t\t\t\tVmStartSchedule: \u0026compute.ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{\n\t\t\t\t\tSchedule: pulumi.String(\"0 * * * *\"),\n\t\t\t\t},\n\t\t\t\tVmStopSchedule: \u0026compute.ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{\n\t\t\t\t\tSchedule: pulumi.String(\"15 * * * *\"),\n\t\t\t\t},\n\t\t\t\tTimeZone: pulumi.String(\"US/Central\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicyInstanceSchedulePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var hourly = new ResourcePolicy(\"hourly\", ResourcePolicyArgs.builder()\n .name(\"gce-policy\")\n .region(\"us-central1\")\n .description(\"Start and stop instances\")\n .instanceSchedulePolicy(ResourcePolicyInstanceSchedulePolicyArgs.builder()\n .vmStartSchedule(ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs.builder()\n .schedule(\"0 * * * *\")\n .build())\n .vmStopSchedule(ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs.builder()\n .schedule(\"15 * * * *\")\n .build())\n .timeZone(\"US/Central\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n hourly:\n type: gcp:compute:ResourcePolicy\n properties:\n name: gce-policy\n region: us-central1\n description: Start and stop instances\n instanceSchedulePolicy:\n vmStartSchedule:\n schedule: 0 * * * *\n vmStopSchedule:\n schedule: 15 * * * *\n timeZone: US/Central\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Resource Policy Snapshot Schedule Chain Name\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst hourly = new gcp.compute.ResourcePolicy(\"hourly\", {\n name: \"gce-policy\",\n region: \"us-central1\",\n description: \"chain name snapshot\",\n snapshotSchedulePolicy: {\n schedule: {\n hourlySchedule: {\n hoursInCycle: 20,\n startTime: \"23:00\",\n },\n },\n retentionPolicy: {\n maxRetentionDays: 14,\n onSourceDiskDelete: \"KEEP_AUTO_SNAPSHOTS\",\n },\n snapshotProperties: {\n labels: {\n my_label: \"value\",\n },\n storageLocations: \"us\",\n guestFlush: true,\n chainName: \"test-schedule-chain-name\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nhourly = gcp.compute.ResourcePolicy(\"hourly\",\n name=\"gce-policy\",\n region=\"us-central1\",\n description=\"chain name snapshot\",\n snapshot_schedule_policy={\n \"schedule\": {\n \"hourly_schedule\": {\n \"hours_in_cycle\": 20,\n \"start_time\": \"23:00\",\n },\n },\n \"retention_policy\": {\n \"max_retention_days\": 14,\n \"on_source_disk_delete\": \"KEEP_AUTO_SNAPSHOTS\",\n },\n \"snapshot_properties\": {\n \"labels\": {\n \"my_label\": \"value\",\n },\n \"storage_locations\": \"us\",\n \"guest_flush\": True,\n \"chain_name\": \"test-schedule-chain-name\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var hourly = new Gcp.Compute.ResourcePolicy(\"hourly\", new()\n {\n Name = \"gce-policy\",\n Region = \"us-central1\",\n Description = \"chain name snapshot\",\n SnapshotSchedulePolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyArgs\n {\n Schedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs\n {\n HourlySchedule = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs\n {\n HoursInCycle = 20,\n StartTime = \"23:00\",\n },\n },\n RetentionPolicy = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs\n {\n MaxRetentionDays = 14,\n OnSourceDiskDelete = \"KEEP_AUTO_SNAPSHOTS\",\n },\n SnapshotProperties = new Gcp.Compute.Inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs\n {\n Labels = \n {\n { \"my_label\", \"value\" },\n },\n StorageLocations = \"us\",\n GuestFlush = true,\n ChainName = \"test-schedule-chain-name\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewResourcePolicy(ctx, \"hourly\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"gce-policy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"chain name snapshot\"),\n\t\t\tSnapshotSchedulePolicy: \u0026compute.ResourcePolicySnapshotSchedulePolicyArgs{\n\t\t\t\tSchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleArgs{\n\t\t\t\t\tHourlySchedule: \u0026compute.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{\n\t\t\t\t\t\tHoursInCycle: pulumi.Int(20),\n\t\t\t\t\t\tStartTime: pulumi.String(\"23:00\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tRetentionPolicy: \u0026compute.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{\n\t\t\t\t\tMaxRetentionDays: pulumi.Int(14),\n\t\t\t\t\tOnSourceDiskDelete: pulumi.String(\"KEEP_AUTO_SNAPSHOTS\"),\n\t\t\t\t},\n\t\t\t\tSnapshotProperties: \u0026compute.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{\n\t\t\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\t\t\"my_label\": pulumi.String(\"value\"),\n\t\t\t\t\t},\n\t\t\t\t\tStorageLocations: pulumi.String(\"us\"),\n\t\t\t\t\tGuestFlush: pulumi.Bool(true),\n\t\t\t\t\tChainName: pulumi.String(\"test-schedule-chain-name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var hourly = new ResourcePolicy(\"hourly\", ResourcePolicyArgs.builder()\n .name(\"gce-policy\")\n .region(\"us-central1\")\n .description(\"chain name snapshot\")\n .snapshotSchedulePolicy(ResourcePolicySnapshotSchedulePolicyArgs.builder()\n .schedule(ResourcePolicySnapshotSchedulePolicyScheduleArgs.builder()\n .hourlySchedule(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs.builder()\n .hoursInCycle(20)\n .startTime(\"23:00\")\n .build())\n .build())\n .retentionPolicy(ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs.builder()\n .maxRetentionDays(14)\n .onSourceDiskDelete(\"KEEP_AUTO_SNAPSHOTS\")\n .build())\n .snapshotProperties(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs.builder()\n .labels(Map.of(\"my_label\", \"value\"))\n .storageLocations(\"us\")\n .guestFlush(true)\n .chainName(\"test-schedule-chain-name\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n hourly:\n type: gcp:compute:ResourcePolicy\n properties:\n name: gce-policy\n region: us-central1\n description: chain name snapshot\n snapshotSchedulePolicy:\n schedule:\n hourlySchedule:\n hoursInCycle: 20\n startTime: 23:00\n retentionPolicy:\n maxRetentionDays: 14\n onSourceDiskDelete: KEEP_AUTO_SNAPSHOTS\n snapshotProperties:\n labels:\n my_label: value\n storageLocations: us\n guestFlush: true\n chainName: test-schedule-chain-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Resource Policy Consistency Group\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst cgroup = new gcp.compute.ResourcePolicy(\"cgroup\", {\n name: \"gce-policy\",\n region: \"europe-west1\",\n diskConsistencyGroupPolicy: {\n enabled: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ncgroup = gcp.compute.ResourcePolicy(\"cgroup\",\n name=\"gce-policy\",\n region=\"europe-west1\",\n disk_consistency_group_policy={\n \"enabled\": True,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var cgroup = new Gcp.Compute.ResourcePolicy(\"cgroup\", new()\n {\n Name = \"gce-policy\",\n Region = \"europe-west1\",\n DiskConsistencyGroupPolicy = new Gcp.Compute.Inputs.ResourcePolicyDiskConsistencyGroupPolicyArgs\n {\n Enabled = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewResourcePolicy(ctx, \"cgroup\", \u0026compute.ResourcePolicyArgs{\n\t\t\tName: pulumi.String(\"gce-policy\"),\n\t\t\tRegion: pulumi.String(\"europe-west1\"),\n\t\t\tDiskConsistencyGroupPolicy: \u0026compute.ResourcePolicyDiskConsistencyGroupPolicyArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ResourcePolicy;\nimport com.pulumi.gcp.compute.ResourcePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.ResourcePolicyDiskConsistencyGroupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cgroup = new ResourcePolicy(\"cgroup\", ResourcePolicyArgs.builder()\n .name(\"gce-policy\")\n .region(\"europe-west1\")\n .diskConsistencyGroupPolicy(ResourcePolicyDiskConsistencyGroupPolicyArgs.builder()\n .enabled(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n cgroup:\n type: gcp:compute:ResourcePolicy\n properties:\n name: gce-policy\n region: europe-west1\n diskConsistencyGroupPolicy:\n enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nResourcePolicy can be imported using any of these accepted formats:\n\n* `projects/{{project}}/regions/{{region}}/resourcePolicies/{{name}}`\n\n* `{{project}}/{{region}}/{{name}}`\n\n* `{{region}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, ResourcePolicy can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default projects/{{project}}/regions/{{region}}/resourcePolicies/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default {{project}}/{{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default {{region}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/resourcePolicy:ResourcePolicy default {{name}}\n```\n\n", "properties": { @@ -161941,7 +163330,7 @@ } }, "gcp:compute/routerPeer:RouterPeer": { - "description": "BGP information that must be configured into the routing stack to\nestablish BGP peering. This information must specify the peer ASN\nand either the interface name, IP address, or peer IP address.\nPlease refer to RFC4273.\n\n\nTo get more information about RouterBgpPeer, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/routers)\n* How-to Guides\n * [Google Cloud Router](https://cloud.google.com/router/docs/)\n\n## Example Usage\n\n### Router Peer Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: \"my-router\",\n region: \"us-central1\",\n peerAsn: 65513,\n advertisedRoutePriority: 100,\n \"interface\": \"interface-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=\"my-router\",\n region=\"us-central1\",\n peer_asn=65513,\n advertised_route_priority=100,\n interface=\"interface-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = \"my-router\",\n Region = \"us-central1\",\n PeerAsn = 65513,\n AdvertisedRoutePriority = 100,\n Interface = \"interface-1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"my-router-peer\"),\n\t\t\tRouter: pulumi.String(\"my-router\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPeerAsn: pulumi.Int(65513),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.String(\"interface-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(\"my-router\")\n .region(\"us-central1\")\n .peerAsn(65513)\n .advertisedRoutePriority(100)\n .interface_(\"interface-1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: my-router\n region: us-central1\n peerAsn: 65513\n advertisedRoutePriority: 100\n interface: interface-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router Peer Disabled\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: \"my-router\",\n region: \"us-central1\",\n peerIpAddress: \"169.254.1.2\",\n peerAsn: 65513,\n advertisedRoutePriority: 100,\n \"interface\": \"interface-1\",\n enable: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=\"my-router\",\n region=\"us-central1\",\n peer_ip_address=\"169.254.1.2\",\n peer_asn=65513,\n advertised_route_priority=100,\n interface=\"interface-1\",\n enable=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = \"my-router\",\n Region = \"us-central1\",\n PeerIpAddress = \"169.254.1.2\",\n PeerAsn = 65513,\n AdvertisedRoutePriority = 100,\n Interface = \"interface-1\",\n Enable = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"my-router-peer\"),\n\t\t\tRouter: pulumi.String(\"my-router\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPeerIpAddress: pulumi.String(\"169.254.1.2\"),\n\t\t\tPeerAsn: pulumi.Int(65513),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.String(\"interface-1\"),\n\t\t\tEnable: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(\"my-router\")\n .region(\"us-central1\")\n .peerIpAddress(\"169.254.1.2\")\n .peerAsn(65513)\n .advertisedRoutePriority(100)\n .interface_(\"interface-1\")\n .enable(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: my-router\n region: us-central1\n peerIpAddress: 169.254.1.2\n peerAsn: 65513\n advertisedRoutePriority: 100\n interface: interface-1\n enable: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router Peer Bfd\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: \"my-router\",\n region: \"us-central1\",\n peerIpAddress: \"169.254.1.2\",\n peerAsn: 65513,\n advertisedRoutePriority: 100,\n \"interface\": \"interface-1\",\n bfd: {\n minReceiveInterval: 1000,\n minTransmitInterval: 1000,\n multiplier: 5,\n sessionInitializationMode: \"ACTIVE\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=\"my-router\",\n region=\"us-central1\",\n peer_ip_address=\"169.254.1.2\",\n peer_asn=65513,\n advertised_route_priority=100,\n interface=\"interface-1\",\n bfd={\n \"min_receive_interval\": 1000,\n \"min_transmit_interval\": 1000,\n \"multiplier\": 5,\n \"session_initialization_mode\": \"ACTIVE\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = \"my-router\",\n Region = \"us-central1\",\n PeerIpAddress = \"169.254.1.2\",\n PeerAsn = 65513,\n AdvertisedRoutePriority = 100,\n Interface = \"interface-1\",\n Bfd = new Gcp.Compute.Inputs.RouterPeerBfdArgs\n {\n MinReceiveInterval = 1000,\n MinTransmitInterval = 1000,\n Multiplier = 5,\n SessionInitializationMode = \"ACTIVE\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"my-router-peer\"),\n\t\t\tRouter: pulumi.String(\"my-router\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPeerIpAddress: pulumi.String(\"169.254.1.2\"),\n\t\t\tPeerAsn: pulumi.Int(65513),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.String(\"interface-1\"),\n\t\t\tBfd: \u0026compute.RouterPeerBfdArgs{\n\t\t\t\tMinReceiveInterval: pulumi.Int(1000),\n\t\t\t\tMinTransmitInterval: pulumi.Int(1000),\n\t\t\t\tMultiplier: pulumi.Int(5),\n\t\t\t\tSessionInitializationMode: pulumi.String(\"ACTIVE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport com.pulumi.gcp.compute.inputs.RouterPeerBfdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(\"my-router\")\n .region(\"us-central1\")\n .peerIpAddress(\"169.254.1.2\")\n .peerAsn(65513)\n .advertisedRoutePriority(100)\n .interface_(\"interface-1\")\n .bfd(RouterPeerBfdArgs.builder()\n .minReceiveInterval(1000)\n .minTransmitInterval(1000)\n .multiplier(5)\n .sessionInitializationMode(\"ACTIVE\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: my-router\n region: us-central1\n peerIpAddress: 169.254.1.2\n peerAsn: 65513\n advertisedRoutePriority: 100\n interface: interface-1\n bfd:\n minReceiveInterval: 1000\n minTransmitInterval: 1000\n multiplier: 5\n sessionInitializationMode: ACTIVE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router Peer Router Appliance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n name: \"my-router-net\",\n autoCreateSubnetworks: false,\n});\nconst subnetwork = new gcp.compute.Subnetwork(\"subnetwork\", {\n name: \"my-router-sub\",\n network: network.selfLink,\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n});\nconst addrIntf = new gcp.compute.Address(\"addr_intf\", {\n name: \"my-router-addr-intf\",\n region: subnetwork.region,\n subnetwork: subnetwork.id,\n addressType: \"INTERNAL\",\n});\nconst addrIntfRedundant = new gcp.compute.Address(\"addr_intf_redundant\", {\n name: \"my-router-addr-intf-red\",\n region: subnetwork.region,\n subnetwork: subnetwork.id,\n addressType: \"INTERNAL\",\n});\nconst addrPeer = new gcp.compute.Address(\"addr_peer\", {\n name: \"my-router-addr-peer\",\n region: subnetwork.region,\n subnetwork: subnetwork.id,\n addressType: \"INTERNAL\",\n});\nconst instance = new gcp.compute.Instance(\"instance\", {\n name: \"router-appliance\",\n zone: \"us-central1-a\",\n machineType: \"e2-medium\",\n canIpForward: true,\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-11\",\n },\n },\n networkInterfaces: [{\n networkIp: addrPeer.address,\n subnetwork: subnetwork.selfLink,\n }],\n});\nconst hub = new gcp.networkconnectivity.Hub(\"hub\", {name: \"my-router-hub\"});\nconst spoke = new gcp.networkconnectivity.Spoke(\"spoke\", {\n name: \"my-router-spoke\",\n location: subnetwork.region,\n hub: hub.id,\n linkedRouterApplianceInstances: {\n instances: [{\n virtualMachine: instance.selfLink,\n ipAddress: addrPeer.address,\n }],\n siteToSiteDataTransfer: false,\n },\n});\nconst router = new gcp.compute.Router(\"router\", {\n name: \"my-router-router\",\n region: subnetwork.region,\n network: network.selfLink,\n bgp: {\n asn: 64514,\n },\n});\nconst interfaceRedundant = new gcp.compute.RouterInterface(\"interface_redundant\", {\n name: \"my-router-intf-red\",\n region: router.region,\n router: router.name,\n subnetwork: subnetwork.selfLink,\n privateIpAddress: addrIntfRedundant.address,\n});\nconst _interface = new gcp.compute.RouterInterface(\"interface\", {\n name: \"my-router-intf\",\n region: router.region,\n router: router.name,\n subnetwork: subnetwork.selfLink,\n privateIpAddress: addrIntf.address,\n redundantInterface: interfaceRedundant.name,\n});\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: router.name,\n region: router.region,\n \"interface\": _interface.name,\n routerApplianceInstance: instance.selfLink,\n peerAsn: 65513,\n peerIpAddress: addrPeer.address,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n name=\"my-router-net\",\n auto_create_subnetworks=False)\nsubnetwork = gcp.compute.Subnetwork(\"subnetwork\",\n name=\"my-router-sub\",\n network=network.self_link,\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\")\naddr_intf = gcp.compute.Address(\"addr_intf\",\n name=\"my-router-addr-intf\",\n region=subnetwork.region,\n subnetwork=subnetwork.id,\n address_type=\"INTERNAL\")\naddr_intf_redundant = gcp.compute.Address(\"addr_intf_redundant\",\n name=\"my-router-addr-intf-red\",\n region=subnetwork.region,\n subnetwork=subnetwork.id,\n address_type=\"INTERNAL\")\naddr_peer = gcp.compute.Address(\"addr_peer\",\n name=\"my-router-addr-peer\",\n region=subnetwork.region,\n subnetwork=subnetwork.id,\n address_type=\"INTERNAL\")\ninstance = gcp.compute.Instance(\"instance\",\n name=\"router-appliance\",\n zone=\"us-central1-a\",\n machine_type=\"e2-medium\",\n can_ip_forward=True,\n boot_disk={\n \"initialize_params\": {\n \"image\": \"debian-cloud/debian-11\",\n },\n },\n network_interfaces=[{\n \"network_ip\": addr_peer.address,\n \"subnetwork\": subnetwork.self_link,\n }])\nhub = gcp.networkconnectivity.Hub(\"hub\", name=\"my-router-hub\")\nspoke = gcp.networkconnectivity.Spoke(\"spoke\",\n name=\"my-router-spoke\",\n location=subnetwork.region,\n hub=hub.id,\n linked_router_appliance_instances={\n \"instances\": [{\n \"virtual_machine\": instance.self_link,\n \"ip_address\": addr_peer.address,\n }],\n \"site_to_site_data_transfer\": False,\n })\nrouter = gcp.compute.Router(\"router\",\n name=\"my-router-router\",\n region=subnetwork.region,\n network=network.self_link,\n bgp={\n \"asn\": 64514,\n })\ninterface_redundant = gcp.compute.RouterInterface(\"interface_redundant\",\n name=\"my-router-intf-red\",\n region=router.region,\n router=router.name,\n subnetwork=subnetwork.self_link,\n private_ip_address=addr_intf_redundant.address)\ninterface = gcp.compute.RouterInterface(\"interface\",\n name=\"my-router-intf\",\n region=router.region,\n router=router.name,\n subnetwork=subnetwork.self_link,\n private_ip_address=addr_intf.address,\n redundant_interface=interface_redundant.name)\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=router.name,\n region=router.region,\n interface=interface.name,\n router_appliance_instance=instance.self_link,\n peer_asn=65513,\n peer_ip_address=addr_peer.address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"my-router-net\",\n AutoCreateSubnetworks = false,\n });\n\n var subnetwork = new Gcp.Compute.Subnetwork(\"subnetwork\", new()\n {\n Name = \"my-router-sub\",\n Network = network.SelfLink,\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n });\n\n var addrIntf = new Gcp.Compute.Address(\"addr_intf\", new()\n {\n Name = \"my-router-addr-intf\",\n Region = subnetwork.Region,\n Subnetwork = subnetwork.Id,\n AddressType = \"INTERNAL\",\n });\n\n var addrIntfRedundant = new Gcp.Compute.Address(\"addr_intf_redundant\", new()\n {\n Name = \"my-router-addr-intf-red\",\n Region = subnetwork.Region,\n Subnetwork = subnetwork.Id,\n AddressType = \"INTERNAL\",\n });\n\n var addrPeer = new Gcp.Compute.Address(\"addr_peer\", new()\n {\n Name = \"my-router-addr-peer\",\n Region = subnetwork.Region,\n Subnetwork = subnetwork.Id,\n AddressType = \"INTERNAL\",\n });\n\n var instance = new Gcp.Compute.Instance(\"instance\", new()\n {\n Name = \"router-appliance\",\n Zone = \"us-central1-a\",\n MachineType = \"e2-medium\",\n CanIpForward = true,\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-11\",\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n NetworkIp = addrPeer.IPAddress,\n Subnetwork = subnetwork.SelfLink,\n },\n },\n });\n\n var hub = new Gcp.NetworkConnectivity.Hub(\"hub\", new()\n {\n Name = \"my-router-hub\",\n });\n\n var spoke = new Gcp.NetworkConnectivity.Spoke(\"spoke\", new()\n {\n Name = \"my-router-spoke\",\n Location = subnetwork.Region,\n Hub = hub.Id,\n LinkedRouterApplianceInstances = new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesArgs\n {\n Instances = new[]\n {\n new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesInstanceArgs\n {\n VirtualMachine = instance.SelfLink,\n IpAddress = addrPeer.IPAddress,\n },\n },\n SiteToSiteDataTransfer = false,\n },\n });\n\n var router = new Gcp.Compute.Router(\"router\", new()\n {\n Name = \"my-router-router\",\n Region = subnetwork.Region,\n Network = network.SelfLink,\n Bgp = new Gcp.Compute.Inputs.RouterBgpArgs\n {\n Asn = 64514,\n },\n });\n\n var interfaceRedundant = new Gcp.Compute.RouterInterface(\"interface_redundant\", new()\n {\n Name = \"my-router-intf-red\",\n Region = router.Region,\n Router = router.Name,\n Subnetwork = subnetwork.SelfLink,\n PrivateIpAddress = addrIntfRedundant.IPAddress,\n });\n\n var @interface = new Gcp.Compute.RouterInterface(\"interface\", new()\n {\n Name = \"my-router-intf\",\n Region = router.Region,\n Router = router.Name,\n Subnetwork = subnetwork.SelfLink,\n PrivateIpAddress = addrIntf.IPAddress,\n RedundantInterface = interfaceRedundant.Name,\n });\n\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = router.Name,\n Region = router.Region,\n Interface = @interface.Name,\n RouterApplianceInstance = instance.SelfLink,\n PeerAsn = 65513,\n PeerIpAddress = addrPeer.IPAddress,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\nName: pulumi.String(\"my-router-net\"),\nAutoCreateSubnetworks: pulumi.Bool(false),\n})\nif err != nil {\nreturn err\n}\nsubnetwork, err := compute.NewSubnetwork(ctx, \"subnetwork\", \u0026compute.SubnetworkArgs{\nName: pulumi.String(\"my-router-sub\"),\nNetwork: network.SelfLink,\nIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\nRegion: pulumi.String(\"us-central1\"),\n})\nif err != nil {\nreturn err\n}\naddrIntf, err := compute.NewAddress(ctx, \"addr_intf\", \u0026compute.AddressArgs{\nName: pulumi.String(\"my-router-addr-intf\"),\nRegion: subnetwork.Region,\nSubnetwork: subnetwork.ID(),\nAddressType: pulumi.String(\"INTERNAL\"),\n})\nif err != nil {\nreturn err\n}\naddrIntfRedundant, err := compute.NewAddress(ctx, \"addr_intf_redundant\", \u0026compute.AddressArgs{\nName: pulumi.String(\"my-router-addr-intf-red\"),\nRegion: subnetwork.Region,\nSubnetwork: subnetwork.ID(),\nAddressType: pulumi.String(\"INTERNAL\"),\n})\nif err != nil {\nreturn err\n}\naddrPeer, err := compute.NewAddress(ctx, \"addr_peer\", \u0026compute.AddressArgs{\nName: pulumi.String(\"my-router-addr-peer\"),\nRegion: subnetwork.Region,\nSubnetwork: subnetwork.ID(),\nAddressType: pulumi.String(\"INTERNAL\"),\n})\nif err != nil {\nreturn err\n}\ninstance, err := compute.NewInstance(ctx, \"instance\", \u0026compute.InstanceArgs{\nName: pulumi.String(\"router-appliance\"),\nZone: pulumi.String(\"us-central1-a\"),\nMachineType: pulumi.String(\"e2-medium\"),\nCanIpForward: pulumi.Bool(true),\nBootDisk: \u0026compute.InstanceBootDiskArgs{\nInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\nImage: pulumi.String(\"debian-cloud/debian-11\"),\n},\n},\nNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\u0026compute.InstanceNetworkInterfaceArgs{\nNetworkIp: addrPeer.Address,\nSubnetwork: subnetwork.SelfLink,\n},\n},\n})\nif err != nil {\nreturn err\n}\nhub, err := networkconnectivity.NewHub(ctx, \"hub\", \u0026networkconnectivity.HubArgs{\nName: pulumi.String(\"my-router-hub\"),\n})\nif err != nil {\nreturn err\n}\n_, err = networkconnectivity.NewSpoke(ctx, \"spoke\", \u0026networkconnectivity.SpokeArgs{\nName: pulumi.String(\"my-router-spoke\"),\nLocation: subnetwork.Region,\nHub: hub.ID(),\nLinkedRouterApplianceInstances: \u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesArgs{\nInstances: networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArray{\n\u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArgs{\nVirtualMachine: instance.SelfLink,\nIpAddress: addrPeer.Address,\n},\n},\nSiteToSiteDataTransfer: pulumi.Bool(false),\n},\n})\nif err != nil {\nreturn err\n}\nrouter, err := compute.NewRouter(ctx, \"router\", \u0026compute.RouterArgs{\nName: pulumi.String(\"my-router-router\"),\nRegion: subnetwork.Region,\nNetwork: network.SelfLink,\nBgp: \u0026compute.RouterBgpArgs{\nAsn: pulumi.Int(64514),\n},\n})\nif err != nil {\nreturn err\n}\ninterfaceRedundant, err := compute.NewRouterInterface(ctx, \"interface_redundant\", \u0026compute.RouterInterfaceArgs{\nName: pulumi.String(\"my-router-intf-red\"),\nRegion: router.Region,\nRouter: router.Name,\nSubnetwork: subnetwork.SelfLink,\nPrivateIpAddress: addrIntfRedundant.Address,\n})\nif err != nil {\nreturn err\n}\ninterface, err := compute.NewRouterInterface(ctx, \"interface\", \u0026compute.RouterInterfaceArgs{\nName: pulumi.String(\"my-router-intf\"),\nRegion: router.Region,\nRouter: router.Name,\nSubnetwork: subnetwork.SelfLink,\nPrivateIpAddress: addrIntf.Address,\nRedundantInterface: interfaceRedundant.Name,\n})\nif err != nil {\nreturn err\n}\n_, err = compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\nName: pulumi.String(\"my-router-peer\"),\nRouter: router.Name,\nRegion: router.Region,\nInterface: interface.Name,\nRouterApplianceInstance: instance.SelfLink,\nPeerAsn: pulumi.Int(65513),\nPeerIpAddress: addrPeer.Address,\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport com.pulumi.gcp.networkconnectivity.Spoke;\nimport com.pulumi.gcp.networkconnectivity.SpokeArgs;\nimport com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedRouterApplianceInstancesArgs;\nimport com.pulumi.gcp.compute.Router;\nimport com.pulumi.gcp.compute.RouterArgs;\nimport com.pulumi.gcp.compute.inputs.RouterBgpArgs;\nimport com.pulumi.gcp.compute.RouterInterface;\nimport com.pulumi.gcp.compute.RouterInterfaceArgs;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"my-router-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnetwork = new Subnetwork(\"subnetwork\", SubnetworkArgs.builder()\n .name(\"my-router-sub\")\n .network(network.selfLink())\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .build());\n\n var addrIntf = new Address(\"addrIntf\", AddressArgs.builder()\n .name(\"my-router-addr-intf\")\n .region(subnetwork.region())\n .subnetwork(subnetwork.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var addrIntfRedundant = new Address(\"addrIntfRedundant\", AddressArgs.builder()\n .name(\"my-router-addr-intf-red\")\n .region(subnetwork.region())\n .subnetwork(subnetwork.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var addrPeer = new Address(\"addrPeer\", AddressArgs.builder()\n .name(\"my-router-addr-peer\")\n .region(subnetwork.region())\n .subnetwork(subnetwork.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"router-appliance\")\n .zone(\"us-central1-a\")\n .machineType(\"e2-medium\")\n .canIpForward(true)\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-11\")\n .build())\n .build())\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .networkIp(addrPeer.address())\n .subnetwork(subnetwork.selfLink())\n .build())\n .build());\n\n var hub = new Hub(\"hub\", HubArgs.builder()\n .name(\"my-router-hub\")\n .build());\n\n var spoke = new Spoke(\"spoke\", SpokeArgs.builder()\n .name(\"my-router-spoke\")\n .location(subnetwork.region())\n .hub(hub.id())\n .linkedRouterApplianceInstances(SpokeLinkedRouterApplianceInstancesArgs.builder()\n .instances(SpokeLinkedRouterApplianceInstancesInstanceArgs.builder()\n .virtualMachine(instance.selfLink())\n .ipAddress(addrPeer.address())\n .build())\n .siteToSiteDataTransfer(false)\n .build())\n .build());\n\n var router = new Router(\"router\", RouterArgs.builder()\n .name(\"my-router-router\")\n .region(subnetwork.region())\n .network(network.selfLink())\n .bgp(RouterBgpArgs.builder()\n .asn(64514)\n .build())\n .build());\n\n var interfaceRedundant = new RouterInterface(\"interfaceRedundant\", RouterInterfaceArgs.builder()\n .name(\"my-router-intf-red\")\n .region(router.region())\n .router(router.name())\n .subnetwork(subnetwork.selfLink())\n .privateIpAddress(addrIntfRedundant.address())\n .build());\n\n var interface_ = new RouterInterface(\"interface\", RouterInterfaceArgs.builder()\n .name(\"my-router-intf\")\n .region(router.region())\n .router(router.name())\n .subnetwork(subnetwork.selfLink())\n .privateIpAddress(addrIntf.address())\n .redundantInterface(interfaceRedundant.name())\n .build());\n\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(router.name())\n .region(router.region())\n .interface_(interface_.name())\n .routerApplianceInstance(instance.selfLink())\n .peerAsn(65513)\n .peerIpAddress(addrPeer.address())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n name: my-router-net\n autoCreateSubnetworks: false\n subnetwork:\n type: gcp:compute:Subnetwork\n properties:\n name: my-router-sub\n network: ${network.selfLink}\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n addrIntf:\n type: gcp:compute:Address\n name: addr_intf\n properties:\n name: my-router-addr-intf\n region: ${subnetwork.region}\n subnetwork: ${subnetwork.id}\n addressType: INTERNAL\n addrIntfRedundant:\n type: gcp:compute:Address\n name: addr_intf_redundant\n properties:\n name: my-router-addr-intf-red\n region: ${subnetwork.region}\n subnetwork: ${subnetwork.id}\n addressType: INTERNAL\n addrPeer:\n type: gcp:compute:Address\n name: addr_peer\n properties:\n name: my-router-addr-peer\n region: ${subnetwork.region}\n subnetwork: ${subnetwork.id}\n addressType: INTERNAL\n instance:\n type: gcp:compute:Instance\n properties:\n name: router-appliance\n zone: us-central1-a\n machineType: e2-medium\n canIpForward: true\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-11\n networkInterfaces:\n - networkIp: ${addrPeer.address}\n subnetwork: ${subnetwork.selfLink}\n hub:\n type: gcp:networkconnectivity:Hub\n properties:\n name: my-router-hub\n spoke:\n type: gcp:networkconnectivity:Spoke\n properties:\n name: my-router-spoke\n location: ${subnetwork.region}\n hub: ${hub.id}\n linkedRouterApplianceInstances:\n instances:\n - virtualMachine: ${instance.selfLink}\n ipAddress: ${addrPeer.address}\n siteToSiteDataTransfer: false\n router:\n type: gcp:compute:Router\n properties:\n name: my-router-router\n region: ${subnetwork.region}\n network: ${network.selfLink}\n bgp:\n asn: 64514\n interfaceRedundant:\n type: gcp:compute:RouterInterface\n name: interface_redundant\n properties:\n name: my-router-intf-red\n region: ${router.region}\n router: ${router.name}\n subnetwork: ${subnetwork.selfLink}\n privateIpAddress: ${addrIntfRedundant.address}\n interface:\n type: gcp:compute:RouterInterface\n properties:\n name: my-router-intf\n region: ${router.region}\n router: ${router.name}\n subnetwork: ${subnetwork.selfLink}\n privateIpAddress: ${addrIntf.address}\n redundantInterface: ${interfaceRedundant.name}\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: ${router.name}\n region: ${router.region}\n interface: ${interface.name}\n routerApplianceInstance: ${instance.selfLink}\n peerAsn: 65513\n peerIpAddress: ${addrPeer.address}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Router Peer Md5 Authentication Key\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst foobar = new gcp.compute.RouterPeer(\"foobar\", {\n name: \"%s-peer\",\n router: foobarGoogleComputeRouter.name,\n region: foobarGoogleComputeRouter.region,\n peerAsn: 65515,\n advertisedRoutePriority: 100,\n \"interface\": foobarGoogleComputeRouterInterface.name,\n peerIpAddress: \"169.254.3.2\",\n md5AuthenticationKey: {\n name: \"%s-peer-key\",\n key: \"%s-peer-key-value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfoobar = gcp.compute.RouterPeer(\"foobar\",\n name=\"%s-peer\",\n router=foobar_google_compute_router[\"name\"],\n region=foobar_google_compute_router[\"region\"],\n peer_asn=65515,\n advertised_route_priority=100,\n interface=foobar_google_compute_router_interface[\"name\"],\n peer_ip_address=\"169.254.3.2\",\n md5_authentication_key={\n \"name\": \"%s-peer-key\",\n \"key\": \"%s-peer-key-value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foobar = new Gcp.Compute.RouterPeer(\"foobar\", new()\n {\n Name = \"%s-peer\",\n Router = foobarGoogleComputeRouter.Name,\n Region = foobarGoogleComputeRouter.Region,\n PeerAsn = 65515,\n AdvertisedRoutePriority = 100,\n Interface = foobarGoogleComputeRouterInterface.Name,\n PeerIpAddress = \"169.254.3.2\",\n Md5AuthenticationKey = new Gcp.Compute.Inputs.RouterPeerMd5AuthenticationKeyArgs\n {\n Name = \"%s-peer-key\",\n Key = \"%s-peer-key-value\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"foobar\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"%s-peer\"),\n\t\t\tRouter: pulumi.Any(foobarGoogleComputeRouter.Name),\n\t\t\tRegion: pulumi.Any(foobarGoogleComputeRouter.Region),\n\t\t\tPeerAsn: pulumi.Int(65515),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.Any(foobarGoogleComputeRouterInterface.Name),\n\t\t\tPeerIpAddress: pulumi.String(\"169.254.3.2\"),\n\t\t\tMd5AuthenticationKey: \u0026compute.RouterPeerMd5AuthenticationKeyArgs{\n\t\t\t\tName: pulumi.String(\"%s-peer-key\"),\n\t\t\t\tKey: pulumi.String(\"%s-peer-key-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport com.pulumi.gcp.compute.inputs.RouterPeerMd5AuthenticationKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foobar = new RouterPeer(\"foobar\", RouterPeerArgs.builder()\n .name(\"%s-peer\")\n .router(foobarGoogleComputeRouter.name())\n .region(foobarGoogleComputeRouter.region())\n .peerAsn(65515)\n .advertisedRoutePriority(100)\n .interface_(foobarGoogleComputeRouterInterface.name())\n .peerIpAddress(\"169.254.3.2\")\n .md5AuthenticationKey(RouterPeerMd5AuthenticationKeyArgs.builder()\n .name(\"%s-peer-key\")\n .key(\"%s-peer-key-value\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: gcp:compute:RouterPeer\n properties:\n name: '%s-peer'\n router: ${foobarGoogleComputeRouter.name}\n region: ${foobarGoogleComputeRouter.region}\n peerAsn: 65515\n advertisedRoutePriority: 100\n interface: ${foobarGoogleComputeRouterInterface.name}\n peerIpAddress: 169.254.3.2\n md5AuthenticationKey:\n name: '%s-peer-key'\n key: '%s-peer-key-value'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouterBgpPeer can be imported using any of these accepted formats:\n\n* `projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}`\n\n* `{{project}}/{{region}}/{{router}}/{{name}}`\n\n* `{{region}}/{{router}}/{{name}}`\n\n* `{{router}}/{{name}}`\n\nWhen using the `pulumi import` command, RouterBgpPeer can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default {{project}}/{{region}}/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default {{region}}/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default {{router}}/{{name}}\n```\n\n", + "description": "BGP information that must be configured into the routing stack to\nestablish BGP peering. This information must specify the peer ASN\nand either the interface name, IP address, or peer IP address.\nPlease refer to RFC4273.\n\n\nTo get more information about RouterBgpPeer, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/routers)\n* How-to Guides\n * [Google Cloud Router](https://cloud.google.com/router/docs/)\n\n## Example Usage\n\n### Router Peer Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: \"my-router\",\n region: \"us-central1\",\n peerAsn: 65513,\n advertisedRoutePriority: 100,\n \"interface\": \"interface-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=\"my-router\",\n region=\"us-central1\",\n peer_asn=65513,\n advertised_route_priority=100,\n interface=\"interface-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = \"my-router\",\n Region = \"us-central1\",\n PeerAsn = 65513,\n AdvertisedRoutePriority = 100,\n Interface = \"interface-1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"my-router-peer\"),\n\t\t\tRouter: pulumi.String(\"my-router\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPeerAsn: pulumi.Int(65513),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.String(\"interface-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(\"my-router\")\n .region(\"us-central1\")\n .peerAsn(65513)\n .advertisedRoutePriority(100)\n .interface_(\"interface-1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: my-router\n region: us-central1\n peerAsn: 65513\n advertisedRoutePriority: 100\n interface: interface-1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router Peer Disabled\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: \"my-router\",\n region: \"us-central1\",\n peerIpAddress: \"169.254.1.2\",\n peerAsn: 65513,\n advertisedRoutePriority: 100,\n \"interface\": \"interface-1\",\n enable: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=\"my-router\",\n region=\"us-central1\",\n peer_ip_address=\"169.254.1.2\",\n peer_asn=65513,\n advertised_route_priority=100,\n interface=\"interface-1\",\n enable=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = \"my-router\",\n Region = \"us-central1\",\n PeerIpAddress = \"169.254.1.2\",\n PeerAsn = 65513,\n AdvertisedRoutePriority = 100,\n Interface = \"interface-1\",\n Enable = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"my-router-peer\"),\n\t\t\tRouter: pulumi.String(\"my-router\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPeerIpAddress: pulumi.String(\"169.254.1.2\"),\n\t\t\tPeerAsn: pulumi.Int(65513),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.String(\"interface-1\"),\n\t\t\tEnable: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(\"my-router\")\n .region(\"us-central1\")\n .peerIpAddress(\"169.254.1.2\")\n .peerAsn(65513)\n .advertisedRoutePriority(100)\n .interface_(\"interface-1\")\n .enable(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: my-router\n region: us-central1\n peerIpAddress: 169.254.1.2\n peerAsn: 65513\n advertisedRoutePriority: 100\n interface: interface-1\n enable: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router Peer Bfd\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: \"my-router\",\n region: \"us-central1\",\n peerIpAddress: \"169.254.1.2\",\n peerAsn: 65513,\n advertisedRoutePriority: 100,\n \"interface\": \"interface-1\",\n bfd: {\n minReceiveInterval: 1000,\n minTransmitInterval: 1000,\n multiplier: 5,\n sessionInitializationMode: \"ACTIVE\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=\"my-router\",\n region=\"us-central1\",\n peer_ip_address=\"169.254.1.2\",\n peer_asn=65513,\n advertised_route_priority=100,\n interface=\"interface-1\",\n bfd={\n \"min_receive_interval\": 1000,\n \"min_transmit_interval\": 1000,\n \"multiplier\": 5,\n \"session_initialization_mode\": \"ACTIVE\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = \"my-router\",\n Region = \"us-central1\",\n PeerIpAddress = \"169.254.1.2\",\n PeerAsn = 65513,\n AdvertisedRoutePriority = 100,\n Interface = \"interface-1\",\n Bfd = new Gcp.Compute.Inputs.RouterPeerBfdArgs\n {\n MinReceiveInterval = 1000,\n MinTransmitInterval = 1000,\n Multiplier = 5,\n SessionInitializationMode = \"ACTIVE\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"my-router-peer\"),\n\t\t\tRouter: pulumi.String(\"my-router\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tPeerIpAddress: pulumi.String(\"169.254.1.2\"),\n\t\t\tPeerAsn: pulumi.Int(65513),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.String(\"interface-1\"),\n\t\t\tBfd: \u0026compute.RouterPeerBfdArgs{\n\t\t\t\tMinReceiveInterval: pulumi.Int(1000),\n\t\t\t\tMinTransmitInterval: pulumi.Int(1000),\n\t\t\t\tMultiplier: pulumi.Int(5),\n\t\t\t\tSessionInitializationMode: pulumi.String(\"ACTIVE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport com.pulumi.gcp.compute.inputs.RouterPeerBfdArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(\"my-router\")\n .region(\"us-central1\")\n .peerIpAddress(\"169.254.1.2\")\n .peerAsn(65513)\n .advertisedRoutePriority(100)\n .interface_(\"interface-1\")\n .bfd(RouterPeerBfdArgs.builder()\n .minReceiveInterval(1000)\n .minTransmitInterval(1000)\n .multiplier(5)\n .sessionInitializationMode(\"ACTIVE\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: my-router\n region: us-central1\n peerIpAddress: 169.254.1.2\n peerAsn: 65513\n advertisedRoutePriority: 100\n interface: interface-1\n bfd:\n minReceiveInterval: 1000\n minTransmitInterval: 1000\n multiplier: 5\n sessionInitializationMode: ACTIVE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router Peer Router Appliance\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n name: \"my-router-net\",\n autoCreateSubnetworks: false,\n});\nconst subnetwork = new gcp.compute.Subnetwork(\"subnetwork\", {\n name: \"my-router-sub\",\n network: network.selfLink,\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n});\nconst addrIntf = new gcp.compute.Address(\"addr_intf\", {\n name: \"my-router-addr-intf\",\n region: subnetwork.region,\n subnetwork: subnetwork.id,\n addressType: \"INTERNAL\",\n});\nconst addrIntfRedundant = new gcp.compute.Address(\"addr_intf_redundant\", {\n name: \"my-router-addr-intf-red\",\n region: subnetwork.region,\n subnetwork: subnetwork.id,\n addressType: \"INTERNAL\",\n});\nconst addrPeer = new gcp.compute.Address(\"addr_peer\", {\n name: \"my-router-addr-peer\",\n region: subnetwork.region,\n subnetwork: subnetwork.id,\n addressType: \"INTERNAL\",\n});\nconst instance = new gcp.compute.Instance(\"instance\", {\n name: \"router-appliance\",\n zone: \"us-central1-a\",\n machineType: \"e2-medium\",\n canIpForward: true,\n bootDisk: {\n initializeParams: {\n image: \"debian-cloud/debian-11\",\n },\n },\n networkInterfaces: [{\n networkIp: addrPeer.address,\n subnetwork: subnetwork.selfLink,\n }],\n});\nconst hub = new gcp.networkconnectivity.Hub(\"hub\", {name: \"my-router-hub\"});\nconst spoke = new gcp.networkconnectivity.Spoke(\"spoke\", {\n name: \"my-router-spoke\",\n location: subnetwork.region,\n hub: hub.id,\n linkedRouterApplianceInstances: {\n instances: [{\n virtualMachine: instance.selfLink,\n ipAddress: addrPeer.address,\n }],\n siteToSiteDataTransfer: false,\n },\n});\nconst router = new gcp.compute.Router(\"router\", {\n name: \"my-router-router\",\n region: subnetwork.region,\n network: network.selfLink,\n bgp: {\n asn: 64514,\n },\n});\nconst interfaceRedundant = new gcp.compute.RouterInterface(\"interface_redundant\", {\n name: \"my-router-intf-red\",\n region: router.region,\n router: router.name,\n subnetwork: subnetwork.selfLink,\n privateIpAddress: addrIntfRedundant.address,\n});\nconst _interface = new gcp.compute.RouterInterface(\"interface\", {\n name: \"my-router-intf\",\n region: router.region,\n router: router.name,\n subnetwork: subnetwork.selfLink,\n privateIpAddress: addrIntf.address,\n redundantInterface: interfaceRedundant.name,\n});\nconst peer = new gcp.compute.RouterPeer(\"peer\", {\n name: \"my-router-peer\",\n router: router.name,\n region: router.region,\n \"interface\": _interface.name,\n routerApplianceInstance: instance.selfLink,\n peerAsn: 65513,\n peerIpAddress: addrPeer.address,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n name=\"my-router-net\",\n auto_create_subnetworks=False)\nsubnetwork = gcp.compute.Subnetwork(\"subnetwork\",\n name=\"my-router-sub\",\n network=network.self_link,\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\")\naddr_intf = gcp.compute.Address(\"addr_intf\",\n name=\"my-router-addr-intf\",\n region=subnetwork.region,\n subnetwork=subnetwork.id,\n address_type=\"INTERNAL\")\naddr_intf_redundant = gcp.compute.Address(\"addr_intf_redundant\",\n name=\"my-router-addr-intf-red\",\n region=subnetwork.region,\n subnetwork=subnetwork.id,\n address_type=\"INTERNAL\")\naddr_peer = gcp.compute.Address(\"addr_peer\",\n name=\"my-router-addr-peer\",\n region=subnetwork.region,\n subnetwork=subnetwork.id,\n address_type=\"INTERNAL\")\ninstance = gcp.compute.Instance(\"instance\",\n name=\"router-appliance\",\n zone=\"us-central1-a\",\n machine_type=\"e2-medium\",\n can_ip_forward=True,\n boot_disk={\n \"initialize_params\": {\n \"image\": \"debian-cloud/debian-11\",\n },\n },\n network_interfaces=[{\n \"network_ip\": addr_peer.address,\n \"subnetwork\": subnetwork.self_link,\n }])\nhub = gcp.networkconnectivity.Hub(\"hub\", name=\"my-router-hub\")\nspoke = gcp.networkconnectivity.Spoke(\"spoke\",\n name=\"my-router-spoke\",\n location=subnetwork.region,\n hub=hub.id,\n linked_router_appliance_instances={\n \"instances\": [{\n \"virtual_machine\": instance.self_link,\n \"ip_address\": addr_peer.address,\n }],\n \"site_to_site_data_transfer\": False,\n })\nrouter = gcp.compute.Router(\"router\",\n name=\"my-router-router\",\n region=subnetwork.region,\n network=network.self_link,\n bgp={\n \"asn\": 64514,\n })\ninterface_redundant = gcp.compute.RouterInterface(\"interface_redundant\",\n name=\"my-router-intf-red\",\n region=router.region,\n router=router.name,\n subnetwork=subnetwork.self_link,\n private_ip_address=addr_intf_redundant.address)\ninterface = gcp.compute.RouterInterface(\"interface\",\n name=\"my-router-intf\",\n region=router.region,\n router=router.name,\n subnetwork=subnetwork.self_link,\n private_ip_address=addr_intf.address,\n redundant_interface=interface_redundant.name)\npeer = gcp.compute.RouterPeer(\"peer\",\n name=\"my-router-peer\",\n router=router.name,\n region=router.region,\n interface=interface.name,\n router_appliance_instance=instance.self_link,\n peer_asn=65513,\n peer_ip_address=addr_peer.address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"my-router-net\",\n AutoCreateSubnetworks = false,\n });\n\n var subnetwork = new Gcp.Compute.Subnetwork(\"subnetwork\", new()\n {\n Name = \"my-router-sub\",\n Network = network.SelfLink,\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n });\n\n var addrIntf = new Gcp.Compute.Address(\"addr_intf\", new()\n {\n Name = \"my-router-addr-intf\",\n Region = subnetwork.Region,\n Subnetwork = subnetwork.Id,\n AddressType = \"INTERNAL\",\n });\n\n var addrIntfRedundant = new Gcp.Compute.Address(\"addr_intf_redundant\", new()\n {\n Name = \"my-router-addr-intf-red\",\n Region = subnetwork.Region,\n Subnetwork = subnetwork.Id,\n AddressType = \"INTERNAL\",\n });\n\n var addrPeer = new Gcp.Compute.Address(\"addr_peer\", new()\n {\n Name = \"my-router-addr-peer\",\n Region = subnetwork.Region,\n Subnetwork = subnetwork.Id,\n AddressType = \"INTERNAL\",\n });\n\n var instance = new Gcp.Compute.Instance(\"instance\", new()\n {\n Name = \"router-appliance\",\n Zone = \"us-central1-a\",\n MachineType = \"e2-medium\",\n CanIpForward = true,\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"debian-cloud/debian-11\",\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n NetworkIp = addrPeer.IPAddress,\n Subnetwork = subnetwork.SelfLink,\n },\n },\n });\n\n var hub = new Gcp.NetworkConnectivity.Hub(\"hub\", new()\n {\n Name = \"my-router-hub\",\n });\n\n var spoke = new Gcp.NetworkConnectivity.Spoke(\"spoke\", new()\n {\n Name = \"my-router-spoke\",\n Location = subnetwork.Region,\n Hub = hub.Id,\n LinkedRouterApplianceInstances = new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesArgs\n {\n Instances = new[]\n {\n new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesInstanceArgs\n {\n VirtualMachine = instance.SelfLink,\n IpAddress = addrPeer.IPAddress,\n },\n },\n SiteToSiteDataTransfer = false,\n },\n });\n\n var router = new Gcp.Compute.Router(\"router\", new()\n {\n Name = \"my-router-router\",\n Region = subnetwork.Region,\n Network = network.SelfLink,\n Bgp = new Gcp.Compute.Inputs.RouterBgpArgs\n {\n Asn = 64514,\n },\n });\n\n var interfaceRedundant = new Gcp.Compute.RouterInterface(\"interface_redundant\", new()\n {\n Name = \"my-router-intf-red\",\n Region = router.Region,\n Router = router.Name,\n Subnetwork = subnetwork.SelfLink,\n PrivateIpAddress = addrIntfRedundant.IPAddress,\n });\n\n var @interface = new Gcp.Compute.RouterInterface(\"interface\", new()\n {\n Name = \"my-router-intf\",\n Region = router.Region,\n Router = router.Name,\n Subnetwork = subnetwork.SelfLink,\n PrivateIpAddress = addrIntf.IPAddress,\n RedundantInterface = interfaceRedundant.Name,\n });\n\n var peer = new Gcp.Compute.RouterPeer(\"peer\", new()\n {\n Name = \"my-router-peer\",\n Router = router.Name,\n Region = router.Region,\n Interface = @interface.Name,\n RouterApplianceInstance = instance.SelfLink,\n PeerAsn = 65513,\n PeerIpAddress = addrPeer.IPAddress,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\nName: pulumi.String(\"my-router-net\"),\nAutoCreateSubnetworks: pulumi.Bool(false),\n})\nif err != nil {\nreturn err\n}\nsubnetwork, err := compute.NewSubnetwork(ctx, \"subnetwork\", \u0026compute.SubnetworkArgs{\nName: pulumi.String(\"my-router-sub\"),\nNetwork: network.SelfLink,\nIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\nRegion: pulumi.String(\"us-central1\"),\n})\nif err != nil {\nreturn err\n}\naddrIntf, err := compute.NewAddress(ctx, \"addr_intf\", \u0026compute.AddressArgs{\nName: pulumi.String(\"my-router-addr-intf\"),\nRegion: subnetwork.Region,\nSubnetwork: subnetwork.ID(),\nAddressType: pulumi.String(\"INTERNAL\"),\n})\nif err != nil {\nreturn err\n}\naddrIntfRedundant, err := compute.NewAddress(ctx, \"addr_intf_redundant\", \u0026compute.AddressArgs{\nName: pulumi.String(\"my-router-addr-intf-red\"),\nRegion: subnetwork.Region,\nSubnetwork: subnetwork.ID(),\nAddressType: pulumi.String(\"INTERNAL\"),\n})\nif err != nil {\nreturn err\n}\naddrPeer, err := compute.NewAddress(ctx, \"addr_peer\", \u0026compute.AddressArgs{\nName: pulumi.String(\"my-router-addr-peer\"),\nRegion: subnetwork.Region,\nSubnetwork: subnetwork.ID(),\nAddressType: pulumi.String(\"INTERNAL\"),\n})\nif err != nil {\nreturn err\n}\ninstance, err := compute.NewInstance(ctx, \"instance\", \u0026compute.InstanceArgs{\nName: pulumi.String(\"router-appliance\"),\nZone: pulumi.String(\"us-central1-a\"),\nMachineType: pulumi.String(\"e2-medium\"),\nCanIpForward: pulumi.Bool(true),\nBootDisk: \u0026compute.InstanceBootDiskArgs{\nInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\nImage: pulumi.String(\"debian-cloud/debian-11\"),\n},\n},\nNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\u0026compute.InstanceNetworkInterfaceArgs{\nNetworkIp: addrPeer.Address,\nSubnetwork: subnetwork.SelfLink,\n},\n},\n})\nif err != nil {\nreturn err\n}\nhub, err := networkconnectivity.NewHub(ctx, \"hub\", \u0026networkconnectivity.HubArgs{\nName: pulumi.String(\"my-router-hub\"),\n})\nif err != nil {\nreturn err\n}\n_, err = networkconnectivity.NewSpoke(ctx, \"spoke\", \u0026networkconnectivity.SpokeArgs{\nName: pulumi.String(\"my-router-spoke\"),\nLocation: subnetwork.Region,\nHub: hub.ID(),\nLinkedRouterApplianceInstances: \u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesArgs{\nInstances: networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArray{\n\u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArgs{\nVirtualMachine: instance.SelfLink,\nIpAddress: addrPeer.Address,\n},\n},\nSiteToSiteDataTransfer: pulumi.Bool(false),\n},\n})\nif err != nil {\nreturn err\n}\nrouter, err := compute.NewRouter(ctx, \"router\", \u0026compute.RouterArgs{\nName: pulumi.String(\"my-router-router\"),\nRegion: subnetwork.Region,\nNetwork: network.SelfLink,\nBgp: \u0026compute.RouterBgpArgs{\nAsn: pulumi.Int(64514),\n},\n})\nif err != nil {\nreturn err\n}\ninterfaceRedundant, err := compute.NewRouterInterface(ctx, \"interface_redundant\", \u0026compute.RouterInterfaceArgs{\nName: pulumi.String(\"my-router-intf-red\"),\nRegion: router.Region,\nRouter: router.Name,\nSubnetwork: subnetwork.SelfLink,\nPrivateIpAddress: addrIntfRedundant.Address,\n})\nif err != nil {\nreturn err\n}\ninterface, err := compute.NewRouterInterface(ctx, \"interface\", \u0026compute.RouterInterfaceArgs{\nName: pulumi.String(\"my-router-intf\"),\nRegion: router.Region,\nRouter: router.Name,\nSubnetwork: subnetwork.SelfLink,\nPrivateIpAddress: addrIntf.Address,\nRedundantInterface: interfaceRedundant.Name,\n})\nif err != nil {\nreturn err\n}\n_, err = compute.NewRouterPeer(ctx, \"peer\", \u0026compute.RouterPeerArgs{\nName: pulumi.String(\"my-router-peer\"),\nRouter: router.Name,\nRegion: router.Region,\nInterface: interface.Name,\nRouterApplianceInstance: instance.SelfLink,\nPeerAsn: pulumi.Int(65513),\nPeerIpAddress: addrPeer.Address,\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport com.pulumi.gcp.networkconnectivity.Spoke;\nimport com.pulumi.gcp.networkconnectivity.SpokeArgs;\nimport com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedRouterApplianceInstancesArgs;\nimport com.pulumi.gcp.compute.Router;\nimport com.pulumi.gcp.compute.RouterArgs;\nimport com.pulumi.gcp.compute.inputs.RouterBgpArgs;\nimport com.pulumi.gcp.compute.RouterInterface;\nimport com.pulumi.gcp.compute.RouterInterfaceArgs;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"my-router-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnetwork = new Subnetwork(\"subnetwork\", SubnetworkArgs.builder()\n .name(\"my-router-sub\")\n .network(network.selfLink())\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .build());\n\n var addrIntf = new Address(\"addrIntf\", AddressArgs.builder()\n .name(\"my-router-addr-intf\")\n .region(subnetwork.region())\n .subnetwork(subnetwork.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var addrIntfRedundant = new Address(\"addrIntfRedundant\", AddressArgs.builder()\n .name(\"my-router-addr-intf-red\")\n .region(subnetwork.region())\n .subnetwork(subnetwork.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var addrPeer = new Address(\"addrPeer\", AddressArgs.builder()\n .name(\"my-router-addr-peer\")\n .region(subnetwork.region())\n .subnetwork(subnetwork.id())\n .addressType(\"INTERNAL\")\n .build());\n\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"router-appliance\")\n .zone(\"us-central1-a\")\n .machineType(\"e2-medium\")\n .canIpForward(true)\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"debian-cloud/debian-11\")\n .build())\n .build())\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .networkIp(addrPeer.address())\n .subnetwork(subnetwork.selfLink())\n .build())\n .build());\n\n var hub = new Hub(\"hub\", HubArgs.builder()\n .name(\"my-router-hub\")\n .build());\n\n var spoke = new Spoke(\"spoke\", SpokeArgs.builder()\n .name(\"my-router-spoke\")\n .location(subnetwork.region())\n .hub(hub.id())\n .linkedRouterApplianceInstances(SpokeLinkedRouterApplianceInstancesArgs.builder()\n .instances(SpokeLinkedRouterApplianceInstancesInstanceArgs.builder()\n .virtualMachine(instance.selfLink())\n .ipAddress(addrPeer.address())\n .build())\n .siteToSiteDataTransfer(false)\n .build())\n .build());\n\n var router = new Router(\"router\", RouterArgs.builder()\n .name(\"my-router-router\")\n .region(subnetwork.region())\n .network(network.selfLink())\n .bgp(RouterBgpArgs.builder()\n .asn(64514)\n .build())\n .build());\n\n var interfaceRedundant = new RouterInterface(\"interfaceRedundant\", RouterInterfaceArgs.builder()\n .name(\"my-router-intf-red\")\n .region(router.region())\n .router(router.name())\n .subnetwork(subnetwork.selfLink())\n .privateIpAddress(addrIntfRedundant.address())\n .build());\n\n var interface_ = new RouterInterface(\"interface\", RouterInterfaceArgs.builder()\n .name(\"my-router-intf\")\n .region(router.region())\n .router(router.name())\n .subnetwork(subnetwork.selfLink())\n .privateIpAddress(addrIntf.address())\n .redundantInterface(interfaceRedundant.name())\n .build());\n\n var peer = new RouterPeer(\"peer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(router.name())\n .region(router.region())\n .interface_(interface_.name())\n .routerApplianceInstance(instance.selfLink())\n .peerAsn(65513)\n .peerIpAddress(addrPeer.address())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n name: my-router-net\n autoCreateSubnetworks: false\n subnetwork:\n type: gcp:compute:Subnetwork\n properties:\n name: my-router-sub\n network: ${network.selfLink}\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n addrIntf:\n type: gcp:compute:Address\n name: addr_intf\n properties:\n name: my-router-addr-intf\n region: ${subnetwork.region}\n subnetwork: ${subnetwork.id}\n addressType: INTERNAL\n addrIntfRedundant:\n type: gcp:compute:Address\n name: addr_intf_redundant\n properties:\n name: my-router-addr-intf-red\n region: ${subnetwork.region}\n subnetwork: ${subnetwork.id}\n addressType: INTERNAL\n addrPeer:\n type: gcp:compute:Address\n name: addr_peer\n properties:\n name: my-router-addr-peer\n region: ${subnetwork.region}\n subnetwork: ${subnetwork.id}\n addressType: INTERNAL\n instance:\n type: gcp:compute:Instance\n properties:\n name: router-appliance\n zone: us-central1-a\n machineType: e2-medium\n canIpForward: true\n bootDisk:\n initializeParams:\n image: debian-cloud/debian-11\n networkInterfaces:\n - networkIp: ${addrPeer.address}\n subnetwork: ${subnetwork.selfLink}\n hub:\n type: gcp:networkconnectivity:Hub\n properties:\n name: my-router-hub\n spoke:\n type: gcp:networkconnectivity:Spoke\n properties:\n name: my-router-spoke\n location: ${subnetwork.region}\n hub: ${hub.id}\n linkedRouterApplianceInstances:\n instances:\n - virtualMachine: ${instance.selfLink}\n ipAddress: ${addrPeer.address}\n siteToSiteDataTransfer: false\n router:\n type: gcp:compute:Router\n properties:\n name: my-router-router\n region: ${subnetwork.region}\n network: ${network.selfLink}\n bgp:\n asn: 64514\n interfaceRedundant:\n type: gcp:compute:RouterInterface\n name: interface_redundant\n properties:\n name: my-router-intf-red\n region: ${router.region}\n router: ${router.name}\n subnetwork: ${subnetwork.selfLink}\n privateIpAddress: ${addrIntfRedundant.address}\n interface:\n type: gcp:compute:RouterInterface\n properties:\n name: my-router-intf\n region: ${router.region}\n router: ${router.name}\n subnetwork: ${subnetwork.selfLink}\n privateIpAddress: ${addrIntf.address}\n redundantInterface: ${interfaceRedundant.name}\n peer:\n type: gcp:compute:RouterPeer\n properties:\n name: my-router-peer\n router: ${router.name}\n region: ${router.region}\n interface: ${interface.name}\n routerApplianceInstance: ${instance.selfLink}\n peerAsn: 65513\n peerIpAddress: ${addrPeer.address}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Router Peer Md5 Authentication Key\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst foobar = new gcp.compute.RouterPeer(\"foobar\", {\n name: \"%s-peer\",\n router: foobarGoogleComputeRouter.name,\n region: foobarGoogleComputeRouter.region,\n peerAsn: 65515,\n advertisedRoutePriority: 100,\n \"interface\": foobarGoogleComputeRouterInterface.name,\n peerIpAddress: \"169.254.3.2\",\n md5AuthenticationKey: {\n name: \"%s-peer-key\",\n key: \"%s-peer-key-value\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfoobar = gcp.compute.RouterPeer(\"foobar\",\n name=\"%s-peer\",\n router=foobar_google_compute_router[\"name\"],\n region=foobar_google_compute_router[\"region\"],\n peer_asn=65515,\n advertised_route_priority=100,\n interface=foobar_google_compute_router_interface[\"name\"],\n peer_ip_address=\"169.254.3.2\",\n md5_authentication_key={\n \"name\": \"%s-peer-key\",\n \"key\": \"%s-peer-key-value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foobar = new Gcp.Compute.RouterPeer(\"foobar\", new()\n {\n Name = \"%s-peer\",\n Router = foobarGoogleComputeRouter.Name,\n Region = foobarGoogleComputeRouter.Region,\n PeerAsn = 65515,\n AdvertisedRoutePriority = 100,\n Interface = foobarGoogleComputeRouterInterface.Name,\n PeerIpAddress = \"169.254.3.2\",\n Md5AuthenticationKey = new Gcp.Compute.Inputs.RouterPeerMd5AuthenticationKeyArgs\n {\n Name = \"%s-peer-key\",\n Key = \"%s-peer-key-value\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := compute.NewRouterPeer(ctx, \"foobar\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"%s-peer\"),\n\t\t\tRouter: pulumi.Any(foobarGoogleComputeRouter.Name),\n\t\t\tRegion: pulumi.Any(foobarGoogleComputeRouter.Region),\n\t\t\tPeerAsn: pulumi.Int(65515),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: pulumi.Any(foobarGoogleComputeRouterInterface.Name),\n\t\t\tPeerIpAddress: pulumi.String(\"169.254.3.2\"),\n\t\t\tMd5AuthenticationKey: \u0026compute.RouterPeerMd5AuthenticationKeyArgs{\n\t\t\t\tName: pulumi.String(\"%s-peer-key\"),\n\t\t\t\tKey: pulumi.String(\"%s-peer-key-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport com.pulumi.gcp.compute.inputs.RouterPeerMd5AuthenticationKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foobar = new RouterPeer(\"foobar\", RouterPeerArgs.builder()\n .name(\"%s-peer\")\n .router(foobarGoogleComputeRouter.name())\n .region(foobarGoogleComputeRouter.region())\n .peerAsn(65515)\n .advertisedRoutePriority(100)\n .interface_(foobarGoogleComputeRouterInterface.name())\n .peerIpAddress(\"169.254.3.2\")\n .md5AuthenticationKey(RouterPeerMd5AuthenticationKeyArgs.builder()\n .name(\"%s-peer-key\")\n .key(\"%s-peer-key-value\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foobar:\n type: gcp:compute:RouterPeer\n properties:\n name: '%s-peer'\n router: ${foobarGoogleComputeRouter.name}\n region: ${foobarGoogleComputeRouter.region}\n peerAsn: 65515\n advertisedRoutePriority: 100\n interface: ${foobarGoogleComputeRouterInterface.name}\n peerIpAddress: 169.254.3.2\n md5AuthenticationKey:\n name: '%s-peer-key'\n key: '%s-peer-key-value'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Router Peer Export And Import Policies\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n name: \"my-router-net\",\n autoCreateSubnetworks: false,\n});\nconst subnetwork = new gcp.compute.Subnetwork(\"subnetwork\", {\n name: \"my-router-subnet\",\n network: network.selfLink,\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n});\nconst address = new gcp.compute.Address(\"address\", {\n name: \"my-router\",\n region: subnetwork.region,\n});\nconst vpnGateway = new gcp.compute.HaVpnGateway(\"vpn_gateway\", {\n name: \"my-router-gateway\",\n network: network.selfLink,\n region: subnetwork.region,\n});\nconst externalGateway = new gcp.compute.ExternalVpnGateway(\"external_gateway\", {\n name: \"my-router-external-gateway\",\n redundancyType: \"SINGLE_IP_INTERNALLY_REDUNDANT\",\n description: \"An externally managed VPN gateway\",\n interfaces: [{\n id: 0,\n ipAddress: \"8.8.8.8\",\n }],\n});\nconst router = new gcp.compute.Router(\"router\", {\n name: \"my-router\",\n region: subnetwork.region,\n network: network.selfLink,\n bgp: {\n asn: 64514,\n },\n});\nconst vpnTunnel = new gcp.compute.VPNTunnel(\"vpn_tunnel\", {\n name: \"my-router\",\n region: subnetwork.region,\n vpnGateway: vpnGateway.id,\n peerExternalGateway: externalGateway.id,\n peerExternalGatewayInterface: 0,\n sharedSecret: \"unguessable\",\n router: router.name,\n vpnGatewayInterface: 0,\n});\nconst routerInterface = new gcp.compute.RouterInterface(\"router_interface\", {\n name: \"my-router\",\n router: router.name,\n region: router.region,\n vpnTunnel: vpnTunnel.name,\n});\nconst rp_export = new gcp.compute.RouterRoutePolicy(\"rp-export\", {\n name: \"my-router-rp-export\",\n router: router.name,\n region: router.region,\n type: \"ROUTE_POLICY_TYPE_EXPORT\",\n terms: [{\n priority: 2,\n match: {\n expression: \"destination == '10.0.0.0/12'\",\n title: \"export_expression\",\n description: \"acceptance expression for export\",\n },\n actions: [{\n expression: \"accept()\",\n }],\n }],\n}, {\n dependsOn: [routerInterface],\n});\nconst rp_import = new gcp.compute.RouterRoutePolicy(\"rp-import\", {\n name: \"my-router-rp-import\",\n router: router.name,\n region: router.region,\n type: \"ROUTE_POLICY_TYPE_IMPORT\",\n terms: [{\n priority: 1,\n match: {\n expression: \"destination == '10.0.0.0/12'\",\n title: \"import_expression\",\n description: \"acceptance expression for import\",\n },\n actions: [{\n expression: \"accept()\",\n }],\n }],\n}, {\n dependsOn: [\n routerInterface,\n rp_export,\n ],\n});\nconst routerPeer = new gcp.compute.RouterPeer(\"router_peer\", {\n name: \"my-router-peer\",\n router: router.name,\n region: router.region,\n peerAsn: 65515,\n advertisedRoutePriority: 100,\n \"interface\": routerInterface.name,\n md5AuthenticationKey: {\n name: \"my-router-peer-key\",\n key: \"my-router-peer-key-value\",\n },\n importPolicies: [rp_import.name],\n exportPolicies: [rp_export.name],\n}, {\n dependsOn: [\n rp_export,\n rp_import,\n routerInterface,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n name=\"my-router-net\",\n auto_create_subnetworks=False)\nsubnetwork = gcp.compute.Subnetwork(\"subnetwork\",\n name=\"my-router-subnet\",\n network=network.self_link,\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\")\naddress = gcp.compute.Address(\"address\",\n name=\"my-router\",\n region=subnetwork.region)\nvpn_gateway = gcp.compute.HaVpnGateway(\"vpn_gateway\",\n name=\"my-router-gateway\",\n network=network.self_link,\n region=subnetwork.region)\nexternal_gateway = gcp.compute.ExternalVpnGateway(\"external_gateway\",\n name=\"my-router-external-gateway\",\n redundancy_type=\"SINGLE_IP_INTERNALLY_REDUNDANT\",\n description=\"An externally managed VPN gateway\",\n interfaces=[{\n \"id\": 0,\n \"ip_address\": \"8.8.8.8\",\n }])\nrouter = gcp.compute.Router(\"router\",\n name=\"my-router\",\n region=subnetwork.region,\n network=network.self_link,\n bgp={\n \"asn\": 64514,\n })\nvpn_tunnel = gcp.compute.VPNTunnel(\"vpn_tunnel\",\n name=\"my-router\",\n region=subnetwork.region,\n vpn_gateway=vpn_gateway.id,\n peer_external_gateway=external_gateway.id,\n peer_external_gateway_interface=0,\n shared_secret=\"unguessable\",\n router=router.name,\n vpn_gateway_interface=0)\nrouter_interface = gcp.compute.RouterInterface(\"router_interface\",\n name=\"my-router\",\n router=router.name,\n region=router.region,\n vpn_tunnel=vpn_tunnel.name)\nrp_export = gcp.compute.RouterRoutePolicy(\"rp-export\",\n name=\"my-router-rp-export\",\n router=router.name,\n region=router.region,\n type=\"ROUTE_POLICY_TYPE_EXPORT\",\n terms=[{\n \"priority\": 2,\n \"match\": {\n \"expression\": \"destination == '10.0.0.0/12'\",\n \"title\": \"export_expression\",\n \"description\": \"acceptance expression for export\",\n },\n \"actions\": [{\n \"expression\": \"accept()\",\n }],\n }],\n opts = pulumi.ResourceOptions(depends_on=[router_interface]))\nrp_import = gcp.compute.RouterRoutePolicy(\"rp-import\",\n name=\"my-router-rp-import\",\n router=router.name,\n region=router.region,\n type=\"ROUTE_POLICY_TYPE_IMPORT\",\n terms=[{\n \"priority\": 1,\n \"match\": {\n \"expression\": \"destination == '10.0.0.0/12'\",\n \"title\": \"import_expression\",\n \"description\": \"acceptance expression for import\",\n },\n \"actions\": [{\n \"expression\": \"accept()\",\n }],\n }],\n opts = pulumi.ResourceOptions(depends_on=[\n router_interface,\n rp_export,\n ]))\nrouter_peer = gcp.compute.RouterPeer(\"router_peer\",\n name=\"my-router-peer\",\n router=router.name,\n region=router.region,\n peer_asn=65515,\n advertised_route_priority=100,\n interface=router_interface.name,\n md5_authentication_key={\n \"name\": \"my-router-peer-key\",\n \"key\": \"my-router-peer-key-value\",\n },\n import_policies=[rp_import.name],\n export_policies=[rp_export.name],\n opts = pulumi.ResourceOptions(depends_on=[\n rp_export,\n rp_import,\n router_interface,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"my-router-net\",\n AutoCreateSubnetworks = false,\n });\n\n var subnetwork = new Gcp.Compute.Subnetwork(\"subnetwork\", new()\n {\n Name = \"my-router-subnet\",\n Network = network.SelfLink,\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n });\n\n var address = new Gcp.Compute.Address(\"address\", new()\n {\n Name = \"my-router\",\n Region = subnetwork.Region,\n });\n\n var vpnGateway = new Gcp.Compute.HaVpnGateway(\"vpn_gateway\", new()\n {\n Name = \"my-router-gateway\",\n Network = network.SelfLink,\n Region = subnetwork.Region,\n });\n\n var externalGateway = new Gcp.Compute.ExternalVpnGateway(\"external_gateway\", new()\n {\n Name = \"my-router-external-gateway\",\n RedundancyType = \"SINGLE_IP_INTERNALLY_REDUNDANT\",\n Description = \"An externally managed VPN gateway\",\n Interfaces = new[]\n {\n new Gcp.Compute.Inputs.ExternalVpnGatewayInterfaceArgs\n {\n Id = 0,\n IpAddress = \"8.8.8.8\",\n },\n },\n });\n\n var router = new Gcp.Compute.Router(\"router\", new()\n {\n Name = \"my-router\",\n Region = subnetwork.Region,\n Network = network.SelfLink,\n Bgp = new Gcp.Compute.Inputs.RouterBgpArgs\n {\n Asn = 64514,\n },\n });\n\n var vpnTunnel = new Gcp.Compute.VPNTunnel(\"vpn_tunnel\", new()\n {\n Name = \"my-router\",\n Region = subnetwork.Region,\n VpnGateway = vpnGateway.Id,\n PeerExternalGateway = externalGateway.Id,\n PeerExternalGatewayInterface = 0,\n SharedSecret = \"unguessable\",\n Router = router.Name,\n VpnGatewayInterface = 0,\n });\n\n var routerInterface = new Gcp.Compute.RouterInterface(\"router_interface\", new()\n {\n Name = \"my-router\",\n Router = router.Name,\n Region = router.Region,\n VpnTunnel = vpnTunnel.Name,\n });\n\n var rp_export = new Gcp.Compute.RouterRoutePolicy(\"rp-export\", new()\n {\n Name = \"my-router-rp-export\",\n Router = router.Name,\n Region = router.Region,\n Type = \"ROUTE_POLICY_TYPE_EXPORT\",\n Terms = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs\n {\n Priority = 2,\n Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs\n {\n Expression = \"destination == '10.0.0.0/12'\",\n Title = \"export_expression\",\n Description = \"acceptance expression for export\",\n },\n Actions = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs\n {\n Expression = \"accept()\",\n },\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n routerInterface,\n },\n });\n\n var rp_import = new Gcp.Compute.RouterRoutePolicy(\"rp-import\", new()\n {\n Name = \"my-router-rp-import\",\n Router = router.Name,\n Region = router.Region,\n Type = \"ROUTE_POLICY_TYPE_IMPORT\",\n Terms = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs\n {\n Priority = 1,\n Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs\n {\n Expression = \"destination == '10.0.0.0/12'\",\n Title = \"import_expression\",\n Description = \"acceptance expression for import\",\n },\n Actions = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs\n {\n Expression = \"accept()\",\n },\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n routerInterface,\n rp_export,\n },\n });\n\n var routerPeer = new Gcp.Compute.RouterPeer(\"router_peer\", new()\n {\n Name = \"my-router-peer\",\n Router = router.Name,\n Region = router.Region,\n PeerAsn = 65515,\n AdvertisedRoutePriority = 100,\n Interface = routerInterface.Name,\n Md5AuthenticationKey = new Gcp.Compute.Inputs.RouterPeerMd5AuthenticationKeyArgs\n {\n Name = \"my-router-peer-key\",\n Key = \"my-router-peer-key-value\",\n },\n ImportPolicies = new[]\n {\n rp_import.Name,\n },\n ExportPolicies = new[]\n {\n rp_export.Name,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n rp_export,\n rp_import,\n routerInterface,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-router-net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnetwork, err := compute.NewSubnetwork(ctx, \"subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-router-subnet\"),\n\t\t\tNetwork: network.SelfLink,\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewAddress(ctx, \"address\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"my-router\"),\n\t\t\tRegion: subnetwork.Region,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpnGateway, err := compute.NewHaVpnGateway(ctx, \"vpn_gateway\", \u0026compute.HaVpnGatewayArgs{\n\t\t\tName: pulumi.String(\"my-router-gateway\"),\n\t\t\tNetwork: network.SelfLink,\n\t\t\tRegion: subnetwork.Region,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texternalGateway, err := compute.NewExternalVpnGateway(ctx, \"external_gateway\", \u0026compute.ExternalVpnGatewayArgs{\n\t\t\tName: pulumi.String(\"my-router-external-gateway\"),\n\t\t\tRedundancyType: pulumi.String(\"SINGLE_IP_INTERNALLY_REDUNDANT\"),\n\t\t\tDescription: pulumi.String(\"An externally managed VPN gateway\"),\n\t\t\tInterfaces: compute.ExternalVpnGatewayInterfaceArray{\n\t\t\t\t\u0026compute.ExternalVpnGatewayInterfaceArgs{\n\t\t\t\t\tId: pulumi.Int(0),\n\t\t\t\t\tIpAddress: pulumi.String(\"8.8.8.8\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter, err := compute.NewRouter(ctx, \"router\", \u0026compute.RouterArgs{\n\t\t\tName: pulumi.String(\"my-router\"),\n\t\t\tRegion: subnetwork.Region,\n\t\t\tNetwork: network.SelfLink,\n\t\t\tBgp: \u0026compute.RouterBgpArgs{\n\t\t\t\tAsn: pulumi.Int(64514),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvpnTunnel, err := compute.NewVPNTunnel(ctx, \"vpn_tunnel\", \u0026compute.VPNTunnelArgs{\n\t\t\tName: pulumi.String(\"my-router\"),\n\t\t\tRegion: subnetwork.Region,\n\t\t\tVpnGateway: vpnGateway.ID(),\n\t\t\tPeerExternalGateway: externalGateway.ID(),\n\t\t\tPeerExternalGatewayInterface: pulumi.Int(0),\n\t\t\tSharedSecret: pulumi.String(\"unguessable\"),\n\t\t\tRouter: router.Name,\n\t\t\tVpnGatewayInterface: pulumi.Int(0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouterInterface, err := compute.NewRouterInterface(ctx, \"router_interface\", \u0026compute.RouterInterfaceArgs{\n\t\t\tName: pulumi.String(\"my-router\"),\n\t\t\tRouter: router.Name,\n\t\t\tRegion: router.Region,\n\t\t\tVpnTunnel: vpnTunnel.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRouterRoutePolicy(ctx, \"rp-export\", \u0026compute.RouterRoutePolicyArgs{\n\t\t\tName: pulumi.String(\"my-router-rp-export\"),\n\t\t\tRouter: router.Name,\n\t\t\tRegion: router.Region,\n\t\t\tType: pulumi.String(\"ROUTE_POLICY_TYPE_EXPORT\"),\n\t\t\tTerms: compute.RouterRoutePolicyTermArray{\n\t\t\t\t\u0026compute.RouterRoutePolicyTermArgs{\n\t\t\t\t\tPriority: pulumi.Int(2),\n\t\t\t\t\tMatch: \u0026compute.RouterRoutePolicyTermMatchArgs{\n\t\t\t\t\t\tExpression: pulumi.String(\"destination == '10.0.0.0/12'\"),\n\t\t\t\t\t\tTitle: pulumi.String(\"export_expression\"),\n\t\t\t\t\t\tDescription: pulumi.String(\"acceptance expression for export\"),\n\t\t\t\t\t},\n\t\t\t\t\tActions: compute.RouterRoutePolicyTermActionArray{\n\t\t\t\t\t\t\u0026compute.RouterRoutePolicyTermActionArgs{\n\t\t\t\t\t\t\tExpression: pulumi.String(\"accept()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trouterInterface,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRouterRoutePolicy(ctx, \"rp-import\", \u0026compute.RouterRoutePolicyArgs{\n\t\t\tName: pulumi.String(\"my-router-rp-import\"),\n\t\t\tRouter: router.Name,\n\t\t\tRegion: router.Region,\n\t\t\tType: pulumi.String(\"ROUTE_POLICY_TYPE_IMPORT\"),\n\t\t\tTerms: compute.RouterRoutePolicyTermArray{\n\t\t\t\t\u0026compute.RouterRoutePolicyTermArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tMatch: \u0026compute.RouterRoutePolicyTermMatchArgs{\n\t\t\t\t\t\tExpression: pulumi.String(\"destination == '10.0.0.0/12'\"),\n\t\t\t\t\t\tTitle: pulumi.String(\"import_expression\"),\n\t\t\t\t\t\tDescription: pulumi.String(\"acceptance expression for import\"),\n\t\t\t\t\t},\n\t\t\t\t\tActions: compute.RouterRoutePolicyTermActionArray{\n\t\t\t\t\t\t\u0026compute.RouterRoutePolicyTermActionArgs{\n\t\t\t\t\t\t\tExpression: pulumi.String(\"accept()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trouterInterface,\n\t\t\trp_export,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRouterPeer(ctx, \"router_peer\", \u0026compute.RouterPeerArgs{\n\t\t\tName: pulumi.String(\"my-router-peer\"),\n\t\t\tRouter: router.Name,\n\t\t\tRegion: router.Region,\n\t\t\tPeerAsn: pulumi.Int(65515),\n\t\t\tAdvertisedRoutePriority: pulumi.Int(100),\n\t\t\tInterface: routerInterface.Name,\n\t\t\tMd5AuthenticationKey: \u0026compute.RouterPeerMd5AuthenticationKeyArgs{\n\t\t\t\tName: pulumi.String(\"my-router-peer-key\"),\n\t\t\t\tKey: pulumi.String(\"my-router-peer-key-value\"),\n\t\t\t},\n\t\t\tImportPolicies: pulumi.StringArray{\n\t\t\t\trp_import.Name,\n\t\t\t},\n\t\t\tExportPolicies: pulumi.StringArray{\n\t\t\t\trp_export.Name,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trp_export,\n\t\t\trp_import,\n\t\t\trouterInterface,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.HaVpnGateway;\nimport com.pulumi.gcp.compute.HaVpnGatewayArgs;\nimport com.pulumi.gcp.compute.ExternalVpnGateway;\nimport com.pulumi.gcp.compute.ExternalVpnGatewayArgs;\nimport com.pulumi.gcp.compute.inputs.ExternalVpnGatewayInterfaceArgs;\nimport com.pulumi.gcp.compute.Router;\nimport com.pulumi.gcp.compute.RouterArgs;\nimport com.pulumi.gcp.compute.inputs.RouterBgpArgs;\nimport com.pulumi.gcp.compute.VPNTunnel;\nimport com.pulumi.gcp.compute.VPNTunnelArgs;\nimport com.pulumi.gcp.compute.RouterInterface;\nimport com.pulumi.gcp.compute.RouterInterfaceArgs;\nimport com.pulumi.gcp.compute.RouterRoutePolicy;\nimport com.pulumi.gcp.compute.RouterRoutePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs;\nimport com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermMatchArgs;\nimport com.pulumi.gcp.compute.RouterPeer;\nimport com.pulumi.gcp.compute.RouterPeerArgs;\nimport com.pulumi.gcp.compute.inputs.RouterPeerMd5AuthenticationKeyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"my-router-net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnetwork = new Subnetwork(\"subnetwork\", SubnetworkArgs.builder()\n .name(\"my-router-subnet\")\n .network(network.selfLink())\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .build());\n\n var address = new Address(\"address\", AddressArgs.builder()\n .name(\"my-router\")\n .region(subnetwork.region())\n .build());\n\n var vpnGateway = new HaVpnGateway(\"vpnGateway\", HaVpnGatewayArgs.builder()\n .name(\"my-router-gateway\")\n .network(network.selfLink())\n .region(subnetwork.region())\n .build());\n\n var externalGateway = new ExternalVpnGateway(\"externalGateway\", ExternalVpnGatewayArgs.builder()\n .name(\"my-router-external-gateway\")\n .redundancyType(\"SINGLE_IP_INTERNALLY_REDUNDANT\")\n .description(\"An externally managed VPN gateway\")\n .interfaces(ExternalVpnGatewayInterfaceArgs.builder()\n .id(0)\n .ipAddress(\"8.8.8.8\")\n .build())\n .build());\n\n var router = new Router(\"router\", RouterArgs.builder()\n .name(\"my-router\")\n .region(subnetwork.region())\n .network(network.selfLink())\n .bgp(RouterBgpArgs.builder()\n .asn(64514)\n .build())\n .build());\n\n var vpnTunnel = new VPNTunnel(\"vpnTunnel\", VPNTunnelArgs.builder()\n .name(\"my-router\")\n .region(subnetwork.region())\n .vpnGateway(vpnGateway.id())\n .peerExternalGateway(externalGateway.id())\n .peerExternalGatewayInterface(0)\n .sharedSecret(\"unguessable\")\n .router(router.name())\n .vpnGatewayInterface(0)\n .build());\n\n var routerInterface = new RouterInterface(\"routerInterface\", RouterInterfaceArgs.builder()\n .name(\"my-router\")\n .router(router.name())\n .region(router.region())\n .vpnTunnel(vpnTunnel.name())\n .build());\n\n var rp_export = new RouterRoutePolicy(\"rp-export\", RouterRoutePolicyArgs.builder()\n .name(\"my-router-rp-export\")\n .router(router.name())\n .region(router.region())\n .type(\"ROUTE_POLICY_TYPE_EXPORT\")\n .terms(RouterRoutePolicyTermArgs.builder()\n .priority(2)\n .match(RouterRoutePolicyTermMatchArgs.builder()\n .expression(\"destination == '10.0.0.0/12'\")\n .title(\"export_expression\")\n .description(\"acceptance expression for export\")\n .build())\n .actions(RouterRoutePolicyTermActionArgs.builder()\n .expression(\"accept()\")\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(routerInterface)\n .build());\n\n var rp_import = new RouterRoutePolicy(\"rp-import\", RouterRoutePolicyArgs.builder()\n .name(\"my-router-rp-import\")\n .router(router.name())\n .region(router.region())\n .type(\"ROUTE_POLICY_TYPE_IMPORT\")\n .terms(RouterRoutePolicyTermArgs.builder()\n .priority(1)\n .match(RouterRoutePolicyTermMatchArgs.builder()\n .expression(\"destination == '10.0.0.0/12'\")\n .title(\"import_expression\")\n .description(\"acceptance expression for import\")\n .build())\n .actions(RouterRoutePolicyTermActionArgs.builder()\n .expression(\"accept()\")\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n routerInterface,\n rp_export)\n .build());\n\n var routerPeer = new RouterPeer(\"routerPeer\", RouterPeerArgs.builder()\n .name(\"my-router-peer\")\n .router(router.name())\n .region(router.region())\n .peerAsn(65515)\n .advertisedRoutePriority(100)\n .interface_(routerInterface.name())\n .md5AuthenticationKey(RouterPeerMd5AuthenticationKeyArgs.builder()\n .name(\"my-router-peer-key\")\n .key(\"my-router-peer-key-value\")\n .build())\n .importPolicies(rp_import.name())\n .exportPolicies(rp_export.name())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n rp_export,\n rp_import,\n routerInterface)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n name: my-router-net\n autoCreateSubnetworks: false\n subnetwork:\n type: gcp:compute:Subnetwork\n properties:\n name: my-router-subnet\n network: ${network.selfLink}\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n address:\n type: gcp:compute:Address\n properties:\n name: my-router\n region: ${subnetwork.region}\n vpnGateway:\n type: gcp:compute:HaVpnGateway\n name: vpn_gateway\n properties:\n name: my-router-gateway\n network: ${network.selfLink}\n region: ${subnetwork.region}\n externalGateway:\n type: gcp:compute:ExternalVpnGateway\n name: external_gateway\n properties:\n name: my-router-external-gateway\n redundancyType: SINGLE_IP_INTERNALLY_REDUNDANT\n description: An externally managed VPN gateway\n interfaces:\n - id: 0\n ipAddress: 8.8.8.8\n router:\n type: gcp:compute:Router\n properties:\n name: my-router\n region: ${subnetwork.region}\n network: ${network.selfLink}\n bgp:\n asn: 64514\n vpnTunnel:\n type: gcp:compute:VPNTunnel\n name: vpn_tunnel\n properties:\n name: my-router\n region: ${subnetwork.region}\n vpnGateway: ${vpnGateway.id}\n peerExternalGateway: ${externalGateway.id}\n peerExternalGatewayInterface: 0\n sharedSecret: unguessable\n router: ${router.name}\n vpnGatewayInterface: 0\n routerInterface:\n type: gcp:compute:RouterInterface\n name: router_interface\n properties:\n name: my-router\n router: ${router.name}\n region: ${router.region}\n vpnTunnel: ${vpnTunnel.name}\n rp-export:\n type: gcp:compute:RouterRoutePolicy\n properties:\n name: my-router-rp-export\n router: ${router.name}\n region: ${router.region}\n type: ROUTE_POLICY_TYPE_EXPORT\n terms:\n - priority: 2\n match:\n expression: destination == '10.0.0.0/12'\n title: export_expression\n description: acceptance expression for export\n actions:\n - expression: accept()\n options:\n dependson:\n - ${routerInterface}\n rp-import:\n type: gcp:compute:RouterRoutePolicy\n properties:\n name: my-router-rp-import\n router: ${router.name}\n region: ${router.region}\n type: ROUTE_POLICY_TYPE_IMPORT\n terms:\n - priority: 1\n match:\n expression: destination == '10.0.0.0/12'\n title: import_expression\n description: acceptance expression for import\n actions:\n - expression: accept()\n options:\n dependson:\n - ${routerInterface}\n - ${[\"rp-export\"]}\n routerPeer:\n type: gcp:compute:RouterPeer\n name: router_peer\n properties:\n name: my-router-peer\n router: ${router.name}\n region: ${router.region}\n peerAsn: 65515\n advertisedRoutePriority: 100\n interface: ${routerInterface.name}\n md5AuthenticationKey:\n name: my-router-peer-key\n key: my-router-peer-key-value\n importPolicies:\n - ${[\"rp-import\"].name}\n exportPolicies:\n - ${[\"rp-export\"].name}\n options:\n dependson:\n - ${[\"rp-export\"]}\n - ${[\"rp-import\"]}\n - ${routerInterface}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouterBgpPeer can be imported using any of these accepted formats:\n\n* `projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}`\n\n* `{{project}}/{{region}}/{{router}}/{{name}}`\n\n* `{{region}}/{{router}}/{{name}}`\n\n* `{{router}}/{{name}}`\n\nWhen using the `pulumi import` command, RouterBgpPeer can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default projects/{{project}}/regions/{{region}}/routers/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default {{project}}/{{region}}/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default {{region}}/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerPeer:RouterPeer default {{router}}/{{name}}\n```\n\n", "properties": { "advertiseMode": { "type": "string", @@ -161969,6 +163358,17 @@ "$ref": "#/types/gcp:compute/RouterPeerBfd:RouterPeerBfd", "description": "BFD configuration for the BGP peering.\nStructure is documented below.\n" }, + "customLearnedIpRanges": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/RouterPeerCustomLearnedIpRange:RouterPeerCustomLearnedIpRange" + }, + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a\nsubnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.\n" + }, + "customLearnedRoutePriority": { + "type": "integer", + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route\nranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a\npriority of 100 to the ranges.\n" + }, "enable": { "type": "boolean", "description": "The status of the BGP peer connection. If set to false, any active session\nwith the peer is terminated and all associated routing information is removed.\nIf set to true, the peer connection can be established with routing information.\nThe default is true.\n" @@ -161981,6 +163381,20 @@ "type": "boolean", "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.\n" }, + "exportPolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "routers.list of export policies applied to this peer, in the order they must be evaluated.\nThe name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.\n" + }, + "importPolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "routers.list of import policies applied to this peer, in the order they must be evaluated.\nThe name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.\n" + }, "interface": { "type": "string", "description": "Name of the interface the BGP peer is associated with.\n" @@ -162086,6 +163500,17 @@ "$ref": "#/types/gcp:compute/RouterPeerBfd:RouterPeerBfd", "description": "BFD configuration for the BGP peering.\nStructure is documented below.\n" }, + "customLearnedIpRanges": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/RouterPeerCustomLearnedIpRange:RouterPeerCustomLearnedIpRange" + }, + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a\nsubnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.\n" + }, + "customLearnedRoutePriority": { + "type": "integer", + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route\nranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a\npriority of 100 to the ranges.\n" + }, "enable": { "type": "boolean", "description": "The status of the BGP peer connection. If set to false, any active session\nwith the peer is terminated and all associated routing information is removed.\nIf set to true, the peer connection can be established with routing information.\nThe default is true.\n" @@ -162098,6 +163523,20 @@ "type": "boolean", "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.\n" }, + "exportPolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "routers.list of export policies applied to this peer, in the order they must be evaluated.\nThe name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.\n" + }, + "importPolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "routers.list of import policies applied to this peer, in the order they must be evaluated.\nThe name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.\n" + }, "interface": { "type": "string", "description": "Name of the interface the BGP peer is associated with.\n", @@ -162194,6 +163633,17 @@ "$ref": "#/types/gcp:compute/RouterPeerBfd:RouterPeerBfd", "description": "BFD configuration for the BGP peering.\nStructure is documented below.\n" }, + "customLearnedIpRanges": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/RouterPeerCustomLearnedIpRange:RouterPeerCustomLearnedIpRange" + }, + "description": "The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a\nsubnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128.\n" + }, + "customLearnedRoutePriority": { + "type": "integer", + "description": "The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route\nranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a\npriority of 100 to the ranges.\n" + }, "enable": { "type": "boolean", "description": "The status of the BGP peer connection. If set to false, any active session\nwith the peer is terminated and all associated routing information is removed.\nIf set to true, the peer connection can be established with routing information.\nThe default is true.\n" @@ -162206,6 +163656,20 @@ "type": "boolean", "description": "Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.\n" }, + "exportPolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "routers.list of export policies applied to this peer, in the order they must be evaluated.\nThe name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type.\n" + }, + "importPolicies": { + "type": "array", + "items": { + "type": "string" + }, + "description": "routers.list of import policies applied to this peer, in the order they must be evaluated.\nThe name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type.\n" + }, "interface": { "type": "string", "description": "Name of the interface the BGP peer is associated with.\n", @@ -162275,6 +163739,127 @@ "type": "object" } }, + "gcp:compute/routerRoutePolicy:RouterRoutePolicy": { + "description": "## Example Usage\n\n### Router Route Policy Export\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst net = new gcp.compute.Network(\"net\", {\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst subnet = new gcp.compute.Subnetwork(\"subnet\", {\n name: \"my-subnetwork\",\n network: net.id,\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n});\nconst router = new gcp.compute.Router(\"router\", {\n name: \"my-router\",\n region: subnet.region,\n network: net.id,\n});\nconst rp_export = new gcp.compute.RouterRoutePolicy(\"rp-export\", {\n router: router.name,\n region: router.region,\n name: \"my-rp1\",\n type: \"ROUTE_POLICY_TYPE_EXPORT\",\n terms: [{\n priority: 1,\n match: {\n expression: \"destination == '10.0.0.0/12'\",\n },\n actions: [{\n expression: \"accept()\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnet = gcp.compute.Network(\"net\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nsubnet = gcp.compute.Subnetwork(\"subnet\",\n name=\"my-subnetwork\",\n network=net.id,\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\")\nrouter = gcp.compute.Router(\"router\",\n name=\"my-router\",\n region=subnet.region,\n network=net.id)\nrp_export = gcp.compute.RouterRoutePolicy(\"rp-export\",\n router=router.name,\n region=router.region,\n name=\"my-rp1\",\n type=\"ROUTE_POLICY_TYPE_EXPORT\",\n terms=[{\n \"priority\": 1,\n \"match\": {\n \"expression\": \"destination == '10.0.0.0/12'\",\n },\n \"actions\": [{\n \"expression\": \"accept()\",\n }],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var net = new Gcp.Compute.Network(\"net\", new()\n {\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var subnet = new Gcp.Compute.Subnetwork(\"subnet\", new()\n {\n Name = \"my-subnetwork\",\n Network = net.Id,\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n });\n\n var router = new Gcp.Compute.Router(\"router\", new()\n {\n Name = \"my-router\",\n Region = subnet.Region,\n Network = net.Id,\n });\n\n var rp_export = new Gcp.Compute.RouterRoutePolicy(\"rp-export\", new()\n {\n Router = router.Name,\n Region = router.Region,\n Name = \"my-rp1\",\n Type = \"ROUTE_POLICY_TYPE_EXPORT\",\n Terms = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs\n {\n Priority = 1,\n Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs\n {\n Expression = \"destination == '10.0.0.0/12'\",\n },\n Actions = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs\n {\n Expression = \"accept()\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnet, err := compute.NewNetwork(ctx, \"net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := compute.NewSubnetwork(ctx, \"subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tNetwork: net.ID(),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter, err := compute.NewRouter(ctx, \"router\", \u0026compute.RouterArgs{\n\t\t\tName: pulumi.String(\"my-router\"),\n\t\t\tRegion: subnet.Region,\n\t\t\tNetwork: net.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRouterRoutePolicy(ctx, \"rp-export\", \u0026compute.RouterRoutePolicyArgs{\n\t\t\tRouter: router.Name,\n\t\t\tRegion: router.Region,\n\t\t\tName: pulumi.String(\"my-rp1\"),\n\t\t\tType: pulumi.String(\"ROUTE_POLICY_TYPE_EXPORT\"),\n\t\t\tTerms: compute.RouterRoutePolicyTermArray{\n\t\t\t\t\u0026compute.RouterRoutePolicyTermArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tMatch: \u0026compute.RouterRoutePolicyTermMatchArgs{\n\t\t\t\t\t\tExpression: pulumi.String(\"destination == '10.0.0.0/12'\"),\n\t\t\t\t\t},\n\t\t\t\t\tActions: compute.RouterRoutePolicyTermActionArray{\n\t\t\t\t\t\t\u0026compute.RouterRoutePolicyTermActionArgs{\n\t\t\t\t\t\t\tExpression: pulumi.String(\"accept()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Router;\nimport com.pulumi.gcp.compute.RouterArgs;\nimport com.pulumi.gcp.compute.RouterRoutePolicy;\nimport com.pulumi.gcp.compute.RouterRoutePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs;\nimport com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermMatchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var net = new Network(\"net\", NetworkArgs.builder()\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnet = new Subnetwork(\"subnet\", SubnetworkArgs.builder()\n .name(\"my-subnetwork\")\n .network(net.id())\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .build());\n\n var router = new Router(\"router\", RouterArgs.builder()\n .name(\"my-router\")\n .region(subnet.region())\n .network(net.id())\n .build());\n\n var rp_export = new RouterRoutePolicy(\"rp-export\", RouterRoutePolicyArgs.builder()\n .router(router.name())\n .region(router.region())\n .name(\"my-rp1\")\n .type(\"ROUTE_POLICY_TYPE_EXPORT\")\n .terms(RouterRoutePolicyTermArgs.builder()\n .priority(1)\n .match(RouterRoutePolicyTermMatchArgs.builder()\n .expression(\"destination == '10.0.0.0/12'\")\n .build())\n .actions(RouterRoutePolicyTermActionArgs.builder()\n .expression(\"accept()\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n net:\n type: gcp:compute:Network\n properties:\n name: my-network\n autoCreateSubnetworks: false\n subnet:\n type: gcp:compute:Subnetwork\n properties:\n name: my-subnetwork\n network: ${net.id}\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n router:\n type: gcp:compute:Router\n properties:\n name: my-router\n region: ${subnet.region}\n network: ${net.id}\n rp-export:\n type: gcp:compute:RouterRoutePolicy\n properties:\n router: ${router.name}\n region: ${router.region}\n name: my-rp1\n type: ROUTE_POLICY_TYPE_EXPORT\n terms:\n - priority: 1\n match:\n expression: destination == '10.0.0.0/12'\n actions:\n - expression: accept()\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router Route Policy Import\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst net = new gcp.compute.Network(\"net\", {\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst subnet = new gcp.compute.Subnetwork(\"subnet\", {\n name: \"my-subnetwork\",\n network: net.id,\n ipCidrRange: \"10.0.0.0/16\",\n region: \"us-central1\",\n});\nconst router = new gcp.compute.Router(\"router\", {\n name: \"my-router\",\n region: subnet.region,\n network: net.id,\n});\nconst rp_import = new gcp.compute.RouterRoutePolicy(\"rp-import\", {\n name: \"my-rp2\",\n router: router.name,\n region: router.region,\n type: \"ROUTE_POLICY_TYPE_IMPORT\",\n terms: [{\n priority: 2,\n match: {\n expression: \"destination == '10.0.0.0/12'\",\n },\n actions: [{\n expression: \"accept()\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnet = gcp.compute.Network(\"net\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nsubnet = gcp.compute.Subnetwork(\"subnet\",\n name=\"my-subnetwork\",\n network=net.id,\n ip_cidr_range=\"10.0.0.0/16\",\n region=\"us-central1\")\nrouter = gcp.compute.Router(\"router\",\n name=\"my-router\",\n region=subnet.region,\n network=net.id)\nrp_import = gcp.compute.RouterRoutePolicy(\"rp-import\",\n name=\"my-rp2\",\n router=router.name,\n region=router.region,\n type=\"ROUTE_POLICY_TYPE_IMPORT\",\n terms=[{\n \"priority\": 2,\n \"match\": {\n \"expression\": \"destination == '10.0.0.0/12'\",\n },\n \"actions\": [{\n \"expression\": \"accept()\",\n }],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var net = new Gcp.Compute.Network(\"net\", new()\n {\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var subnet = new Gcp.Compute.Subnetwork(\"subnet\", new()\n {\n Name = \"my-subnetwork\",\n Network = net.Id,\n IpCidrRange = \"10.0.0.0/16\",\n Region = \"us-central1\",\n });\n\n var router = new Gcp.Compute.Router(\"router\", new()\n {\n Name = \"my-router\",\n Region = subnet.Region,\n Network = net.Id,\n });\n\n var rp_import = new Gcp.Compute.RouterRoutePolicy(\"rp-import\", new()\n {\n Name = \"my-rp2\",\n Router = router.Name,\n Region = router.Region,\n Type = \"ROUTE_POLICY_TYPE_IMPORT\",\n Terms = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs\n {\n Priority = 2,\n Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs\n {\n Expression = \"destination == '10.0.0.0/12'\",\n },\n Actions = new[]\n {\n new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs\n {\n Expression = \"accept()\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnet, err := compute.NewNetwork(ctx, \"net\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := compute.NewSubnetwork(ctx, \"subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-subnetwork\"),\n\t\t\tNetwork: net.ID(),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trouter, err := compute.NewRouter(ctx, \"router\", \u0026compute.RouterArgs{\n\t\t\tName: pulumi.String(\"my-router\"),\n\t\t\tRegion: subnet.Region,\n\t\t\tNetwork: net.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewRouterRoutePolicy(ctx, \"rp-import\", \u0026compute.RouterRoutePolicyArgs{\n\t\t\tName: pulumi.String(\"my-rp2\"),\n\t\t\tRouter: router.Name,\n\t\t\tRegion: router.Region,\n\t\t\tType: pulumi.String(\"ROUTE_POLICY_TYPE_IMPORT\"),\n\t\t\tTerms: compute.RouterRoutePolicyTermArray{\n\t\t\t\t\u0026compute.RouterRoutePolicyTermArgs{\n\t\t\t\t\tPriority: pulumi.Int(2),\n\t\t\t\t\tMatch: \u0026compute.RouterRoutePolicyTermMatchArgs{\n\t\t\t\t\t\tExpression: pulumi.String(\"destination == '10.0.0.0/12'\"),\n\t\t\t\t\t},\n\t\t\t\t\tActions: compute.RouterRoutePolicyTermActionArray{\n\t\t\t\t\t\t\u0026compute.RouterRoutePolicyTermActionArgs{\n\t\t\t\t\t\t\tExpression: pulumi.String(\"accept()\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Router;\nimport com.pulumi.gcp.compute.RouterArgs;\nimport com.pulumi.gcp.compute.RouterRoutePolicy;\nimport com.pulumi.gcp.compute.RouterRoutePolicyArgs;\nimport com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs;\nimport com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermMatchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var net = new Network(\"net\", NetworkArgs.builder()\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnet = new Subnetwork(\"subnet\", SubnetworkArgs.builder()\n .name(\"my-subnetwork\")\n .network(net.id())\n .ipCidrRange(\"10.0.0.0/16\")\n .region(\"us-central1\")\n .build());\n\n var router = new Router(\"router\", RouterArgs.builder()\n .name(\"my-router\")\n .region(subnet.region())\n .network(net.id())\n .build());\n\n var rp_import = new RouterRoutePolicy(\"rp-import\", RouterRoutePolicyArgs.builder()\n .name(\"my-rp2\")\n .router(router.name())\n .region(router.region())\n .type(\"ROUTE_POLICY_TYPE_IMPORT\")\n .terms(RouterRoutePolicyTermArgs.builder()\n .priority(2)\n .match(RouterRoutePolicyTermMatchArgs.builder()\n .expression(\"destination == '10.0.0.0/12'\")\n .build())\n .actions(RouterRoutePolicyTermActionArgs.builder()\n .expression(\"accept()\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n net:\n type: gcp:compute:Network\n properties:\n name: my-network\n autoCreateSubnetworks: false\n subnet:\n type: gcp:compute:Subnetwork\n properties:\n name: my-subnetwork\n network: ${net.id}\n ipCidrRange: 10.0.0.0/16\n region: us-central1\n router:\n type: gcp:compute:Router\n properties:\n name: my-router\n region: ${subnet.region}\n network: ${net.id}\n rp-import:\n type: gcp:compute:RouterRoutePolicy\n properties:\n name: my-rp2\n router: ${router.name}\n region: ${router.region}\n type: ROUTE_POLICY_TYPE_IMPORT\n terms:\n - priority: 2\n match:\n expression: destination == '10.0.0.0/12'\n actions:\n - expression: accept()\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRouterRoutePolicy can be imported using any of these accepted formats:\n\n* `{{project}}/{{region}}/{{router}}/routePolicies/{{name}}`\n\n* `{{project}}/{{region}}/{{router}}/{{name}}`\n\n* `{{region}}/{{router}}/{{name}}`\n\n* `{{router}}/{{name}}`\n\nWhen using the `pulumi import` command, RouterRoutePolicy can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/routePolicies/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{region}}/{{router}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{router}}/{{name}}\n```\n\n", + "properties": { + "fingerprint": { + "type": "string", + "description": "The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.\n" + }, + "name": { + "type": "string", + "description": "Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router\n" + }, + "project": { + "type": "string" + }, + "region": { + "type": "string", + "description": "Region where the router and NAT reside.\n" + }, + "router": { + "type": "string", + "description": "The name of the Cloud Router in which this route policy will be configured.\n" + }, + "terms": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/RouterRoutePolicyTerm:RouterRoutePolicyTerm" + }, + "description": "List of terms (the order in the list is not important, they are evaluated in order of priority).\nStructure is documented below.\n" + }, + "type": { + "type": "string", + "description": "This is policy's type, which is one of IMPORT or EXPORT Possible values: [\"ROUTE_POLICY_TYPE_IMPORT\",\n\"ROUTE_POLICY_TYPE_EXPORT\"]\n" + } + }, + "required": [ + "fingerprint", + "name", + "project", + "region", + "router", + "terms" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "willReplaceOnChanges": true + }, + "region": { + "type": "string", + "description": "Region where the router and NAT reside.\n", + "willReplaceOnChanges": true + }, + "router": { + "type": "string", + "description": "The name of the Cloud Router in which this route policy will be configured.\n", + "willReplaceOnChanges": true + }, + "terms": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/RouterRoutePolicyTerm:RouterRoutePolicyTerm" + }, + "description": "List of terms (the order in the list is not important, they are evaluated in order of priority).\nStructure is documented below.\n", + "willReplaceOnChanges": true + }, + "type": { + "type": "string", + "description": "This is policy's type, which is one of IMPORT or EXPORT Possible values: [\"ROUTE_POLICY_TYPE_IMPORT\",\n\"ROUTE_POLICY_TYPE_EXPORT\"]\n" + } + }, + "requiredInputs": [ + "router", + "terms" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering RouterRoutePolicy resources.\n", + "properties": { + "fingerprint": { + "type": "string", + "description": "The fingerprint used for optimistic locking of this resource. Used\ninternally during updates.\n" + }, + "name": { + "type": "string", + "description": "Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router\n", + "willReplaceOnChanges": true + }, + "project": { + "type": "string", + "willReplaceOnChanges": true + }, + "region": { + "type": "string", + "description": "Region where the router and NAT reside.\n", + "willReplaceOnChanges": true + }, + "router": { + "type": "string", + "description": "The name of the Cloud Router in which this route policy will be configured.\n", + "willReplaceOnChanges": true + }, + "terms": { + "type": "array", + "items": { + "$ref": "#/types/gcp:compute/RouterRoutePolicyTerm:RouterRoutePolicyTerm" + }, + "description": "List of terms (the order in the list is not important, they are evaluated in order of priority).\nStructure is documented below.\n", + "willReplaceOnChanges": true + }, + "type": { + "type": "string", + "description": "This is policy's type, which is one of IMPORT or EXPORT Possible values: [\"ROUTE_POLICY_TYPE_IMPORT\",\n\"ROUTE_POLICY_TYPE_EXPORT\"]\n" + } + }, + "type": "object" + } + }, "gcp:compute/sSLCertificate:SSLCertificate": { "description": "An SslCertificate resource, used for HTTPS load balancing. This resource\nprovides a mechanism to upload an SSL key and certificate to\nthe load balancer to serve secure connections from the user.\n\n\nTo get more information about SslCertificate, see:\n\n* [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/sslCertificates)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/load-balancing/docs/ssl-certificates)\n\n\n\n## Example Usage\n\n## Import\n\nSslCertificate can be imported using any of these accepted formats:\n\n* `projects/{{project}}/global/sslCertificates/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, SslCertificate can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:compute/sSLCertificate:SSLCertificate default projects/{{project}}/global/sslCertificates/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/sSLCertificate:SSLCertificate default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:compute/sSLCertificate:SSLCertificate default {{name}}\n```\n\n", "properties": { @@ -163112,7 +164697,7 @@ }, "targetService": { "type": "string", - "description": "The URL of a forwarding rule that represents the service identified by\nthis service attachment.\n" + "description": "The URL of a service serving the endpoint identified by this service attachment.\n" } }, "required": [ @@ -163191,7 +164776,7 @@ }, "targetService": { "type": "string", - "description": "The URL of a forwarding rule that represents the service identified by\nthis service attachment.\n", + "description": "The URL of a service serving the endpoint identified by this service attachment.\n", "willReplaceOnChanges": true } }, @@ -163281,7 +164866,7 @@ }, "targetService": { "type": "string", - "description": "The URL of a forwarding rule that represents the service identified by\nthis service attachment.\n", + "description": "The URL of a service serving the endpoint identified by this service attachment.\n", "willReplaceOnChanges": true } }, @@ -169080,7 +170665,7 @@ }, "queuedProvisioning": { "$ref": "#/types/gcp:container/NodePoolQueuedProvisioning:NodePoolQueuedProvisioning", - "description": "Specifies node pool-level settings of queued provisioning.\nStructure is documented below.\n\n\u003ca name=\"nested_autoscaling\"\u003e\u003c/a\u003eThe `autoscaling` block supports (either total or per zone limits are required):\n" + "description": "Specifies node pool-level settings of queued provisioning.\nStructure is documented below.\n" }, "upgradeSettings": { "$ref": "#/types/gcp:container/NodePoolUpgradeSettings:NodePoolUpgradeSettings", @@ -169181,7 +170766,7 @@ }, "queuedProvisioning": { "$ref": "#/types/gcp:container/NodePoolQueuedProvisioning:NodePoolQueuedProvisioning", - "description": "Specifies node pool-level settings of queued provisioning.\nStructure is documented below.\n\n\u003ca name=\"nested_autoscaling\"\u003e\u003c/a\u003eThe `autoscaling` block supports (either total or per zone limits are required):\n", + "description": "Specifies node pool-level settings of queued provisioning.\nStructure is documented below.\n", "willReplaceOnChanges": true }, "upgradeSettings": { @@ -169286,7 +170871,7 @@ }, "queuedProvisioning": { "$ref": "#/types/gcp:container/NodePoolQueuedProvisioning:NodePoolQueuedProvisioning", - "description": "Specifies node pool-level settings of queued provisioning.\nStructure is documented below.\n\n\u003ca name=\"nested_autoscaling\"\u003e\u003c/a\u003eThe `autoscaling` block supports (either total or per zone limits are required):\n", + "description": "Specifies node pool-level settings of queued provisioning.\nStructure is documented below.\n", "willReplaceOnChanges": true }, "upgradeSettings": { @@ -170159,7 +171744,7 @@ } }, "gcp:databasemigrationservice/privateConnection:PrivateConnection": { - "description": "The PrivateConnection resource is used to establish private connectivity between Database Migration Service and a customer's network.\n\n\nTo get more information about PrivateConnection, see:\n\n* [API documentation](https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.privateConnections)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/database-migration/docs/oracle-to-postgresql/create-private-connectivity-configuration)\n\n## Example Usage\n\n### Database Migration Service Private Connection\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst default = gcp.compute.getNetwork({\n name: \"my-network\",\n});\nconst defaultPrivateConnection = new gcp.databasemigrationservice.PrivateConnection(\"default\", {\n displayName: \"dbms_pc\",\n location: \"us-central1\",\n privateConnectionId: \"my-connection\",\n labels: {\n key: \"value\",\n },\n vpcPeeringConfig: {\n vpcName: _default.then(_default =\u003e _default.id),\n subnet: \"10.0.0.0/29\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.compute.get_network(name=\"my-network\")\ndefault_private_connection = gcp.databasemigrationservice.PrivateConnection(\"default\",\n display_name=\"dbms_pc\",\n location=\"us-central1\",\n private_connection_id=\"my-connection\",\n labels={\n \"key\": \"value\",\n },\n vpc_peering_config={\n \"vpc_name\": default.id,\n \"subnet\": \"10.0.0.0/29\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Gcp.Compute.GetNetwork.Invoke(new()\n {\n Name = \"my-network\",\n });\n\n var defaultPrivateConnection = new Gcp.DatabaseMigrationService.PrivateConnection(\"default\", new()\n {\n DisplayName = \"dbms_pc\",\n Location = \"us-central1\",\n PrivateConnectionId = \"my-connection\",\n Labels = \n {\n { \"key\", \"value\" },\n },\n VpcPeeringConfig = new Gcp.DatabaseMigrationService.Inputs.PrivateConnectionVpcPeeringConfigArgs\n {\n VpcName = @default.Apply(@default =\u003e @default.Apply(getNetworkResult =\u003e getNetworkResult.Id)),\n Subnet = \"10.0.0.0/29\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/databasemigrationservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_default, err := compute.LookupNetwork(ctx, \u0026compute.LookupNetworkArgs{\n\t\t\tName: \"my-network\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databasemigrationservice.NewPrivateConnection(ctx, \"default\", \u0026databasemigrationservice.PrivateConnectionArgs{\n\t\t\tDisplayName: pulumi.String(\"dbms_pc\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPrivateConnectionId: pulumi.String(\"my-connection\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tVpcPeeringConfig: \u0026databasemigrationservice.PrivateConnectionVpcPeeringConfigArgs{\n\t\t\t\tVpcName: pulumi.String(_default.Id),\n\t\t\t\tSubnet: pulumi.String(\"10.0.0.0/29\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.ComputeFunctions;\nimport com.pulumi.gcp.compute.inputs.GetNetworkArgs;\nimport com.pulumi.gcp.databasemigrationservice.PrivateConnection;\nimport com.pulumi.gcp.databasemigrationservice.PrivateConnectionArgs;\nimport com.pulumi.gcp.databasemigrationservice.inputs.PrivateConnectionVpcPeeringConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = ComputeFunctions.getNetwork(GetNetworkArgs.builder()\n .name(\"my-network\")\n .build());\n\n var defaultPrivateConnection = new PrivateConnection(\"defaultPrivateConnection\", PrivateConnectionArgs.builder()\n .displayName(\"dbms_pc\")\n .location(\"us-central1\")\n .privateConnectionId(\"my-connection\")\n .labels(Map.of(\"key\", \"value\"))\n .vpcPeeringConfig(PrivateConnectionVpcPeeringConfigArgs.builder()\n .vpcName(default_.id())\n .subnet(\"10.0.0.0/29\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n defaultPrivateConnection:\n type: gcp:databasemigrationservice:PrivateConnection\n name: default\n properties:\n displayName: dbms_pc\n location: us-central1\n privateConnectionId: my-connection\n labels:\n key: value\n vpcPeeringConfig:\n vpcName: ${default.id}\n subnet: 10.0.0.0/29\nvariables:\n default:\n fn::invoke:\n Function: gcp:compute:getNetwork\n Arguments:\n name: my-network\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivateConnection can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/privateConnections/{{private_connection_id}}`\n\n* `{{project}}/{{location}}/{{private_connection_id}}`\n\n* `{{location}}/{{private_connection_id}}`\n\nWhen using the `pulumi import` command, PrivateConnection can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:databasemigrationservice/privateConnection:PrivateConnection default projects/{{project}}/locations/{{location}}/privateConnections/{{private_connection_id}}\n```\n\n```sh\n$ pulumi import gcp:databasemigrationservice/privateConnection:PrivateConnection default {{project}}/{{location}}/{{private_connection_id}}\n```\n\n```sh\n$ pulumi import gcp:databasemigrationservice/privateConnection:PrivateConnection default {{location}}/{{private_connection_id}}\n```\n\n", + "description": "The PrivateConnection resource is used to establish private connectivity between Database Migration Service and a customer's network.\n\n\nTo get more information about PrivateConnection, see:\n\n* [API documentation](https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.privateConnections)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/database-migration/docs/oracle-to-postgresql/create-private-connectivity-configuration)\n\n## Example Usage\n\n### Database Migration Service Private Connection\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.databasemigrationservice.PrivateConnection(\"default\", {\n displayName: \"dbms_pc\",\n location: \"us-central1\",\n privateConnectionId: \"my-connection\",\n labels: {\n key: \"value\",\n },\n vpcPeeringConfig: {\n vpcName: googleComputeNetwork[\"default\"].id,\n subnet: \"10.0.0.0/29\",\n },\n});\nconst defaultNetwork = new gcp.compute.Network(\"default\", {\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.databasemigrationservice.PrivateConnection(\"default\",\n display_name=\"dbms_pc\",\n location=\"us-central1\",\n private_connection_id=\"my-connection\",\n labels={\n \"key\": \"value\",\n },\n vpc_peering_config={\n \"vpc_name\": google_compute_network[\"default\"][\"id\"],\n \"subnet\": \"10.0.0.0/29\",\n })\ndefault_network = gcp.compute.Network(\"default\",\n name=\"my-network\",\n auto_create_subnetworks=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.DatabaseMigrationService.PrivateConnection(\"default\", new()\n {\n DisplayName = \"dbms_pc\",\n Location = \"us-central1\",\n PrivateConnectionId = \"my-connection\",\n Labels = \n {\n { \"key\", \"value\" },\n },\n VpcPeeringConfig = new Gcp.DatabaseMigrationService.Inputs.PrivateConnectionVpcPeeringConfigArgs\n {\n VpcName = googleComputeNetwork.Default.Id,\n Subnet = \"10.0.0.0/29\",\n },\n });\n\n var defaultNetwork = new Gcp.Compute.Network(\"default\", new()\n {\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/databasemigrationservice\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := databasemigrationservice.NewPrivateConnection(ctx, \"default\", \u0026databasemigrationservice.PrivateConnectionArgs{\n\t\t\tDisplayName: pulumi.String(\"dbms_pc\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPrivateConnectionId: pulumi.String(\"my-connection\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tVpcPeeringConfig: \u0026databasemigrationservice.PrivateConnectionVpcPeeringConfigArgs{\n\t\t\t\tVpcName: pulumi.Any(googleComputeNetwork.Default.Id),\n\t\t\t\tSubnet: pulumi.String(\"10.0.0.0/29\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewNetwork(ctx, \"default\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.databasemigrationservice.PrivateConnection;\nimport com.pulumi.gcp.databasemigrationservice.PrivateConnectionArgs;\nimport com.pulumi.gcp.databasemigrationservice.inputs.PrivateConnectionVpcPeeringConfigArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new PrivateConnection(\"default\", PrivateConnectionArgs.builder()\n .displayName(\"dbms_pc\")\n .location(\"us-central1\")\n .privateConnectionId(\"my-connection\")\n .labels(Map.of(\"key\", \"value\"))\n .vpcPeeringConfig(PrivateConnectionVpcPeeringConfigArgs.builder()\n .vpcName(googleComputeNetwork.default().id())\n .subnet(\"10.0.0.0/29\")\n .build())\n .build());\n\n var defaultNetwork = new Network(\"defaultNetwork\", NetworkArgs.builder()\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:databasemigrationservice:PrivateConnection\n properties:\n displayName: dbms_pc\n location: us-central1\n privateConnectionId: my-connection\n labels:\n key: value\n vpcPeeringConfig:\n vpcName: ${googleComputeNetwork.default.id}\n subnet: 10.0.0.0/29\n defaultNetwork:\n type: gcp:compute:Network\n name: default\n properties:\n name: my-network\n autoCreateSubnetworks: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivateConnection can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/privateConnections/{{private_connection_id}}`\n\n* `{{project}}/{{location}}/{{private_connection_id}}`\n\n* `{{location}}/{{private_connection_id}}`\n\nWhen using the `pulumi import` command, PrivateConnection can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:databasemigrationservice/privateConnection:PrivateConnection default projects/{{project}}/locations/{{location}}/privateConnections/{{private_connection_id}}\n```\n\n```sh\n$ pulumi import gcp:databasemigrationservice/privateConnection:PrivateConnection default {{project}}/{{location}}/{{private_connection_id}}\n```\n\n```sh\n$ pulumi import gcp:databasemigrationservice/privateConnection:PrivateConnection default {{location}}/{{private_connection_id}}\n```\n\n", "properties": { "displayName": { "type": "string", @@ -182516,7 +184101,7 @@ } }, "gcp:datastore/dataStoreIndex:DataStoreIndex": { - "description": "Describes a composite index for Cloud Datastore.\n\n\nTo get more information about Index, see:\n\n* [API documentation](https://cloud.google.com/datastore/docs/reference/admin/rest/v1/projects.indexes)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes)\n\n\u003e **Warning:** This resource creates a Datastore Index on a project that has already\nenabled a Datastore-compatible database. If you haven't already enabled\none, you can create a `gcp.appengine.Application` resource with\n`database_type` set to `\"CLOUD_DATASTORE_COMPATIBILITY\"` to do so. Your\nDatastore location will be the same as the App Engine location specified.\n\n## Example Usage\n\n### Datastore Index\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"(default)\",\n locationId: \"nam5\",\n type: \"DATASTORE_MODE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst _default = new gcp.datastore.DataStoreIndex(\"default\", {\n kind: \"foo\",\n properties: [\n {\n name: \"property_a\",\n direction: \"ASCENDING\",\n },\n {\n name: \"property_b\",\n direction: \"ASCENDING\",\n },\n ],\n}, {\n dependsOn: [database],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"(default)\",\n location_id=\"nam5\",\n type=\"DATASTORE_MODE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\ndefault = gcp.datastore.DataStoreIndex(\"default\",\n kind=\"foo\",\n properties=[\n {\n \"name\": \"property_a\",\n \"direction\": \"ASCENDING\",\n },\n {\n \"name\": \"property_b\",\n \"direction\": \"ASCENDING\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[database]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"(default)\",\n LocationId = \"nam5\",\n Type = \"DATASTORE_MODE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var @default = new Gcp.Datastore.DataStoreIndex(\"default\", new()\n {\n Kind = \"foo\",\n Properties = new[]\n {\n new Gcp.Datastore.Inputs.DataStoreIndexPropertyArgs\n {\n Name = \"property_a\",\n Direction = \"ASCENDING\",\n },\n new Gcp.Datastore.Inputs.DataStoreIndexPropertyArgs\n {\n Name = \"property_b\",\n Direction = \"ASCENDING\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n database,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastore\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"(default)\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"DATASTORE_MODE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastore.NewDataStoreIndex(ctx, \"default\", \u0026datastore.DataStoreIndexArgs{\n\t\t\tKind: pulumi.String(\"foo\"),\n\t\t\tProperties: datastore.DataStoreIndexPropertyArray{\n\t\t\t\t\u0026datastore.DataStoreIndexPropertyArgs{\n\t\t\t\t\tName: pulumi.String(\"property_a\"),\n\t\t\t\t\tDirection: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026datastore.DataStoreIndexPropertyArgs{\n\t\t\t\t\tName: pulumi.String(\"property_b\"),\n\t\t\t\t\tDirection: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdatabase,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.datastore.DataStoreIndex;\nimport com.pulumi.gcp.datastore.DataStoreIndexArgs;\nimport com.pulumi.gcp.datastore.inputs.DataStoreIndexPropertyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"(default)\")\n .locationId(\"nam5\")\n .type(\"DATASTORE_MODE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var default_ = new DataStoreIndex(\"default\", DataStoreIndexArgs.builder()\n .kind(\"foo\")\n .properties( \n DataStoreIndexPropertyArgs.builder()\n .name(\"property_a\")\n .direction(\"ASCENDING\")\n .build(),\n DataStoreIndexPropertyArgs.builder()\n .name(\"property_b\")\n .direction(\"ASCENDING\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(database)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: (default)\n locationId: nam5\n type: DATASTORE_MODE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n default:\n type: gcp:datastore:DataStoreIndex\n properties:\n kind: foo\n properties:\n - name: property_a\n direction: ASCENDING\n - name: property_b\n direction: ASCENDING\n options:\n dependson:\n - ${database}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIndex can be imported using any of these accepted formats:\n\n* `projects/{{project}}/indexes/{{index_id}}`\n\n* `{{project}}/{{index_id}}`\n\n* `{{index_id}}`\n\nWhen using the `pulumi import` command, Index can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:datastore/dataStoreIndex:DataStoreIndex default projects/{{project}}/indexes/{{index_id}}\n```\n\n```sh\n$ pulumi import gcp:datastore/dataStoreIndex:DataStoreIndex default {{project}}/{{index_id}}\n```\n\n```sh\n$ pulumi import gcp:datastore/dataStoreIndex:DataStoreIndex default {{index_id}}\n```\n\n", + "description": "\u003e **Warning:** `datastore_index` is deprecated and will be removed in a future major release. Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. `firestore_index` supports both Firestore in Datastore Mode and Firestore Native indexes and supports both named and the (default) database.\n\nDescribes a composite index for Firestore in Datastore Mode.\n\n\nTo get more information about Index, see:\n\n* [API documentation](https://cloud.google.com/datastore/docs/reference/admin/rest/v1/projects.indexes)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes)\n\n\u003e **Warning:** `datastore_index` is deprecated and will be removed in a future major release.\nUse `firestore_index` instead; this resource is deprecated because it only supports the (default) database.\nThis resource creates a Datastore Index on a project that has already\nenabled a Datastore-compatible database. If you haven't already created it, you may\ncreate a `gcp.firestore.Database` resource with `location_id` set\nto your chosen location, and `type` set to `\"DATASTORE_MODE\"`.\nIf you wish to use App Engine, you may instead create a `gcp.appengine.Application` resource with\n`database_type` set to `\"CLOUD_DATASTORE_COMPATIBILITY\"`.\nYour Datastore location will be the same as the App Engine location specified.\n\n## Example Usage\n\n### Datastore Index\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"(default)\",\n locationId: \"nam5\",\n type: \"DATASTORE_MODE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst _default = new gcp.datastore.DataStoreIndex(\"default\", {\n kind: \"foo\",\n properties: [\n {\n name: \"property_a\",\n direction: \"ASCENDING\",\n },\n {\n name: \"property_b\",\n direction: \"ASCENDING\",\n },\n ],\n}, {\n dependsOn: [database],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"(default)\",\n location_id=\"nam5\",\n type=\"DATASTORE_MODE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\ndefault = gcp.datastore.DataStoreIndex(\"default\",\n kind=\"foo\",\n properties=[\n {\n \"name\": \"property_a\",\n \"direction\": \"ASCENDING\",\n },\n {\n \"name\": \"property_b\",\n \"direction\": \"ASCENDING\",\n },\n ],\n opts = pulumi.ResourceOptions(depends_on=[database]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"(default)\",\n LocationId = \"nam5\",\n Type = \"DATASTORE_MODE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var @default = new Gcp.Datastore.DataStoreIndex(\"default\", new()\n {\n Kind = \"foo\",\n Properties = new[]\n {\n new Gcp.Datastore.Inputs.DataStoreIndexPropertyArgs\n {\n Name = \"property_a\",\n Direction = \"ASCENDING\",\n },\n new Gcp.Datastore.Inputs.DataStoreIndexPropertyArgs\n {\n Name = \"property_b\",\n Direction = \"ASCENDING\",\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n database,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastore\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"(default)\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"DATASTORE_MODE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastore.NewDataStoreIndex(ctx, \"default\", \u0026datastore.DataStoreIndexArgs{\n\t\t\tKind: pulumi.String(\"foo\"),\n\t\t\tProperties: datastore.DataStoreIndexPropertyArray{\n\t\t\t\t\u0026datastore.DataStoreIndexPropertyArgs{\n\t\t\t\t\tName: pulumi.String(\"property_a\"),\n\t\t\t\t\tDirection: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026datastore.DataStoreIndexPropertyArgs{\n\t\t\t\t\tName: pulumi.String(\"property_b\"),\n\t\t\t\t\tDirection: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdatabase,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.datastore.DataStoreIndex;\nimport com.pulumi.gcp.datastore.DataStoreIndexArgs;\nimport com.pulumi.gcp.datastore.inputs.DataStoreIndexPropertyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"(default)\")\n .locationId(\"nam5\")\n .type(\"DATASTORE_MODE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var default_ = new DataStoreIndex(\"default\", DataStoreIndexArgs.builder()\n .kind(\"foo\")\n .properties( \n DataStoreIndexPropertyArgs.builder()\n .name(\"property_a\")\n .direction(\"ASCENDING\")\n .build(),\n DataStoreIndexPropertyArgs.builder()\n .name(\"property_b\")\n .direction(\"ASCENDING\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(database)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: (default)\n locationId: nam5\n type: DATASTORE_MODE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n default:\n type: gcp:datastore:DataStoreIndex\n properties:\n kind: foo\n properties:\n - name: property_a\n direction: ASCENDING\n - name: property_b\n direction: ASCENDING\n options:\n dependson:\n - ${database}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIndex can be imported using any of these accepted formats:\n\n* `projects/{{project}}/indexes/{{index_id}}`\n\n* `{{project}}/{{index_id}}`\n\n* `{{index_id}}`\n\nWhen using the `pulumi import` command, Index can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:datastore/dataStoreIndex:DataStoreIndex default projects/{{project}}/indexes/{{index_id}}\n```\n\n```sh\n$ pulumi import gcp:datastore/dataStoreIndex:DataStoreIndex default {{project}}/{{index_id}}\n```\n\n```sh\n$ pulumi import gcp:datastore/dataStoreIndex:DataStoreIndex default {{index_id}}\n```\n\n", "properties": { "ancestor": { "type": "string", @@ -183058,7 +184643,7 @@ } }, "gcp:datastream/stream:Stream": { - "description": "A resource representing streaming data from a source to a destination.\n\n\nTo get more information about Stream, see:\n\n* [API documentation](https://cloud.google.com/datastream/docs/reference/rest/v1/projects.locations.streams)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/datastream/docs/create-a-stream)\n\n## Example Usage\n\n### Datastream Stream Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"my-instance\",\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {\n instance: instance.name,\n name: \"db\",\n});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"user\",\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"source_connection_profile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: \"my-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst viewer = new gcp.storage.BucketIAMMember(\"viewer\", {\n bucket: bucket.name,\n role: \"roles/storage.objectViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst creator = new gcp.storage.BucketIAMMember(\"creator\", {\n bucket: bucket.name,\n role: \"roles/storage.objectCreator\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst reader = new gcp.storage.BucketIAMMember(\"reader\", {\n bucket: bucket.name,\n role: \"roles/storage.legacyBucketReader\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst keyUser = new gcp.kms.CryptoKeyIAMMember(\"key_user\", {\n cryptoKeyId: \"kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destination_connection_profile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n gcsProfile: {\n bucket: bucket.name,\n rootPath: \"/path\",\n },\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n desiredState: \"NOT_STARTED\",\n location: \"us-central1\",\n displayName: \"my stream\",\n labels: {\n key: \"value\",\n },\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {\n includeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [\n {\n table: \"includedTable\",\n mysqlColumns: [{\n column: \"includedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n },\n {\n table: \"includedTable_2\",\n },\n ],\n }],\n },\n excludeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n maxConcurrentCdcTasks: 5,\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n gcsDestinationConfig: {\n path: \"mydata\",\n fileRotationMb: 200,\n fileRotationInterval: \"60s\",\n jsonFileFormat: {\n schemaFileFormat: \"NO_SCHEMA_FILE\",\n compression: \"GZIP\",\n },\n },\n },\n backfillAll: {\n mysqlExcludedObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n },\n customerManagedEncryptionKey: \"kms-name\",\n}, {\n dependsOn: [keyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"my-instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n },\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\",\n instance=instance.name,\n name=\"db\")\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n name=\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"source_connection_profile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile={\n \"hostname\": instance.public_ip_address,\n \"username\": user.name,\n \"password\": user.password,\n })\nbucket = gcp.storage.Bucket(\"bucket\",\n name=\"my-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nviewer = gcp.storage.BucketIAMMember(\"viewer\",\n bucket=bucket.name,\n role=\"roles/storage.objectViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ncreator = gcp.storage.BucketIAMMember(\"creator\",\n bucket=bucket.name,\n role=\"roles/storage.objectCreator\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nreader = gcp.storage.BucketIAMMember(\"reader\",\n bucket=bucket.name,\n role=\"roles/storage.legacyBucketReader\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nkey_user = gcp.kms.CryptoKeyIAMMember(\"key_user\",\n crypto_key_id=\"kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destination_connection_profile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n gcs_profile={\n \"bucket\": bucket.name,\n \"root_path\": \"/path\",\n })\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n desired_state=\"NOT_STARTED\",\n location=\"us-central1\",\n display_name=\"my stream\",\n labels={\n \"key\": \"value\",\n },\n source_config={\n \"source_connection_profile\": source_connection_profile.id,\n \"mysql_source_config\": {\n \"include_objects\": {\n \"mysql_databases\": [{\n \"database\": \"my-database\",\n \"mysql_tables\": [\n {\n \"table\": \"includedTable\",\n \"mysql_columns\": [{\n \"column\": \"includedColumn\",\n \"data_type\": \"VARCHAR\",\n \"collation\": \"utf8mb4\",\n \"primary_key\": False,\n \"nullable\": False,\n \"ordinal_position\": 0,\n }],\n },\n {\n \"table\": \"includedTable_2\",\n },\n ],\n }],\n },\n \"exclude_objects\": {\n \"mysql_databases\": [{\n \"database\": \"my-database\",\n \"mysql_tables\": [{\n \"table\": \"excludedTable\",\n \"mysql_columns\": [{\n \"column\": \"excludedColumn\",\n \"data_type\": \"VARCHAR\",\n \"collation\": \"utf8mb4\",\n \"primary_key\": False,\n \"nullable\": False,\n \"ordinal_position\": 0,\n }],\n }],\n }],\n },\n \"max_concurrent_cdc_tasks\": 5,\n },\n },\n destination_config={\n \"destination_connection_profile\": destination_connection_profile.id,\n \"gcs_destination_config\": {\n \"path\": \"mydata\",\n \"file_rotation_mb\": 200,\n \"file_rotation_interval\": \"60s\",\n \"json_file_format\": {\n \"schema_file_format\": \"NO_SCHEMA_FILE\",\n \"compression\": \"GZIP\",\n },\n },\n },\n backfill_all={\n \"mysql_excluded_objects\": {\n \"mysql_databases\": [{\n \"database\": \"my-database\",\n \"mysql_tables\": [{\n \"table\": \"excludedTable\",\n \"mysql_columns\": [{\n \"column\": \"excludedColumn\",\n \"data_type\": \"VARCHAR\",\n \"collation\": \"utf8mb4\",\n \"primary_key\": False,\n \"nullable\": False,\n \"ordinal_position\": 0,\n }],\n }],\n }],\n },\n },\n customer_managed_encryption_key=\"kms-name\",\n opts = pulumi.ResourceOptions(depends_on=[key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"my-instance\",\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n Name = \"db\",\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"user\",\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"source_connection_profile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = \"my-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var viewer = new Gcp.Storage.BucketIAMMember(\"viewer\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var creator = new Gcp.Storage.BucketIAMMember(\"creator\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectCreator\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var reader = new Gcp.Storage.BucketIAMMember(\"reader\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.legacyBucketReader\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var keyUser = new Gcp.Kms.CryptoKeyIAMMember(\"key_user\", new()\n {\n CryptoKeyId = \"kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destination_connection_profile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n GcsProfile = new Gcp.Datastream.Inputs.ConnectionProfileGcsProfileArgs\n {\n Bucket = bucket.Name,\n RootPath = \"/path\",\n },\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n DesiredState = \"NOT_STARTED\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n Labels = \n {\n { \"key\", \"value\" },\n },\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigArgs\n {\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"includedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"includedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"includedTable_2\",\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n MaxConcurrentCdcTasks = 5,\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n GcsDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigArgs\n {\n Path = \"mydata\",\n FileRotationMb = 200,\n FileRotationInterval = \"60s\",\n JsonFileFormat = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs\n {\n SchemaFileFormat = \"NO_SCHEMA_FILE\",\n Compression = \"GZIP\",\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n MysqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n },\n CustomerManagedEncryptionKey = \"kms-name\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n keyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tName: pulumi.String(\"db\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"source_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"my-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"viewer\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"creator\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectCreator\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"reader\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.legacyBucketReader\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"key_user\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destination_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tGcsProfile: \u0026datastream.ConnectionProfileGcsProfileArgs{\n\t\t\t\tBucket: bucket.Name,\n\t\t\t\tRootPath: pulumi.String(\"/path\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"NOT_STARTED\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: \u0026datastream.StreamSourceConfigMysqlSourceConfigArgs{\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"includedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"includedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"includedTable_2\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMaxConcurrentCdcTasks: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tGcsDestinationConfig: \u0026datastream.StreamDestinationConfigGcsDestinationConfigArgs{\n\t\t\t\t\tPath: pulumi.String(\"mydata\"),\n\t\t\t\t\tFileRotationMb: pulumi.Int(200),\n\t\t\t\t\tFileRotationInterval: pulumi.String(\"60s\"),\n\t\t\t\t\tJsonFileFormat: \u0026datastream.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{\n\t\t\t\t\t\tSchemaFileFormat: pulumi.String(\"NO_SCHEMA_FILE\"),\n\t\t\t\t\t\tCompression: pulumi.String(\"GZIP\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tMysqlExcludedObjects: \u0026datastream.StreamBackfillAllMysqlExcludedObjectsArgs{\n\t\t\t\t\tMysqlDatabases: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\tMysqlTables: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomerManagedEncryptionKey: pulumi.String(\"kms-name\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileGcsProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllMysqlExcludedObjectsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"my-instance\")\n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .instance(instance.name())\n .name(\"db\")\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder()\n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"user\")\n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(\"my-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var viewer = new BucketIAMMember(\"viewer\", BucketIAMMemberArgs.builder()\n .bucket(bucket.name())\n .role(\"roles/storage.objectViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var creator = new BucketIAMMember(\"creator\", BucketIAMMemberArgs.builder()\n .bucket(bucket.name())\n .role(\"roles/storage.objectCreator\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var reader = new BucketIAMMember(\"reader\", BucketIAMMemberArgs.builder()\n .bucket(bucket.name())\n .role(\"roles/storage.legacyBucketReader\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var keyUser = new CryptoKeyIAMMember(\"keyUser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .gcsProfile(ConnectionProfileGcsProfileArgs.builder()\n .bucket(bucket.name())\n .rootPath(\"/path\")\n .build())\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .streamId(\"my-stream\")\n .desiredState(\"NOT_STARTED\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .labels(Map.of(\"key\", \"value\"))\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig(StreamSourceConfigMysqlSourceConfigArgs.builder()\n .includeObjects(StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables( \n StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"includedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"includedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build(),\n StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"includedTable_2\")\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .maxConcurrentCdcTasks(5)\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .gcsDestinationConfig(StreamDestinationConfigGcsDestinationConfigArgs.builder()\n .path(\"mydata\")\n .fileRotationMb(200)\n .fileRotationInterval(\"60s\")\n .jsonFileFormat(StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs.builder()\n .schemaFileFormat(\"NO_SCHEMA_FILE\")\n .compression(\"GZIP\")\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .mysqlExcludedObjects(StreamBackfillAllMysqlExcludedObjectsArgs.builder()\n .mysqlDatabases(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .build())\n .customerManagedEncryptionKey(\"kms-name\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(keyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: my-instance\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n name: db\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n name: user\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: source_connection_profile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: my-bucket\n location: US\n uniformBucketLevelAccess: true\n viewer:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectViewer\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n creator:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectCreator\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n reader:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.legacyBucketReader\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n keyUser:\n type: gcp:kms:CryptoKeyIAMMember\n name: key_user\n properties:\n cryptoKeyId: kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: destination_connection_profile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n gcsProfile:\n bucket: ${bucket.name}\n rootPath: /path\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n desiredState: NOT_STARTED\n location: us-central1\n displayName: my stream\n labels:\n key: value\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig:\n includeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: includedTable\n mysqlColumns:\n - column: includedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n - table: includedTable_2\n excludeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n maxConcurrentCdcTasks: 5\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n gcsDestinationConfig:\n path: mydata\n fileRotationMb: 200\n fileRotationInterval: 60s\n jsonFileFormat:\n schemaFileFormat: NO_SCHEMA_FILE\n compression: GZIP\n backfillAll:\n mysqlExcludedObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n customerManagedEncryptionKey: kms-name\n options:\n dependson:\n - ${keyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Postgresql\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"Postgresql Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n postgresqlProfile: {\n hostname: \"hostname\",\n port: 3306,\n username: \"user\",\n password: \"pass\",\n database: \"postgres\",\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n displayName: \"Postgres to BigQuery\",\n location: \"us-central1\",\n streamId: \"my-stream\",\n desiredState: \"RUNNING\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n postgresqlSourceConfig: {\n maxConcurrentBackfillTasks: 12,\n publication: \"publication\",\n replicationSlot: \"replication_slot\",\n includeObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n excludeObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillAll: {\n postgresqlExcludedObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"Postgresql Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n postgresql_profile={\n \"hostname\": \"hostname\",\n \"port\": 3306,\n \"username\": \"user\",\n \"password\": \"pass\",\n \"database\": \"postgres\",\n })\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\ndefault = gcp.datastream.Stream(\"default\",\n display_name=\"Postgres to BigQuery\",\n location=\"us-central1\",\n stream_id=\"my-stream\",\n desired_state=\"RUNNING\",\n source_config={\n \"source_connection_profile\": source.id,\n \"postgresql_source_config\": {\n \"max_concurrent_backfill_tasks\": 12,\n \"publication\": \"publication\",\n \"replication_slot\": \"replication_slot\",\n \"include_objects\": {\n \"postgresql_schemas\": [{\n \"schema\": \"schema\",\n \"postgresql_tables\": [{\n \"table\": \"table\",\n \"postgresql_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n \"exclude_objects\": {\n \"postgresql_schemas\": [{\n \"schema\": \"schema\",\n \"postgresql_tables\": [{\n \"table\": \"table\",\n \"postgresql_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n },\n },\n destination_config={\n \"destination_connection_profile\": destination.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n },\n },\n },\n },\n backfill_all={\n \"postgresql_excluded_objects\": {\n \"postgresql_schemas\": [{\n \"schema\": \"schema\",\n \"postgresql_tables\": [{\n \"table\": \"table\",\n \"postgresql_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"Postgresql Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n PostgresqlProfile = new Gcp.Datastream.Inputs.ConnectionProfilePostgresqlProfileArgs\n {\n Hostname = \"hostname\",\n Port = 3306,\n Username = \"user\",\n Password = \"pass\",\n Database = \"postgres\",\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n DisplayName = \"Postgres to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"my-stream\",\n DesiredState = \"RUNNING\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n PostgresqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigArgs\n {\n MaxConcurrentBackfillTasks = 12,\n Publication = \"publication\",\n ReplicationSlot = \"replication_slot\",\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n PostgresqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Postgresql Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tPostgresqlProfile: \u0026datastream.ConnectionProfilePostgresqlProfileArgs{\n\t\t\t\tHostname: pulumi.String(\"hostname\"),\n\t\t\t\tPort: pulumi.Int(3306),\n\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\tPassword: pulumi.String(\"pass\"),\n\t\t\t\tDatabase: pulumi.String(\"postgres\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"Postgres to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"RUNNING\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tPostgresqlSourceConfig: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigArgs{\n\t\t\t\t\tMaxConcurrentBackfillTasks: pulumi.Int(12),\n\t\t\t\t\tPublication: pulumi.String(\"publication\"),\n\t\t\t\t\tReplicationSlot: pulumi.String(\"replication_slot\"),\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tPostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tPostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tPostgresqlExcludedObjects: \u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsArgs{\n\t\t\t\t\tPostgresqlSchemas: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfilePostgresqlProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder()\n .displayName(\"Postgresql Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .postgresqlProfile(ConnectionProfilePostgresqlProfileArgs.builder()\n .hostname(\"hostname\")\n .port(3306)\n .username(\"user\")\n .password(\"pass\")\n .database(\"postgres\")\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder()\n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .displayName(\"Postgres to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"my-stream\")\n .desiredState(\"RUNNING\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .postgresqlSourceConfig(StreamSourceConfigPostgresqlSourceConfigArgs.builder()\n .maxConcurrentBackfillTasks(12)\n .publication(\"publication\")\n .replicationSlot(\"replication_slot\")\n .includeObjects(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.builder()\n .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.builder()\n .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .postgresqlExcludedObjects(StreamBackfillAllPostgresqlExcludedObjectsArgs.builder()\n .postgresqlSchemas(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Postgresql Source\n location: us-central1\n connectionProfileId: source-profile\n postgresqlProfile:\n hostname: hostname\n port: 3306\n username: user\n password: pass\n database: postgres\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n displayName: Postgres to BigQuery\n location: us-central1\n streamId: my-stream\n desiredState: RUNNING\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n postgresqlSourceConfig:\n maxConcurrentBackfillTasks: 12\n publication: publication\n replicationSlot: replication_slot\n includeObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n excludeObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillAll:\n postgresqlExcludedObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Oracle\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"Oracle Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n oracleProfile: {\n hostname: \"hostname\",\n port: 1521,\n username: \"user\",\n password: \"pass\",\n databaseService: \"ORCL\",\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst stream5 = new gcp.datastream.Stream(\"stream5\", {\n displayName: \"Oracle to BigQuery\",\n location: \"us-central1\",\n streamId: \"my-stream\",\n desiredState: \"RUNNING\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n oracleSourceConfig: {\n maxConcurrentCdcTasks: 8,\n maxConcurrentBackfillTasks: 12,\n includeObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n excludeObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n dropLargeObjects: {},\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillAll: {\n oracleExcludedObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"Oracle Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n oracle_profile={\n \"hostname\": \"hostname\",\n \"port\": 1521,\n \"username\": \"user\",\n \"password\": \"pass\",\n \"database_service\": \"ORCL\",\n })\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\nstream5 = gcp.datastream.Stream(\"stream5\",\n display_name=\"Oracle to BigQuery\",\n location=\"us-central1\",\n stream_id=\"my-stream\",\n desired_state=\"RUNNING\",\n source_config={\n \"source_connection_profile\": source.id,\n \"oracle_source_config\": {\n \"max_concurrent_cdc_tasks\": 8,\n \"max_concurrent_backfill_tasks\": 12,\n \"include_objects\": {\n \"oracle_schemas\": [{\n \"schema\": \"schema\",\n \"oracle_tables\": [{\n \"table\": \"table\",\n \"oracle_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n \"exclude_objects\": {\n \"oracle_schemas\": [{\n \"schema\": \"schema\",\n \"oracle_tables\": [{\n \"table\": \"table\",\n \"oracle_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n \"drop_large_objects\": {},\n },\n },\n destination_config={\n \"destination_connection_profile\": destination.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n },\n },\n },\n },\n backfill_all={\n \"oracle_excluded_objects\": {\n \"oracle_schemas\": [{\n \"schema\": \"schema\",\n \"oracle_tables\": [{\n \"table\": \"table\",\n \"oracle_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"Oracle Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n OracleProfile = new Gcp.Datastream.Inputs.ConnectionProfileOracleProfileArgs\n {\n Hostname = \"hostname\",\n Port = 1521,\n Username = \"user\",\n Password = \"pass\",\n DatabaseService = \"ORCL\",\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var stream5 = new Gcp.Datastream.Stream(\"stream5\", new()\n {\n DisplayName = \"Oracle to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"my-stream\",\n DesiredState = \"RUNNING\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n OracleSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigArgs\n {\n MaxConcurrentCdcTasks = 8,\n MaxConcurrentBackfillTasks = 12,\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n DropLargeObjects = null,\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n OracleExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Oracle Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tOracleProfile: \u0026datastream.ConnectionProfileOracleProfileArgs{\n\t\t\t\tHostname: pulumi.String(\"hostname\"),\n\t\t\t\tPort: pulumi.Int(1521),\n\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\tPassword: pulumi.String(\"pass\"),\n\t\t\t\tDatabaseService: pulumi.String(\"ORCL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"stream5\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"Oracle to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"RUNNING\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tOracleSourceConfig: \u0026datastream.StreamSourceConfigOracleSourceConfigArgs{\n\t\t\t\t\tMaxConcurrentCdcTasks: pulumi.Int(8),\n\t\t\t\t\tMaxConcurrentBackfillTasks: pulumi.Int(12),\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tOracleSchemas: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tOracleTables: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tOracleSchemas: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tOracleTables: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDropLargeObjects: nil,\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tOracleExcludedObjects: \u0026datastream.StreamBackfillAllOracleExcludedObjectsArgs{\n\t\t\t\t\tOracleSchemas: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\tOracleTables: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileOracleProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder()\n .displayName(\"Oracle Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .oracleProfile(ConnectionProfileOracleProfileArgs.builder()\n .hostname(\"hostname\")\n .port(1521)\n .username(\"user\")\n .password(\"pass\")\n .databaseService(\"ORCL\")\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder()\n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var stream5 = new Stream(\"stream5\", StreamArgs.builder()\n .displayName(\"Oracle to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"my-stream\")\n .desiredState(\"RUNNING\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .oracleSourceConfig(StreamSourceConfigOracleSourceConfigArgs.builder()\n .maxConcurrentCdcTasks(8)\n .maxConcurrentBackfillTasks(12)\n .includeObjects(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.builder()\n .oracleSchemas(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.builder()\n .oracleSchemas(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .dropLargeObjects()\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .oracleExcludedObjects(StreamBackfillAllOracleExcludedObjectsArgs.builder()\n .oracleSchemas(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Oracle Source\n location: us-central1\n connectionProfileId: source-profile\n oracleProfile:\n hostname: hostname\n port: 1521\n username: user\n password: pass\n databaseService: ORCL\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n stream5:\n type: gcp:datastream:Stream\n properties:\n displayName: Oracle to BigQuery\n location: us-central1\n streamId: my-stream\n desiredState: RUNNING\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n oracleSourceConfig:\n maxConcurrentCdcTasks: 8\n maxConcurrentBackfillTasks: 12\n includeObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n excludeObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n dropLargeObjects: {}\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillAll:\n oracleExcludedObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Sql Server\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"sql-server\",\n databaseVersion: \"SQLSERVER_2019_STANDARD\",\n region: \"us-central1\",\n rootPassword: \"root-password\",\n deletionProtection: true,\n settings: {\n tier: \"db-custom-2-4096\",\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"user\",\n instance: instance.name,\n password: \"password\",\n});\nconst db = new gcp.sql.Database(\"db\", {\n name: \"db\",\n instance: instance.name,\n}, {\n dependsOn: [user],\n});\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"SQL Server Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n sqlServerProfile: {\n hostname: instance.publicIpAddress,\n port: 1433,\n username: user.name,\n password: user.password,\n database: db.name,\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n displayName: \"SQL Server to BigQuery\",\n location: \"us-central1\",\n streamId: \"stream\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n sqlServerSourceConfig: {\n includeObjects: {\n schemas: [{\n schema: \"schema\",\n tables: [{\n table: \"table\",\n }],\n }],\n },\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillNone: {},\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"sql-server\",\n database_version=\"SQLSERVER_2019_STANDARD\",\n region=\"us-central1\",\n root_password=\"root-password\",\n deletion_protection=True,\n settings={\n \"tier\": \"db-custom-2-4096\",\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n })\nuser = gcp.sql.User(\"user\",\n name=\"user\",\n instance=instance.name,\n password=\"password\")\ndb = gcp.sql.Database(\"db\",\n name=\"db\",\n instance=instance.name,\n opts = pulumi.ResourceOptions(depends_on=[user]))\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"SQL Server Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n sql_server_profile={\n \"hostname\": instance.public_ip_address,\n \"port\": 1433,\n \"username\": user.name,\n \"password\": user.password,\n \"database\": db.name,\n })\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\ndefault = gcp.datastream.Stream(\"default\",\n display_name=\"SQL Server to BigQuery\",\n location=\"us-central1\",\n stream_id=\"stream\",\n source_config={\n \"source_connection_profile\": source.id,\n \"sql_server_source_config\": {\n \"include_objects\": {\n \"schemas\": [{\n \"schema\": \"schema\",\n \"tables\": [{\n \"table\": \"table\",\n }],\n }],\n },\n },\n },\n destination_config={\n \"destination_connection_profile\": destination.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n },\n },\n },\n },\n backfill_none={})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"sql-server\",\n DatabaseVersion = \"SQLSERVER_2019_STANDARD\",\n Region = \"us-central1\",\n RootPassword = \"root-password\",\n DeletionProtection = true,\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-custom-2-4096\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"user\",\n Instance = instance.Name,\n Password = \"password\",\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Name = \"db\",\n Instance = instance.Name,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n user,\n },\n });\n\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"SQL Server Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n SqlServerProfile = new Gcp.Datastream.Inputs.ConnectionProfileSqlServerProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Port = 1433,\n Username = user.Name,\n Password = user.Password,\n Database = db.Name,\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n DisplayName = \"SQL Server to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"stream\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n SqlServerSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigArgs\n {\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs\n {\n Schemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArgs\n {\n Schema = \"schema\",\n Tables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArgs\n {\n Table = \"table\",\n },\n },\n },\n },\n },\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillNone = null,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"sql-server\"),\n\t\t\tDatabaseVersion: pulumi.String(\"SQLSERVER_2019_STANDARD\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tRootPassword: pulumi.String(\"root-password\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-custom-2-4096\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tPassword: pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdb, err := sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tName: pulumi.String(\"db\"),\n\t\t\tInstance: instance.Name,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"SQL Server Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tSqlServerProfile: \u0026datastream.ConnectionProfileSqlServerProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tPort: pulumi.Int(1433),\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t\tDatabase: db.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"SQL Server to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"stream\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tSqlServerSourceConfig: \u0026datastream.StreamSourceConfigSqlServerSourceConfigArgs{\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tSchemas: datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tTables: datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillNone: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileSqlServerProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigSqlServerSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"sql-server\")\n .databaseVersion(\"SQLSERVER_2019_STANDARD\")\n .region(\"us-central1\")\n .rootPassword(\"root-password\")\n .deletionProtection(\"true\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-custom-2-4096\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"user\")\n .instance(instance.name())\n .password(\"password\")\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .name(\"db\")\n .instance(instance.name())\n .build(), CustomResourceOptions.builder()\n .dependsOn(user)\n .build());\n\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder()\n .displayName(\"SQL Server Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .sqlServerProfile(ConnectionProfileSqlServerProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .port(1433)\n .username(user.name())\n .password(user.password())\n .database(db.name())\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder()\n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .displayName(\"SQL Server to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"stream\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .sqlServerSourceConfig(StreamSourceConfigSqlServerSourceConfigArgs.builder()\n .includeObjects(StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs.builder()\n .schemas(StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArgs.builder()\n .schema(\"schema\")\n .tables(StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArgs.builder()\n .table(\"table\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillNone()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: sql-server\n databaseVersion: SQLSERVER_2019_STANDARD\n region: us-central1\n rootPassword: root-password\n deletionProtection: 'true'\n settings:\n tier: db-custom-2-4096\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n db:\n type: gcp:sql:Database\n properties:\n name: db\n instance: ${instance.name}\n options:\n dependson:\n - ${user}\n user:\n type: gcp:sql:User\n properties:\n name: user\n instance: ${instance.name}\n password: password\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: SQL Server Source\n location: us-central1\n connectionProfileId: source-profile\n sqlServerProfile:\n hostname: ${instance.publicIpAddress}\n port: 1433\n username: ${user.name}\n password: ${user.password}\n database: ${db.name}\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n displayName: SQL Server to BigQuery\n location: us-central1\n streamId: stream\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n sqlServerSourceConfig:\n includeObjects:\n schemas:\n - schema: schema\n tables:\n - table: table\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillNone: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Postgresql Bigquery Dataset Id\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst postgres = new gcp.bigquery.Dataset(\"postgres\", {\n datasetId: \"postgres\",\n friendlyName: \"postgres\",\n description: \"Database of postgres\",\n location: \"us-central1\",\n});\nconst destinationConnectionProfile2 = new gcp.datastream.ConnectionProfile(\"destination_connection_profile2\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"dest-profile\",\n bigqueryProfile: {},\n});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"instance-name\",\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: false,\n});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"my-user\",\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"source_connection_profile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n displayName: \"postgres to bigQuery\",\n location: \"us-central1\",\n streamId: \"postgres-bigquery\",\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {},\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile2.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n singleTargetDataset: {\n datasetId: postgres.id,\n },\n },\n },\n backfillAll: {},\n});\nconst db = new gcp.sql.Database(\"db\", {\n instance: instance.name,\n name: \"db\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\npostgres = gcp.bigquery.Dataset(\"postgres\",\n dataset_id=\"postgres\",\n friendly_name=\"postgres\",\n description=\"Database of postgres\",\n location=\"us-central1\")\ndestination_connection_profile2 = gcp.datastream.ConnectionProfile(\"destination_connection_profile2\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"dest-profile\",\n bigquery_profile={})\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"instance-name\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n },\n deletion_protection=False)\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n name=\"my-user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"source_connection_profile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile={\n \"hostname\": instance.public_ip_address,\n \"username\": user.name,\n \"password\": user.password,\n })\ndefault = gcp.datastream.Stream(\"default\",\n display_name=\"postgres to bigQuery\",\n location=\"us-central1\",\n stream_id=\"postgres-bigquery\",\n source_config={\n \"source_connection_profile\": source_connection_profile.id,\n \"mysql_source_config\": {},\n },\n destination_config={\n \"destination_connection_profile\": destination_connection_profile2.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"single_target_dataset\": {\n \"dataset_id\": postgres.id,\n },\n },\n },\n backfill_all={})\ndb = gcp.sql.Database(\"db\",\n instance=instance.name,\n name=\"db\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgres = new Gcp.BigQuery.Dataset(\"postgres\", new()\n {\n DatasetId = \"postgres\",\n FriendlyName = \"postgres\",\n Description = \"Database of postgres\",\n Location = \"us-central1\",\n });\n\n var destinationConnectionProfile2 = new Gcp.Datastream.ConnectionProfile(\"destination_connection_profile2\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"dest-profile\",\n BigqueryProfile = null,\n });\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"instance-name\",\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = false,\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"my-user\",\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"source_connection_profile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n DisplayName = \"postgres to bigQuery\",\n Location = \"us-central1\",\n StreamId = \"postgres-bigquery\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = null,\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile2.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SingleTargetDataset = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs\n {\n DatasetId = postgres.Id,\n },\n },\n },\n BackfillAll = null,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n Name = \"db\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpostgres, err := bigquery.NewDataset(ctx, \"postgres\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"postgres\"),\n\t\t\tFriendlyName: pulumi.String(\"postgres\"),\n\t\t\tDescription: pulumi.String(\"Database of postgres\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile2, err := datastream.NewConnectionProfile(ctx, \"destination_connection_profile2\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"dest-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"instance-name\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"my-user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"source_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"postgres to bigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"postgres-bigquery\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: nil,\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile2.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSingleTargetDataset: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{\n\t\t\t\t\t\tDatasetId: postgres.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tName: pulumi.String(\"db\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgres = new Dataset(\"postgres\", DatasetArgs.builder()\n .datasetId(\"postgres\")\n .friendlyName(\"postgres\")\n .description(\"Database of postgres\")\n .location(\"us-central1\")\n .build());\n\n var destinationConnectionProfile2 = new ConnectionProfile(\"destinationConnectionProfile2\", ConnectionProfileArgs.builder()\n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"dest-profile\")\n .bigqueryProfile()\n .build());\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"instance-name\")\n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(false)\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder()\n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"my-user\")\n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .displayName(\"postgres to bigQuery\")\n .location(\"us-central1\")\n .streamId(\"postgres-bigquery\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig()\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile2.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .singleTargetDataset(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs.builder()\n .datasetId(postgres.id())\n .build())\n .build())\n .build())\n .backfillAll()\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .instance(instance.name())\n .name(\"db\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgres:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: postgres\n friendlyName: postgres\n description: Database of postgres\n location: us-central1\n default:\n type: gcp:datastream:Stream\n properties:\n displayName: postgres to bigQuery\n location: us-central1\n streamId: postgres-bigquery\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig: {}\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile2.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n singleTargetDataset:\n datasetId: ${postgres.id}\n backfillAll: {}\n destinationConnectionProfile2:\n type: gcp:datastream:ConnectionProfile\n name: destination_connection_profile2\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: dest-profile\n bigqueryProfile: {}\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: instance-name\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: false\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n name: db\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n name: my-user\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: source_connection_profile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Bigquery\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"my-instance\",\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {\n instance: instance.name,\n name: \"db\",\n});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"user\",\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"source_connection_profile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bqSa = gcp.bigquery.getDefaultServiceAccount({});\nconst bigqueryKeyUser = new gcp.kms.CryptoKeyIAMMember(\"bigquery_key_user\", {\n cryptoKeyId: \"bigquery-kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: bqSa.then(bqSa =\u003e `serviceAccount:${bqSa.email}`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destination_connection_profile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n location: \"us-central1\",\n displayName: \"my stream\",\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {},\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n bigqueryDestinationConfig: {\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n kmsKeyName: \"bigquery-kms-name\",\n },\n },\n },\n },\n backfillNone: {},\n}, {\n dependsOn: [bigqueryKeyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"my-instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n },\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\",\n instance=instance.name,\n name=\"db\")\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n name=\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"source_connection_profile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile={\n \"hostname\": instance.public_ip_address,\n \"username\": user.name,\n \"password\": user.password,\n })\nbq_sa = gcp.bigquery.get_default_service_account()\nbigquery_key_user = gcp.kms.CryptoKeyIAMMember(\"bigquery_key_user\",\n crypto_key_id=\"bigquery-kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:{bq_sa.email}\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destination_connection_profile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n location=\"us-central1\",\n display_name=\"my stream\",\n source_config={\n \"source_connection_profile\": source_connection_profile.id,\n \"mysql_source_config\": {},\n },\n destination_config={\n \"destination_connection_profile\": destination_connection_profile.id,\n \"bigquery_destination_config\": {\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n \"kms_key_name\": \"bigquery-kms-name\",\n },\n },\n },\n },\n backfill_none={},\n opts = pulumi.ResourceOptions(depends_on=[bigquery_key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"my-instance\",\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n Name = \"db\",\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"user\",\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"source_connection_profile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bqSa = Gcp.BigQuery.GetDefaultServiceAccount.Invoke();\n\n var bigqueryKeyUser = new Gcp.Kms.CryptoKeyIAMMember(\"bigquery_key_user\", new()\n {\n CryptoKeyId = \"bigquery-kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:{bqSa.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)}\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destination_connection_profile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = null,\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n KmsKeyName = \"bigquery-kms-name\",\n },\n },\n },\n },\n BackfillNone = null,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n bigqueryKeyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tName: pulumi.String(\"db\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"source_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbqSa, err := bigquery.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbigqueryKeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"bigquery_key_user\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"bigquery-kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:%v\", bqSa.Email)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destination_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: nil,\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t\tKmsKeyName: pulumi.String(\"bigquery-kms-name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillNone: nil,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbigqueryKeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.bigquery.BigqueryFunctions;\nimport com.pulumi.gcp.bigquery.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"my-instance\")\n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .instance(instance.name())\n .name(\"db\")\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder()\n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"user\")\n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n final var bqSa = BigqueryFunctions.getDefaultServiceAccount();\n\n var bigqueryKeyUser = new CryptoKeyIAMMember(\"bigqueryKeyUser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"bigquery-kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:%s\", bqSa.applyValue(getDefaultServiceAccountResult -\u003e getDefaultServiceAccountResult.email())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .streamId(\"my-stream\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig()\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .kmsKeyName(\"bigquery-kms-name\")\n .build())\n .build())\n .build())\n .build())\n .backfillNone()\n .build(), CustomResourceOptions.builder()\n .dependsOn(bigqueryKeyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: my-instance\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n name: db\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n name: user\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: source_connection_profile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bigqueryKeyUser:\n type: gcp:kms:CryptoKeyIAMMember\n name: bigquery_key_user\n properties:\n cryptoKeyId: bigquery-kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${bqSa.email}\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: destination_connection_profile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n location: us-central1\n displayName: my stream\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig: {}\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n bigqueryDestinationConfig:\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n kmsKeyName: bigquery-kms-name\n backfillNone: {}\n options:\n dependson:\n - ${bigqueryKeyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n bqSa:\n fn::invoke:\n Function: gcp:bigquery:getDefaultServiceAccount\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nStream can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/streams/{{stream_id}}`\n\n* `{{project}}/{{location}}/{{stream_id}}`\n\n* `{{location}}/{{stream_id}}`\n\nWhen using the `pulumi import` command, Stream can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:datastream/stream:Stream default projects/{{project}}/locations/{{location}}/streams/{{stream_id}}\n```\n\n```sh\n$ pulumi import gcp:datastream/stream:Stream default {{project}}/{{location}}/{{stream_id}}\n```\n\n```sh\n$ pulumi import gcp:datastream/stream:Stream default {{location}}/{{stream_id}}\n```\n\n", + "description": "A resource representing streaming data from a source to a destination.\n\n\nTo get more information about Stream, see:\n\n* [API documentation](https://cloud.google.com/datastream/docs/reference/rest/v1/projects.locations.streams)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/datastream/docs/create-a-stream)\n\n## Example Usage\n\n### Datastream Stream Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"my-instance\",\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {\n instance: instance.name,\n name: \"db\",\n});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"user\",\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"source_connection_profile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bucket = new gcp.storage.Bucket(\"bucket\", {\n name: \"my-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst viewer = new gcp.storage.BucketIAMMember(\"viewer\", {\n bucket: bucket.name,\n role: \"roles/storage.objectViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst creator = new gcp.storage.BucketIAMMember(\"creator\", {\n bucket: bucket.name,\n role: \"roles/storage.objectCreator\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst reader = new gcp.storage.BucketIAMMember(\"reader\", {\n bucket: bucket.name,\n role: \"roles/storage.legacyBucketReader\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst keyUser = new gcp.kms.CryptoKeyIAMMember(\"key_user\", {\n cryptoKeyId: \"kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destination_connection_profile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n gcsProfile: {\n bucket: bucket.name,\n rootPath: \"/path\",\n },\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n desiredState: \"NOT_STARTED\",\n location: \"us-central1\",\n displayName: \"my stream\",\n labels: {\n key: \"value\",\n },\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {\n includeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [\n {\n table: \"includedTable\",\n mysqlColumns: [{\n column: \"includedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n },\n {\n table: \"includedTable_2\",\n },\n ],\n }],\n },\n excludeObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n maxConcurrentCdcTasks: 5,\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n gcsDestinationConfig: {\n path: \"mydata\",\n fileRotationMb: 200,\n fileRotationInterval: \"60s\",\n jsonFileFormat: {\n schemaFileFormat: \"NO_SCHEMA_FILE\",\n compression: \"GZIP\",\n },\n },\n },\n backfillAll: {\n mysqlExcludedObjects: {\n mysqlDatabases: [{\n database: \"my-database\",\n mysqlTables: [{\n table: \"excludedTable\",\n mysqlColumns: [{\n column: \"excludedColumn\",\n dataType: \"VARCHAR\",\n collation: \"utf8mb4\",\n primaryKey: false,\n nullable: false,\n ordinalPosition: 0,\n }],\n }],\n }],\n },\n },\n customerManagedEncryptionKey: \"kms-name\",\n}, {\n dependsOn: [keyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"my-instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n },\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\",\n instance=instance.name,\n name=\"db\")\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n name=\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"source_connection_profile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile={\n \"hostname\": instance.public_ip_address,\n \"username\": user.name,\n \"password\": user.password,\n })\nbucket = gcp.storage.Bucket(\"bucket\",\n name=\"my-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nviewer = gcp.storage.BucketIAMMember(\"viewer\",\n bucket=bucket.name,\n role=\"roles/storage.objectViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ncreator = gcp.storage.BucketIAMMember(\"creator\",\n bucket=bucket.name,\n role=\"roles/storage.objectCreator\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nreader = gcp.storage.BucketIAMMember(\"reader\",\n bucket=bucket.name,\n role=\"roles/storage.legacyBucketReader\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\nkey_user = gcp.kms.CryptoKeyIAMMember(\"key_user\",\n crypto_key_id=\"kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-datastream.iam.gserviceaccount.com\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destination_connection_profile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n gcs_profile={\n \"bucket\": bucket.name,\n \"root_path\": \"/path\",\n })\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n desired_state=\"NOT_STARTED\",\n location=\"us-central1\",\n display_name=\"my stream\",\n labels={\n \"key\": \"value\",\n },\n source_config={\n \"source_connection_profile\": source_connection_profile.id,\n \"mysql_source_config\": {\n \"include_objects\": {\n \"mysql_databases\": [{\n \"database\": \"my-database\",\n \"mysql_tables\": [\n {\n \"table\": \"includedTable\",\n \"mysql_columns\": [{\n \"column\": \"includedColumn\",\n \"data_type\": \"VARCHAR\",\n \"collation\": \"utf8mb4\",\n \"primary_key\": False,\n \"nullable\": False,\n \"ordinal_position\": 0,\n }],\n },\n {\n \"table\": \"includedTable_2\",\n },\n ],\n }],\n },\n \"exclude_objects\": {\n \"mysql_databases\": [{\n \"database\": \"my-database\",\n \"mysql_tables\": [{\n \"table\": \"excludedTable\",\n \"mysql_columns\": [{\n \"column\": \"excludedColumn\",\n \"data_type\": \"VARCHAR\",\n \"collation\": \"utf8mb4\",\n \"primary_key\": False,\n \"nullable\": False,\n \"ordinal_position\": 0,\n }],\n }],\n }],\n },\n \"max_concurrent_cdc_tasks\": 5,\n },\n },\n destination_config={\n \"destination_connection_profile\": destination_connection_profile.id,\n \"gcs_destination_config\": {\n \"path\": \"mydata\",\n \"file_rotation_mb\": 200,\n \"file_rotation_interval\": \"60s\",\n \"json_file_format\": {\n \"schema_file_format\": \"NO_SCHEMA_FILE\",\n \"compression\": \"GZIP\",\n },\n },\n },\n backfill_all={\n \"mysql_excluded_objects\": {\n \"mysql_databases\": [{\n \"database\": \"my-database\",\n \"mysql_tables\": [{\n \"table\": \"excludedTable\",\n \"mysql_columns\": [{\n \"column\": \"excludedColumn\",\n \"data_type\": \"VARCHAR\",\n \"collation\": \"utf8mb4\",\n \"primary_key\": False,\n \"nullable\": False,\n \"ordinal_position\": 0,\n }],\n }],\n }],\n },\n },\n customer_managed_encryption_key=\"kms-name\",\n opts = pulumi.ResourceOptions(depends_on=[key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"my-instance\",\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n Name = \"db\",\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"user\",\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"source_connection_profile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bucket = new Gcp.Storage.Bucket(\"bucket\", new()\n {\n Name = \"my-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var viewer = new Gcp.Storage.BucketIAMMember(\"viewer\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var creator = new Gcp.Storage.BucketIAMMember(\"creator\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.objectCreator\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var reader = new Gcp.Storage.BucketIAMMember(\"reader\", new()\n {\n Bucket = bucket.Name,\n Role = \"roles/storage.legacyBucketReader\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var keyUser = new Gcp.Kms.CryptoKeyIAMMember(\"key_user\", new()\n {\n CryptoKeyId = \"kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-datastream.iam.gserviceaccount.com\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destination_connection_profile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n GcsProfile = new Gcp.Datastream.Inputs.ConnectionProfileGcsProfileArgs\n {\n Bucket = bucket.Name,\n RootPath = \"/path\",\n },\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n DesiredState = \"NOT_STARTED\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n Labels = \n {\n { \"key\", \"value\" },\n },\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigArgs\n {\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"includedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"includedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"includedTable_2\",\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n MaxConcurrentCdcTasks = 5,\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n GcsDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigArgs\n {\n Path = \"mydata\",\n FileRotationMb = 200,\n FileRotationInterval = \"60s\",\n JsonFileFormat = new Gcp.Datastream.Inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs\n {\n SchemaFileFormat = \"NO_SCHEMA_FILE\",\n Compression = \"GZIP\",\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n MysqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsArgs\n {\n MysqlDatabases = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs\n {\n Database = \"my-database\",\n MysqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs\n {\n Table = \"excludedTable\",\n MysqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs\n {\n Column = \"excludedColumn\",\n DataType = \"VARCHAR\",\n Collation = \"utf8mb4\",\n PrimaryKey = false,\n Nullable = false,\n OrdinalPosition = 0,\n },\n },\n },\n },\n },\n },\n },\n },\n CustomerManagedEncryptionKey = \"kms-name\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n keyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tName: pulumi.String(\"db\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"source_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbucket, err := storage.NewBucket(ctx, \"bucket\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"my-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"viewer\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"creator\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.objectCreator\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.NewBucketIAMMember(ctx, \"reader\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: bucket.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.legacyBucketReader\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tkeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"key_user\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-datastream.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destination_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tGcsProfile: \u0026datastream.ConnectionProfileGcsProfileArgs{\n\t\t\t\tBucket: bucket.Name,\n\t\t\t\tRootPath: pulumi.String(\"/path\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"NOT_STARTED\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t},\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: \u0026datastream.StreamSourceConfigMysqlSourceConfigArgs{\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"includedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"includedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"includedTable_2\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tMysqlDatabases: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\t\tMysqlTables: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMaxConcurrentCdcTasks: pulumi.Int(5),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tGcsDestinationConfig: \u0026datastream.StreamDestinationConfigGcsDestinationConfigArgs{\n\t\t\t\t\tPath: pulumi.String(\"mydata\"),\n\t\t\t\t\tFileRotationMb: pulumi.Int(200),\n\t\t\t\t\tFileRotationInterval: pulumi.String(\"60s\"),\n\t\t\t\t\tJsonFileFormat: \u0026datastream.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs{\n\t\t\t\t\t\tSchemaFileFormat: pulumi.String(\"NO_SCHEMA_FILE\"),\n\t\t\t\t\t\tCompression: pulumi.String(\"GZIP\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tMysqlExcludedObjects: \u0026datastream.StreamBackfillAllMysqlExcludedObjectsArgs{\n\t\t\t\t\tMysqlDatabases: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs{\n\t\t\t\t\t\t\tDatabase: pulumi.String(\"my-database\"),\n\t\t\t\t\t\t\tMysqlTables: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"excludedTable\"),\n\t\t\t\t\t\t\t\t\tMysqlColumns: datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"excludedColumn\"),\n\t\t\t\t\t\t\t\t\t\t\tDataType: pulumi.String(\"VARCHAR\"),\n\t\t\t\t\t\t\t\t\t\t\tCollation: pulumi.String(\"utf8mb4\"),\n\t\t\t\t\t\t\t\t\t\t\tPrimaryKey: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tNullable: pulumi.Bool(false),\n\t\t\t\t\t\t\t\t\t\t\tOrdinalPosition: pulumi.Int(0),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomerManagedEncryptionKey: pulumi.String(\"kms-name\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tkeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileGcsProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllMysqlExcludedObjectsArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"my-instance\")\n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .instance(instance.name())\n .name(\"db\")\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder()\n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"user\")\n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n var bucket = new Bucket(\"bucket\", BucketArgs.builder()\n .name(\"my-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var viewer = new BucketIAMMember(\"viewer\", BucketIAMMemberArgs.builder()\n .bucket(bucket.name())\n .role(\"roles/storage.objectViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var creator = new BucketIAMMember(\"creator\", BucketIAMMemberArgs.builder()\n .bucket(bucket.name())\n .role(\"roles/storage.objectCreator\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var reader = new BucketIAMMember(\"reader\", BucketIAMMemberArgs.builder()\n .bucket(bucket.name())\n .role(\"roles/storage.legacyBucketReader\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var keyUser = new CryptoKeyIAMMember(\"keyUser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-datastream.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .gcsProfile(ConnectionProfileGcsProfileArgs.builder()\n .bucket(bucket.name())\n .rootPath(\"/path\")\n .build())\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .streamId(\"my-stream\")\n .desiredState(\"NOT_STARTED\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .labels(Map.of(\"key\", \"value\"))\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig(StreamSourceConfigMysqlSourceConfigArgs.builder()\n .includeObjects(StreamSourceConfigMysqlSourceConfigIncludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables( \n StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"includedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"includedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build(),\n StreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"includedTable_2\")\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigMysqlSourceConfigExcludeObjectsArgs.builder()\n .mysqlDatabases(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .maxConcurrentCdcTasks(5)\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .gcsDestinationConfig(StreamDestinationConfigGcsDestinationConfigArgs.builder()\n .path(\"mydata\")\n .fileRotationMb(200)\n .fileRotationInterval(\"60s\")\n .jsonFileFormat(StreamDestinationConfigGcsDestinationConfigJsonFileFormatArgs.builder()\n .schemaFileFormat(\"NO_SCHEMA_FILE\")\n .compression(\"GZIP\")\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .mysqlExcludedObjects(StreamBackfillAllMysqlExcludedObjectsArgs.builder()\n .mysqlDatabases(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseArgs.builder()\n .database(\"my-database\")\n .mysqlTables(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableArgs.builder()\n .table(\"excludedTable\")\n .mysqlColumns(StreamBackfillAllMysqlExcludedObjectsMysqlDatabaseMysqlTableMysqlColumnArgs.builder()\n .column(\"excludedColumn\")\n .dataType(\"VARCHAR\")\n .collation(\"utf8mb4\")\n .primaryKey(false)\n .nullable(false)\n .ordinalPosition(0)\n .build())\n .build())\n .build())\n .build())\n .build())\n .customerManagedEncryptionKey(\"kms-name\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(keyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: my-instance\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n name: db\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n name: user\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: source_connection_profile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bucket:\n type: gcp:storage:Bucket\n properties:\n name: my-bucket\n location: US\n uniformBucketLevelAccess: true\n viewer:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectViewer\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n creator:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.objectCreator\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n reader:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${bucket.name}\n role: roles/storage.legacyBucketReader\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n keyUser:\n type: gcp:kms:CryptoKeyIAMMember\n name: key_user\n properties:\n cryptoKeyId: kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${project.number}@gcp-sa-datastream.iam.gserviceaccount.com\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: destination_connection_profile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n gcsProfile:\n bucket: ${bucket.name}\n rootPath: /path\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n desiredState: NOT_STARTED\n location: us-central1\n displayName: my stream\n labels:\n key: value\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig:\n includeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: includedTable\n mysqlColumns:\n - column: includedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n - table: includedTable_2\n excludeObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n maxConcurrentCdcTasks: 5\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n gcsDestinationConfig:\n path: mydata\n fileRotationMb: 200\n fileRotationInterval: 60s\n jsonFileFormat:\n schemaFileFormat: NO_SCHEMA_FILE\n compression: GZIP\n backfillAll:\n mysqlExcludedObjects:\n mysqlDatabases:\n - database: my-database\n mysqlTables:\n - table: excludedTable\n mysqlColumns:\n - column: excludedColumn\n dataType: VARCHAR\n collation: utf8mb4\n primaryKey: false\n nullable: false\n ordinalPosition: 0\n customerManagedEncryptionKey: kms-name\n options:\n dependson:\n - ${keyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Postgresql\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"Postgresql Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n postgresqlProfile: {\n hostname: \"hostname\",\n port: 3306,\n username: \"user\",\n password: \"pass\",\n database: \"postgres\",\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n displayName: \"Postgres to BigQuery\",\n location: \"us-central1\",\n streamId: \"my-stream\",\n desiredState: \"RUNNING\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n postgresqlSourceConfig: {\n maxConcurrentBackfillTasks: 12,\n publication: \"publication\",\n replicationSlot: \"replication_slot\",\n includeObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n excludeObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillAll: {\n postgresqlExcludedObjects: {\n postgresqlSchemas: [{\n schema: \"schema\",\n postgresqlTables: [{\n table: \"table\",\n postgresqlColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"Postgresql Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n postgresql_profile={\n \"hostname\": \"hostname\",\n \"port\": 3306,\n \"username\": \"user\",\n \"password\": \"pass\",\n \"database\": \"postgres\",\n })\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\ndefault = gcp.datastream.Stream(\"default\",\n display_name=\"Postgres to BigQuery\",\n location=\"us-central1\",\n stream_id=\"my-stream\",\n desired_state=\"RUNNING\",\n source_config={\n \"source_connection_profile\": source.id,\n \"postgresql_source_config\": {\n \"max_concurrent_backfill_tasks\": 12,\n \"publication\": \"publication\",\n \"replication_slot\": \"replication_slot\",\n \"include_objects\": {\n \"postgresql_schemas\": [{\n \"schema\": \"schema\",\n \"postgresql_tables\": [{\n \"table\": \"table\",\n \"postgresql_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n \"exclude_objects\": {\n \"postgresql_schemas\": [{\n \"schema\": \"schema\",\n \"postgresql_tables\": [{\n \"table\": \"table\",\n \"postgresql_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n },\n },\n destination_config={\n \"destination_connection_profile\": destination.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n },\n },\n },\n },\n backfill_all={\n \"postgresql_excluded_objects\": {\n \"postgresql_schemas\": [{\n \"schema\": \"schema\",\n \"postgresql_tables\": [{\n \"table\": \"table\",\n \"postgresql_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"Postgresql Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n PostgresqlProfile = new Gcp.Datastream.Inputs.ConnectionProfilePostgresqlProfileArgs\n {\n Hostname = \"hostname\",\n Port = 3306,\n Username = \"user\",\n Password = \"pass\",\n Database = \"postgres\",\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n DisplayName = \"Postgres to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"my-stream\",\n DesiredState = \"RUNNING\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n PostgresqlSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigArgs\n {\n MaxConcurrentBackfillTasks = 12,\n Publication = \"publication\",\n ReplicationSlot = \"replication_slot\",\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n PostgresqlExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs\n {\n PostgresqlSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs\n {\n Schema = \"schema\",\n PostgresqlTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs\n {\n Table = \"table\",\n PostgresqlColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Postgresql Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tPostgresqlProfile: \u0026datastream.ConnectionProfilePostgresqlProfileArgs{\n\t\t\t\tHostname: pulumi.String(\"hostname\"),\n\t\t\t\tPort: pulumi.Int(3306),\n\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\tPassword: pulumi.String(\"pass\"),\n\t\t\t\tDatabase: pulumi.String(\"postgres\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"Postgres to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"RUNNING\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tPostgresqlSourceConfig: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigArgs{\n\t\t\t\t\tMaxConcurrentBackfillTasks: pulumi.Int(12),\n\t\t\t\t\tPublication: pulumi.String(\"publication\"),\n\t\t\t\t\tReplicationSlot: pulumi.String(\"replication_slot\"),\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tPostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tPostgresqlSchemas: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tPostgresqlExcludedObjects: \u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsArgs{\n\t\t\t\t\tPostgresqlSchemas: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs{\n\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\tPostgresqlTables: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\tPostgresqlColumns: datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfilePostgresqlProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllPostgresqlExcludedObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder()\n .displayName(\"Postgresql Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .postgresqlProfile(ConnectionProfilePostgresqlProfileArgs.builder()\n .hostname(\"hostname\")\n .port(3306)\n .username(\"user\")\n .password(\"pass\")\n .database(\"postgres\")\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder()\n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .displayName(\"Postgres to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"my-stream\")\n .desiredState(\"RUNNING\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .postgresqlSourceConfig(StreamSourceConfigPostgresqlSourceConfigArgs.builder()\n .maxConcurrentBackfillTasks(12)\n .publication(\"publication\")\n .replicationSlot(\"replication_slot\")\n .includeObjects(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsArgs.builder()\n .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsArgs.builder()\n .postgresqlSchemas(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .postgresqlExcludedObjects(StreamBackfillAllPostgresqlExcludedObjectsArgs.builder()\n .postgresqlSchemas(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaArgs.builder()\n .schema(\"schema\")\n .postgresqlTables(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTableArgs.builder()\n .table(\"table\")\n .postgresqlColumns(StreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemaPostgresqlTablePostgresqlColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Postgresql Source\n location: us-central1\n connectionProfileId: source-profile\n postgresqlProfile:\n hostname: hostname\n port: 3306\n username: user\n password: pass\n database: postgres\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n displayName: Postgres to BigQuery\n location: us-central1\n streamId: my-stream\n desiredState: RUNNING\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n postgresqlSourceConfig:\n maxConcurrentBackfillTasks: 12\n publication: publication\n replicationSlot: replication_slot\n includeObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n excludeObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillAll:\n postgresqlExcludedObjects:\n postgresqlSchemas:\n - schema: schema\n postgresqlTables:\n - table: table\n postgresqlColumns:\n - column: column\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Oracle\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"Oracle Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n oracleProfile: {\n hostname: \"hostname\",\n port: 1521,\n username: \"user\",\n password: \"pass\",\n databaseService: \"ORCL\",\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst stream5 = new gcp.datastream.Stream(\"stream5\", {\n displayName: \"Oracle to BigQuery\",\n location: \"us-central1\",\n streamId: \"my-stream\",\n desiredState: \"RUNNING\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n oracleSourceConfig: {\n maxConcurrentCdcTasks: 8,\n maxConcurrentBackfillTasks: 12,\n includeObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n excludeObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n dropLargeObjects: {},\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillAll: {\n oracleExcludedObjects: {\n oracleSchemas: [{\n schema: \"schema\",\n oracleTables: [{\n table: \"table\",\n oracleColumns: [{\n column: \"column\",\n }],\n }],\n }],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"Oracle Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n oracle_profile={\n \"hostname\": \"hostname\",\n \"port\": 1521,\n \"username\": \"user\",\n \"password\": \"pass\",\n \"database_service\": \"ORCL\",\n })\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\nstream5 = gcp.datastream.Stream(\"stream5\",\n display_name=\"Oracle to BigQuery\",\n location=\"us-central1\",\n stream_id=\"my-stream\",\n desired_state=\"RUNNING\",\n source_config={\n \"source_connection_profile\": source.id,\n \"oracle_source_config\": {\n \"max_concurrent_cdc_tasks\": 8,\n \"max_concurrent_backfill_tasks\": 12,\n \"include_objects\": {\n \"oracle_schemas\": [{\n \"schema\": \"schema\",\n \"oracle_tables\": [{\n \"table\": \"table\",\n \"oracle_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n \"exclude_objects\": {\n \"oracle_schemas\": [{\n \"schema\": \"schema\",\n \"oracle_tables\": [{\n \"table\": \"table\",\n \"oracle_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n \"drop_large_objects\": {},\n },\n },\n destination_config={\n \"destination_connection_profile\": destination.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n },\n },\n },\n },\n backfill_all={\n \"oracle_excluded_objects\": {\n \"oracle_schemas\": [{\n \"schema\": \"schema\",\n \"oracle_tables\": [{\n \"table\": \"table\",\n \"oracle_columns\": [{\n \"column\": \"column\",\n }],\n }],\n }],\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"Oracle Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n OracleProfile = new Gcp.Datastream.Inputs.ConnectionProfileOracleProfileArgs\n {\n Hostname = \"hostname\",\n Port = 1521,\n Username = \"user\",\n Password = \"pass\",\n DatabaseService = \"ORCL\",\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var stream5 = new Gcp.Datastream.Stream(\"stream5\", new()\n {\n DisplayName = \"Oracle to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"my-stream\",\n DesiredState = \"RUNNING\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n OracleSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigArgs\n {\n MaxConcurrentCdcTasks = 8,\n MaxConcurrentBackfillTasks = 12,\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n ExcludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n DropLargeObjects = null,\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillAll = new Gcp.Datastream.Inputs.StreamBackfillAllArgs\n {\n OracleExcludedObjects = new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsArgs\n {\n OracleSchemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs\n {\n Schema = \"schema\",\n OracleTables = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs\n {\n Table = \"table\",\n OracleColumns = new[]\n {\n new Gcp.Datastream.Inputs.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs\n {\n Column = \"column\",\n },\n },\n },\n },\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Oracle Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tOracleProfile: \u0026datastream.ConnectionProfileOracleProfileArgs{\n\t\t\t\tHostname: pulumi.String(\"hostname\"),\n\t\t\t\tPort: pulumi.Int(1521),\n\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\tPassword: pulumi.String(\"pass\"),\n\t\t\t\tDatabaseService: pulumi.String(\"ORCL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"stream5\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"Oracle to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tDesiredState: pulumi.String(\"RUNNING\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tOracleSourceConfig: \u0026datastream.StreamSourceConfigOracleSourceConfigArgs{\n\t\t\t\t\tMaxConcurrentCdcTasks: pulumi.Int(8),\n\t\t\t\t\tMaxConcurrentBackfillTasks: pulumi.Int(12),\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tOracleSchemas: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tOracleTables: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tExcludeObjects: \u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs{\n\t\t\t\t\t\tOracleSchemas: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tOracleTables: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDropLargeObjects: nil,\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: \u0026datastream.StreamBackfillAllArgs{\n\t\t\t\tOracleExcludedObjects: \u0026datastream.StreamBackfillAllOracleExcludedObjectsArgs{\n\t\t\t\t\tOracleSchemas: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArray{\n\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs{\n\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\tOracleTables: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArray{\n\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs{\n\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\tOracleColumns: datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArray{\n\t\t\t\t\t\t\t\t\t\t\u0026datastream.StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs{\n\t\t\t\t\t\t\t\t\t\t\tColumn: pulumi.String(\"column\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileOracleProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigExcludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigOracleSourceConfigDropLargeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllOracleExcludedObjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder()\n .displayName(\"Oracle Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .oracleProfile(ConnectionProfileOracleProfileArgs.builder()\n .hostname(\"hostname\")\n .port(1521)\n .username(\"user\")\n .password(\"pass\")\n .databaseService(\"ORCL\")\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder()\n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var stream5 = new Stream(\"stream5\", StreamArgs.builder()\n .displayName(\"Oracle to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"my-stream\")\n .desiredState(\"RUNNING\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .oracleSourceConfig(StreamSourceConfigOracleSourceConfigArgs.builder()\n .maxConcurrentCdcTasks(8)\n .maxConcurrentBackfillTasks(12)\n .includeObjects(StreamSourceConfigOracleSourceConfigIncludeObjectsArgs.builder()\n .oracleSchemas(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .excludeObjects(StreamSourceConfigOracleSourceConfigExcludeObjectsArgs.builder()\n .oracleSchemas(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .dropLargeObjects()\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillAll(StreamBackfillAllArgs.builder()\n .oracleExcludedObjects(StreamBackfillAllOracleExcludedObjectsArgs.builder()\n .oracleSchemas(StreamBackfillAllOracleExcludedObjectsOracleSchemaArgs.builder()\n .schema(\"schema\")\n .oracleTables(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableArgs.builder()\n .table(\"table\")\n .oracleColumns(StreamBackfillAllOracleExcludedObjectsOracleSchemaOracleTableOracleColumnArgs.builder()\n .column(\"column\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: Oracle Source\n location: us-central1\n connectionProfileId: source-profile\n oracleProfile:\n hostname: hostname\n port: 1521\n username: user\n password: pass\n databaseService: ORCL\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n stream5:\n type: gcp:datastream:Stream\n properties:\n displayName: Oracle to BigQuery\n location: us-central1\n streamId: my-stream\n desiredState: RUNNING\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n oracleSourceConfig:\n maxConcurrentCdcTasks: 8\n maxConcurrentBackfillTasks: 12\n includeObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n excludeObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n dropLargeObjects: {}\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillAll:\n oracleExcludedObjects:\n oracleSchemas:\n - schema: schema\n oracleTables:\n - table: table\n oracleColumns:\n - column: column\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Sql Server\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"sql-server\",\n databaseVersion: \"SQLSERVER_2019_STANDARD\",\n region: \"us-central1\",\n rootPassword: \"root-password\",\n deletionProtection: true,\n settings: {\n tier: \"db-custom-2-4096\",\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"user\",\n instance: instance.name,\n password: \"password\",\n});\nconst db = new gcp.sql.Database(\"db\", {\n name: \"db\",\n instance: instance.name,\n}, {\n dependsOn: [user],\n});\nconst source = new gcp.datastream.ConnectionProfile(\"source\", {\n displayName: \"SQL Server Source\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n sqlServerProfile: {\n hostname: instance.publicIpAddress,\n port: 1433,\n username: user.name,\n password: user.password,\n database: db.name,\n },\n});\nconst destination = new gcp.datastream.ConnectionProfile(\"destination\", {\n displayName: \"BigQuery Destination\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n displayName: \"SQL Server to BigQuery\",\n location: \"us-central1\",\n streamId: \"stream\",\n sourceConfig: {\n sourceConnectionProfile: source.id,\n sqlServerSourceConfig: {\n includeObjects: {\n schemas: [{\n schema: \"schema\",\n tables: [{\n table: \"table\",\n }],\n }],\n },\n },\n },\n destinationConfig: {\n destinationConnectionProfile: destination.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n },\n },\n backfillNone: {},\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"sql-server\",\n database_version=\"SQLSERVER_2019_STANDARD\",\n region=\"us-central1\",\n root_password=\"root-password\",\n deletion_protection=True,\n settings={\n \"tier\": \"db-custom-2-4096\",\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n })\nuser = gcp.sql.User(\"user\",\n name=\"user\",\n instance=instance.name,\n password=\"password\")\ndb = gcp.sql.Database(\"db\",\n name=\"db\",\n instance=instance.name,\n opts = pulumi.ResourceOptions(depends_on=[user]))\nsource = gcp.datastream.ConnectionProfile(\"source\",\n display_name=\"SQL Server Source\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n sql_server_profile={\n \"hostname\": instance.public_ip_address,\n \"port\": 1433,\n \"username\": user.name,\n \"password\": user.password,\n \"database\": db.name,\n })\ndestination = gcp.datastream.ConnectionProfile(\"destination\",\n display_name=\"BigQuery Destination\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\ndefault = gcp.datastream.Stream(\"default\",\n display_name=\"SQL Server to BigQuery\",\n location=\"us-central1\",\n stream_id=\"stream\",\n source_config={\n \"source_connection_profile\": source.id,\n \"sql_server_source_config\": {\n \"include_objects\": {\n \"schemas\": [{\n \"schema\": \"schema\",\n \"tables\": [{\n \"table\": \"table\",\n }],\n }],\n },\n },\n },\n destination_config={\n \"destination_connection_profile\": destination.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n },\n },\n },\n },\n backfill_none={})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"sql-server\",\n DatabaseVersion = \"SQLSERVER_2019_STANDARD\",\n Region = \"us-central1\",\n RootPassword = \"root-password\",\n DeletionProtection = true,\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-custom-2-4096\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"user\",\n Instance = instance.Name,\n Password = \"password\",\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Name = \"db\",\n Instance = instance.Name,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n user,\n },\n });\n\n var source = new Gcp.Datastream.ConnectionProfile(\"source\", new()\n {\n DisplayName = \"SQL Server Source\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n SqlServerProfile = new Gcp.Datastream.Inputs.ConnectionProfileSqlServerProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Port = 1433,\n Username = user.Name,\n Password = user.Password,\n Database = db.Name,\n },\n });\n\n var destination = new Gcp.Datastream.ConnectionProfile(\"destination\", new()\n {\n DisplayName = \"BigQuery Destination\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n DisplayName = \"SQL Server to BigQuery\",\n Location = \"us-central1\",\n StreamId = \"stream\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = source.Id,\n SqlServerSourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigArgs\n {\n IncludeObjects = new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs\n {\n Schemas = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArgs\n {\n Schema = \"schema\",\n Tables = new[]\n {\n new Gcp.Datastream.Inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArgs\n {\n Table = \"table\",\n },\n },\n },\n },\n },\n },\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destination.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n },\n },\n BackfillNone = null,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"sql-server\"),\n\t\t\tDatabaseVersion: pulumi.String(\"SQLSERVER_2019_STANDARD\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tRootPassword: pulumi.String(\"root-password\"),\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-custom-2-4096\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tPassword: pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdb, err := sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tName: pulumi.String(\"db\"),\n\t\t\tInstance: instance.Name,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tuser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsource, err := datastream.NewConnectionProfile(ctx, \"source\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"SQL Server Source\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tSqlServerProfile: \u0026datastream.ConnectionProfileSqlServerProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tPort: pulumi.Int(1433),\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t\tDatabase: db.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestination, err := datastream.NewConnectionProfile(ctx, \"destination\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"BigQuery Destination\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"SQL Server to BigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"stream\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: source.ID(),\n\t\t\t\tSqlServerSourceConfig: \u0026datastream.StreamSourceConfigSqlServerSourceConfigArgs{\n\t\t\t\t\tIncludeObjects: \u0026datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs{\n\t\t\t\t\t\tSchemas: datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArray{\n\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArgs{\n\t\t\t\t\t\t\t\tSchema: pulumi.String(\"schema\"),\n\t\t\t\t\t\t\t\tTables: datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArray{\n\t\t\t\t\t\t\t\t\t\u0026datastream.StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArgs{\n\t\t\t\t\t\t\t\t\t\tTable: pulumi.String(\"table\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destination.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillNone: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileSqlServerProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigSqlServerSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"sql-server\")\n .databaseVersion(\"SQLSERVER_2019_STANDARD\")\n .region(\"us-central1\")\n .rootPassword(\"root-password\")\n .deletionProtection(\"true\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-custom-2-4096\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"user\")\n .instance(instance.name())\n .password(\"password\")\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .name(\"db\")\n .instance(instance.name())\n .build(), CustomResourceOptions.builder()\n .dependsOn(user)\n .build());\n\n var source = new ConnectionProfile(\"source\", ConnectionProfileArgs.builder()\n .displayName(\"SQL Server Source\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .sqlServerProfile(ConnectionProfileSqlServerProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .port(1433)\n .username(user.name())\n .password(user.password())\n .database(db.name())\n .build())\n .build());\n\n var destination = new ConnectionProfile(\"destination\", ConnectionProfileArgs.builder()\n .displayName(\"BigQuery Destination\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .displayName(\"SQL Server to BigQuery\")\n .location(\"us-central1\")\n .streamId(\"stream\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(source.id())\n .sqlServerSourceConfig(StreamSourceConfigSqlServerSourceConfigArgs.builder()\n .includeObjects(StreamSourceConfigSqlServerSourceConfigIncludeObjectsArgs.builder()\n .schemas(StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaArgs.builder()\n .schema(\"schema\")\n .tables(StreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemaTableArgs.builder()\n .table(\"table\")\n .build())\n .build())\n .build())\n .build())\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destination.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .build())\n .build())\n .backfillNone()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: sql-server\n databaseVersion: SQLSERVER_2019_STANDARD\n region: us-central1\n rootPassword: root-password\n deletionProtection: 'true'\n settings:\n tier: db-custom-2-4096\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n db:\n type: gcp:sql:Database\n properties:\n name: db\n instance: ${instance.name}\n options:\n dependson:\n - ${user}\n user:\n type: gcp:sql:User\n properties:\n name: user\n instance: ${instance.name}\n password: password\n source:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: SQL Server Source\n location: us-central1\n connectionProfileId: source-profile\n sqlServerProfile:\n hostname: ${instance.publicIpAddress}\n port: 1433\n username: ${user.name}\n password: ${user.password}\n database: ${db.name}\n destination:\n type: gcp:datastream:ConnectionProfile\n properties:\n displayName: BigQuery Destination\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n displayName: SQL Server to BigQuery\n location: us-central1\n streamId: stream\n sourceConfig:\n sourceConnectionProfile: ${source.id}\n sqlServerSourceConfig:\n includeObjects:\n schemas:\n - schema: schema\n tables:\n - table: table\n destinationConfig:\n destinationConnectionProfile: ${destination.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n backfillNone: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Postgresql Bigquery Dataset Id\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst postgres = new gcp.bigquery.Dataset(\"postgres\", {\n datasetId: \"postgres\",\n friendlyName: \"postgres\",\n description: \"Database of postgres\",\n location: \"us-central1\",\n});\nconst destinationConnectionProfile2 = new gcp.datastream.ConnectionProfile(\"destination_connection_profile2\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"dest-profile\",\n bigqueryProfile: {},\n});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"instance-name\",\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: false,\n});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"my-user\",\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"source_connection_profile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n displayName: \"postgres to bigQuery\",\n location: \"us-central1\",\n streamId: \"postgres-bigquery\",\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {},\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile2.id,\n bigqueryDestinationConfig: {\n dataFreshness: \"900s\",\n singleTargetDataset: {\n datasetId: postgres.id,\n },\n },\n },\n backfillAll: {},\n});\nconst db = new gcp.sql.Database(\"db\", {\n instance: instance.name,\n name: \"db\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\npostgres = gcp.bigquery.Dataset(\"postgres\",\n dataset_id=\"postgres\",\n friendly_name=\"postgres\",\n description=\"Database of postgres\",\n location=\"us-central1\")\ndestination_connection_profile2 = gcp.datastream.ConnectionProfile(\"destination_connection_profile2\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"dest-profile\",\n bigquery_profile={})\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"instance-name\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n },\n deletion_protection=False)\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n name=\"my-user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"source_connection_profile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile={\n \"hostname\": instance.public_ip_address,\n \"username\": user.name,\n \"password\": user.password,\n })\ndefault = gcp.datastream.Stream(\"default\",\n display_name=\"postgres to bigQuery\",\n location=\"us-central1\",\n stream_id=\"postgres-bigquery\",\n source_config={\n \"source_connection_profile\": source_connection_profile.id,\n \"mysql_source_config\": {},\n },\n destination_config={\n \"destination_connection_profile\": destination_connection_profile2.id,\n \"bigquery_destination_config\": {\n \"data_freshness\": \"900s\",\n \"single_target_dataset\": {\n \"dataset_id\": postgres.id,\n },\n },\n },\n backfill_all={})\ndb = gcp.sql.Database(\"db\",\n instance=instance.name,\n name=\"db\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var postgres = new Gcp.BigQuery.Dataset(\"postgres\", new()\n {\n DatasetId = \"postgres\",\n FriendlyName = \"postgres\",\n Description = \"Database of postgres\",\n Location = \"us-central1\",\n });\n\n var destinationConnectionProfile2 = new Gcp.Datastream.ConnectionProfile(\"destination_connection_profile2\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"dest-profile\",\n BigqueryProfile = null,\n });\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"instance-name\",\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = false,\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"my-user\",\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"source_connection_profile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n DisplayName = \"postgres to bigQuery\",\n Location = \"us-central1\",\n StreamId = \"postgres-bigquery\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = null,\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile2.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n DataFreshness = \"900s\",\n SingleTargetDataset = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs\n {\n DatasetId = postgres.Id,\n },\n },\n },\n BackfillAll = null,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n Name = \"db\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpostgres, err := bigquery.NewDataset(ctx, \"postgres\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"postgres\"),\n\t\t\tFriendlyName: pulumi.String(\"postgres\"),\n\t\t\tDescription: pulumi.String(\"Database of postgres\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile2, err := datastream.NewConnectionProfile(ctx, \"destination_connection_profile2\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"dest-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"instance-name\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"my-user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"source_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tDisplayName: pulumi.String(\"postgres to bigQuery\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tStreamId: pulumi.String(\"postgres-bigquery\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: nil,\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile2.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tDataFreshness: pulumi.String(\"900s\"),\n\t\t\t\t\tSingleTargetDataset: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{\n\t\t\t\t\t\tDatasetId: postgres.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillAll: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tName: pulumi.String(\"db\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillAllArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var postgres = new Dataset(\"postgres\", DatasetArgs.builder()\n .datasetId(\"postgres\")\n .friendlyName(\"postgres\")\n .description(\"Database of postgres\")\n .location(\"us-central1\")\n .build());\n\n var destinationConnectionProfile2 = new ConnectionProfile(\"destinationConnectionProfile2\", ConnectionProfileArgs.builder()\n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"dest-profile\")\n .bigqueryProfile()\n .build());\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"instance-name\")\n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(false)\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder()\n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"my-user\")\n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .displayName(\"postgres to bigQuery\")\n .location(\"us-central1\")\n .streamId(\"postgres-bigquery\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig()\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile2.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .dataFreshness(\"900s\")\n .singleTargetDataset(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs.builder()\n .datasetId(postgres.id())\n .build())\n .build())\n .build())\n .backfillAll()\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .instance(instance.name())\n .name(\"db\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n postgres:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: postgres\n friendlyName: postgres\n description: Database of postgres\n location: us-central1\n default:\n type: gcp:datastream:Stream\n properties:\n displayName: postgres to bigQuery\n location: us-central1\n streamId: postgres-bigquery\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig: {}\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile2.id}\n bigqueryDestinationConfig:\n dataFreshness: 900s\n singleTargetDataset:\n datasetId: ${postgres.id}\n backfillAll: {}\n destinationConnectionProfile2:\n type: gcp:datastream:ConnectionProfile\n name: destination_connection_profile2\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: dest-profile\n bigqueryProfile: {}\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: instance-name\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: false\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n name: db\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n name: my-user\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: source_connection_profile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Bigquery\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"my-instance\",\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {\n instance: instance.name,\n name: \"db\",\n});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"user\",\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"source_connection_profile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst bqSa = gcp.bigquery.getDefaultServiceAccount({});\nconst bigqueryKeyUser = new gcp.kms.CryptoKeyIAMMember(\"bigquery_key_user\", {\n cryptoKeyId: \"bigquery-kms-name\",\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: bqSa.then(bqSa =\u003e `serviceAccount:${bqSa.email}`),\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destination_connection_profile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n location: \"us-central1\",\n displayName: \"my stream\",\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {},\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n bigqueryDestinationConfig: {\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n kmsKeyName: \"bigquery-kms-name\",\n },\n },\n },\n },\n backfillNone: {},\n}, {\n dependsOn: [bigqueryKeyUser],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"my-instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n },\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\",\n instance=instance.name,\n name=\"db\")\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n name=\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"source_connection_profile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile={\n \"hostname\": instance.public_ip_address,\n \"username\": user.name,\n \"password\": user.password,\n })\nbq_sa = gcp.bigquery.get_default_service_account()\nbigquery_key_user = gcp.kms.CryptoKeyIAMMember(\"bigquery_key_user\",\n crypto_key_id=\"bigquery-kms-name\",\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:{bq_sa.email}\")\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destination_connection_profile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n location=\"us-central1\",\n display_name=\"my stream\",\n source_config={\n \"source_connection_profile\": source_connection_profile.id,\n \"mysql_source_config\": {},\n },\n destination_config={\n \"destination_connection_profile\": destination_connection_profile.id,\n \"bigquery_destination_config\": {\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n \"kms_key_name\": \"bigquery-kms-name\",\n },\n },\n },\n },\n backfill_none={},\n opts = pulumi.ResourceOptions(depends_on=[bigquery_key_user]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"my-instance\",\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n Name = \"db\",\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"user\",\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"source_connection_profile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var bqSa = Gcp.BigQuery.GetDefaultServiceAccount.Invoke();\n\n var bigqueryKeyUser = new Gcp.Kms.CryptoKeyIAMMember(\"bigquery_key_user\", new()\n {\n CryptoKeyId = \"bigquery-kms-name\",\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:{bqSa.Apply(getDefaultServiceAccountResult =\u003e getDefaultServiceAccountResult.Email)}\",\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destination_connection_profile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = null,\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n KmsKeyName = \"bigquery-kms-name\",\n },\n },\n },\n },\n BackfillNone = null,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n bigqueryKeyUser,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tName: pulumi.String(\"db\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"source_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbqSa, err := bigquery.GetDefaultServiceAccount(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbigqueryKeyUser, err := kms.NewCryptoKeyIAMMember(ctx, \"bigquery_key_user\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: pulumi.String(\"bigquery-kms-name\"),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:%v\", bqSa.Email)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destination_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: nil,\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t\tKmsKeyName: pulumi.String(\"bigquery-kms-name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillNone: nil,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbigqueryKeyUser,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.bigquery.BigqueryFunctions;\nimport com.pulumi.gcp.bigquery.inputs.GetDefaultServiceAccountArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"my-instance\")\n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .instance(instance.name())\n .name(\"db\")\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder()\n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"user\")\n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n final var bqSa = BigqueryFunctions.getDefaultServiceAccount();\n\n var bigqueryKeyUser = new CryptoKeyIAMMember(\"bigqueryKeyUser\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(\"bigquery-kms-name\")\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:%s\", bqSa.applyValue(getDefaultServiceAccountResult -\u003e getDefaultServiceAccountResult.email())))\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .streamId(\"my-stream\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig()\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .kmsKeyName(\"bigquery-kms-name\")\n .build())\n .build())\n .build())\n .build())\n .backfillNone()\n .build(), CustomResourceOptions.builder()\n .dependsOn(bigqueryKeyUser)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: my-instance\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n name: db\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n name: user\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: source_connection_profile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n bigqueryKeyUser:\n type: gcp:kms:CryptoKeyIAMMember\n name: bigquery_key_user\n properties:\n cryptoKeyId: bigquery-kms-name\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:${bqSa.email}\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: destination_connection_profile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n location: us-central1\n displayName: my stream\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig: {}\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n bigqueryDestinationConfig:\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n kmsKeyName: bigquery-kms-name\n backfillNone: {}\n options:\n dependson:\n - ${bigqueryKeyUser}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n bqSa:\n fn::invoke:\n Function: gcp:bigquery:getDefaultServiceAccount\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Datastream Stream Bigquery Append Only\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst project = gcp.organizations.getProject({});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: \"my-instance\",\n databaseVersion: \"MYSQL_8_0\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n ipConfiguration: {\n authorizedNetworks: [\n {\n value: \"34.71.242.81\",\n },\n {\n value: \"34.72.28.29\",\n },\n {\n value: \"34.67.6.157\",\n },\n {\n value: \"34.67.234.134\",\n },\n {\n value: \"34.72.239.218\",\n },\n ],\n },\n },\n deletionProtection: true,\n});\nconst db = new gcp.sql.Database(\"db\", {\n instance: instance.name,\n name: \"db\",\n});\nconst pwd = new random.RandomPassword(\"pwd\", {\n length: 16,\n special: false,\n});\nconst user = new gcp.sql.User(\"user\", {\n name: \"user\",\n instance: instance.name,\n host: \"%\",\n password: pwd.result,\n});\nconst sourceConnectionProfile = new gcp.datastream.ConnectionProfile(\"source_connection_profile\", {\n displayName: \"Source connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"source-profile\",\n mysqlProfile: {\n hostname: instance.publicIpAddress,\n username: user.name,\n password: user.password,\n },\n});\nconst destinationConnectionProfile = new gcp.datastream.ConnectionProfile(\"destination_connection_profile\", {\n displayName: \"Connection profile\",\n location: \"us-central1\",\n connectionProfileId: \"destination-profile\",\n bigqueryProfile: {},\n});\nconst _default = new gcp.datastream.Stream(\"default\", {\n streamId: \"my-stream\",\n location: \"us-central1\",\n displayName: \"my stream\",\n sourceConfig: {\n sourceConnectionProfile: sourceConnectionProfile.id,\n mysqlSourceConfig: {},\n },\n destinationConfig: {\n destinationConnectionProfile: destinationConnectionProfile.id,\n bigqueryDestinationConfig: {\n sourceHierarchyDatasets: {\n datasetTemplate: {\n location: \"us-central1\",\n },\n },\n appendOnly: {},\n },\n },\n backfillNone: {},\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nproject = gcp.organizations.get_project()\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=\"my-instance\",\n database_version=\"MYSQL_8_0\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"ip_configuration\": {\n \"authorized_networks\": [\n {\n \"value\": \"34.71.242.81\",\n },\n {\n \"value\": \"34.72.28.29\",\n },\n {\n \"value\": \"34.67.6.157\",\n },\n {\n \"value\": \"34.67.234.134\",\n },\n {\n \"value\": \"34.72.239.218\",\n },\n ],\n },\n },\n deletion_protection=True)\ndb = gcp.sql.Database(\"db\",\n instance=instance.name,\n name=\"db\")\npwd = random.RandomPassword(\"pwd\",\n length=16,\n special=False)\nuser = gcp.sql.User(\"user\",\n name=\"user\",\n instance=instance.name,\n host=\"%\",\n password=pwd.result)\nsource_connection_profile = gcp.datastream.ConnectionProfile(\"source_connection_profile\",\n display_name=\"Source connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"source-profile\",\n mysql_profile={\n \"hostname\": instance.public_ip_address,\n \"username\": user.name,\n \"password\": user.password,\n })\ndestination_connection_profile = gcp.datastream.ConnectionProfile(\"destination_connection_profile\",\n display_name=\"Connection profile\",\n location=\"us-central1\",\n connection_profile_id=\"destination-profile\",\n bigquery_profile={})\ndefault = gcp.datastream.Stream(\"default\",\n stream_id=\"my-stream\",\n location=\"us-central1\",\n display_name=\"my stream\",\n source_config={\n \"source_connection_profile\": source_connection_profile.id,\n \"mysql_source_config\": {},\n },\n destination_config={\n \"destination_connection_profile\": destination_connection_profile.id,\n \"bigquery_destination_config\": {\n \"source_hierarchy_datasets\": {\n \"dataset_template\": {\n \"location\": \"us-central1\",\n },\n },\n \"append_only\": {},\n },\n },\n backfill_none={})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = \"my-instance\",\n DatabaseVersion = \"MYSQL_8_0\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n AuthorizedNetworks = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.71.242.81\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.28.29\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.6.157\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.67.234.134\",\n },\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs\n {\n Value = \"34.72.239.218\",\n },\n },\n },\n },\n DeletionProtection = true,\n });\n\n var db = new Gcp.Sql.Database(\"db\", new()\n {\n Instance = instance.Name,\n Name = \"db\",\n });\n\n var pwd = new Random.RandomPassword(\"pwd\", new()\n {\n Length = 16,\n Special = false,\n });\n\n var user = new Gcp.Sql.User(\"user\", new()\n {\n Name = \"user\",\n Instance = instance.Name,\n Host = \"%\",\n Password = pwd.Result,\n });\n\n var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"source_connection_profile\", new()\n {\n DisplayName = \"Source connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"source-profile\",\n MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs\n {\n Hostname = instance.PublicIpAddress,\n Username = user.Name,\n Password = user.Password,\n },\n });\n\n var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile(\"destination_connection_profile\", new()\n {\n DisplayName = \"Connection profile\",\n Location = \"us-central1\",\n ConnectionProfileId = \"destination-profile\",\n BigqueryProfile = null,\n });\n\n var @default = new Gcp.Datastream.Stream(\"default\", new()\n {\n StreamId = \"my-stream\",\n Location = \"us-central1\",\n DisplayName = \"my stream\",\n SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs\n {\n SourceConnectionProfile = sourceConnectionProfile.Id,\n MysqlSourceConfig = null,\n },\n DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs\n {\n DestinationConnectionProfile = destinationConnectionProfile.Id,\n BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs\n {\n SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs\n {\n DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs\n {\n Location = \"us-central1\",\n },\n },\n AppendOnly = null,\n },\n },\n BackfillNone = null,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"my-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tAuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.71.242.81\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.28.29\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.6.157\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.67.234.134\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{\n\t\t\t\t\t\t\tValue: pulumi.String(\"34.72.239.218\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabase(ctx, \"db\", \u0026sql.DatabaseArgs{\n\t\t\tInstance: instance.Name,\n\t\t\tName: pulumi.String(\"db\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpwd, err := random.NewRandomPassword(ctx, \"pwd\", \u0026random.RandomPasswordArgs{\n\t\t\tLength: pulumi.Int(16),\n\t\t\tSpecial: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tuser, err := sql.NewUser(ctx, \"user\", \u0026sql.UserArgs{\n\t\t\tName: pulumi.String(\"user\"),\n\t\t\tInstance: instance.Name,\n\t\t\tHost: pulumi.String(\"%\"),\n\t\t\tPassword: pwd.Result,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"source_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Source connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"source-profile\"),\n\t\t\tMysqlProfile: \u0026datastream.ConnectionProfileMysqlProfileArgs{\n\t\t\t\tHostname: instance.PublicIpAddress,\n\t\t\t\tUsername: user.Name,\n\t\t\t\tPassword: user.Password,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdestinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, \"destination_connection_profile\", \u0026datastream.ConnectionProfileArgs{\n\t\t\tDisplayName: pulumi.String(\"Connection profile\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConnectionProfileId: pulumi.String(\"destination-profile\"),\n\t\t\tBigqueryProfile: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = datastream.NewStream(ctx, \"default\", \u0026datastream.StreamArgs{\n\t\t\tStreamId: pulumi.String(\"my-stream\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDisplayName: pulumi.String(\"my stream\"),\n\t\t\tSourceConfig: \u0026datastream.StreamSourceConfigArgs{\n\t\t\t\tSourceConnectionProfile: sourceConnectionProfile.ID(),\n\t\t\t\tMysqlSourceConfig: nil,\n\t\t\t},\n\t\t\tDestinationConfig: \u0026datastream.StreamDestinationConfigArgs{\n\t\t\t\tDestinationConnectionProfile: destinationConnectionProfile.ID(),\n\t\t\t\tBigqueryDestinationConfig: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{\n\t\t\t\t\tSourceHierarchyDatasets: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{\n\t\t\t\t\t\tDatasetTemplate: \u0026datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{\n\t\t\t\t\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tAppendOnly: nil,\n\t\t\t\t},\n\t\t\t},\n\t\t\tBackfillNone: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.Database;\nimport com.pulumi.gcp.sql.DatabaseArgs;\nimport com.pulumi.random.RandomPassword;\nimport com.pulumi.random.RandomPasswordArgs;\nimport com.pulumi.gcp.sql.User;\nimport com.pulumi.gcp.sql.UserArgs;\nimport com.pulumi.gcp.datastream.ConnectionProfile;\nimport com.pulumi.gcp.datastream.ConnectionProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;\nimport com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;\nimport com.pulumi.gcp.datastream.Stream;\nimport com.pulumi.gcp.datastream.StreamArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs;\nimport com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(\"my-instance\")\n .databaseVersion(\"MYSQL_8_0\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .authorizedNetworks( \n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.71.242.81\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.28.29\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.6.157\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.67.234.134\")\n .build(),\n DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()\n .value(\"34.72.239.218\")\n .build())\n .build())\n .build())\n .deletionProtection(true)\n .build());\n\n var db = new Database(\"db\", DatabaseArgs.builder()\n .instance(instance.name())\n .name(\"db\")\n .build());\n\n var pwd = new RandomPassword(\"pwd\", RandomPasswordArgs.builder()\n .length(16)\n .special(false)\n .build());\n\n var user = new User(\"user\", UserArgs.builder()\n .name(\"user\")\n .instance(instance.name())\n .host(\"%\")\n .password(pwd.result())\n .build());\n\n var sourceConnectionProfile = new ConnectionProfile(\"sourceConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Source connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"source-profile\")\n .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()\n .hostname(instance.publicIpAddress())\n .username(user.name())\n .password(user.password())\n .build())\n .build());\n\n var destinationConnectionProfile = new ConnectionProfile(\"destinationConnectionProfile\", ConnectionProfileArgs.builder()\n .displayName(\"Connection profile\")\n .location(\"us-central1\")\n .connectionProfileId(\"destination-profile\")\n .bigqueryProfile()\n .build());\n\n var default_ = new Stream(\"default\", StreamArgs.builder()\n .streamId(\"my-stream\")\n .location(\"us-central1\")\n .displayName(\"my stream\")\n .sourceConfig(StreamSourceConfigArgs.builder()\n .sourceConnectionProfile(sourceConnectionProfile.id())\n .mysqlSourceConfig()\n .build())\n .destinationConfig(StreamDestinationConfigArgs.builder()\n .destinationConnectionProfile(destinationConnectionProfile.id())\n .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()\n .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()\n .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()\n .location(\"us-central1\")\n .build())\n .build())\n .appendOnly()\n .build())\n .build())\n .backfillNone()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: my-instance\n databaseVersion: MYSQL_8_0\n region: us-central1\n settings:\n tier: db-f1-micro\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n ipConfiguration:\n authorizedNetworks:\n - value: 34.71.242.81\n - value: 34.72.28.29\n - value: 34.67.6.157\n - value: 34.67.234.134\n - value: 34.72.239.218\n deletionProtection: true\n db:\n type: gcp:sql:Database\n properties:\n instance: ${instance.name}\n name: db\n pwd:\n type: random:RandomPassword\n properties:\n length: 16\n special: false\n user:\n type: gcp:sql:User\n properties:\n name: user\n instance: ${instance.name}\n host: '%'\n password: ${pwd.result}\n sourceConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: source_connection_profile\n properties:\n displayName: Source connection profile\n location: us-central1\n connectionProfileId: source-profile\n mysqlProfile:\n hostname: ${instance.publicIpAddress}\n username: ${user.name}\n password: ${user.password}\n destinationConnectionProfile:\n type: gcp:datastream:ConnectionProfile\n name: destination_connection_profile\n properties:\n displayName: Connection profile\n location: us-central1\n connectionProfileId: destination-profile\n bigqueryProfile: {}\n default:\n type: gcp:datastream:Stream\n properties:\n streamId: my-stream\n location: us-central1\n displayName: my stream\n sourceConfig:\n sourceConnectionProfile: ${sourceConnectionProfile.id}\n mysqlSourceConfig: {}\n destinationConfig:\n destinationConnectionProfile: ${destinationConnectionProfile.id}\n bigqueryDestinationConfig:\n sourceHierarchyDatasets:\n datasetTemplate:\n location: us-central1\n appendOnly: {}\n backfillNone: {}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nStream can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/streams/{{stream_id}}`\n\n* `{{project}}/{{location}}/{{stream_id}}`\n\n* `{{location}}/{{stream_id}}`\n\nWhen using the `pulumi import` command, Stream can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:datastream/stream:Stream default projects/{{project}}/locations/{{location}}/streams/{{stream_id}}\n```\n\n```sh\n$ pulumi import gcp:datastream/stream:Stream default {{project}}/{{location}}/{{stream_id}}\n```\n\n```sh\n$ pulumi import gcp:datastream/stream:Stream default {{location}}/{{stream_id}}\n```\n\n", "properties": { "backfillAll": { "$ref": "#/types/gcp:datastream/StreamBackfillAll:StreamBackfillAll", @@ -191616,7 +193201,7 @@ }, "name": { "type": "string", - "description": "The fully-qualified resource name of the Firebase Realtime Database, in the\nformat: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID\nPROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number)\nLearn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" + "description": "The fully-qualified resource name of the Firebase Realtime Database, in\nthe format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID\nPROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number)\nLearn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" }, "project": { "type": "string", @@ -191691,7 +193276,7 @@ }, "name": { "type": "string", - "description": "The fully-qualified resource name of the Firebase Realtime Database, in the\nformat: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID\nPROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number)\nLearn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" + "description": "The fully-qualified resource name of the Firebase Realtime Database, in\nthe format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID\nPROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number)\nLearn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" }, "project": { "type": "string", @@ -192377,7 +193962,7 @@ }, "name": { "type": "string", - "description": "Output only. The fully-qualified resource name of the Hosting site, in the\nformat: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the\nFirebase project's\n[`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its\n[`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id).\nLearn more about using project identifiers in Google's\n[AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" + "description": "Output only. The fully-qualified resource name of the Hosting site, in\nthe format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the\nFirebase project's\n[`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its\n[`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id).\nLearn more about using project identifiers in Google's\n[AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" }, "project": { "type": "string", @@ -192422,7 +194007,7 @@ }, "name": { "type": "string", - "description": "Output only. The fully-qualified resource name of the Hosting site, in the\nformat: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the\nFirebase project's\n[`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its\n[`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id).\nLearn more about using project identifiers in Google's\n[AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" + "description": "Output only. The fully-qualified resource name of the Hosting site, in\nthe format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the\nFirebase project's\n[`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its\n[`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id).\nLearn more about using project identifiers in Google's\n[AIP 2510 standard](https://google.aip.dev/cloud/2510).\n" }, "project": { "type": "string", @@ -193252,15 +194837,18 @@ "inputProperties": { "collection": { "type": "string", - "description": "The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.\n" + "description": "The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.\n", + "willReplaceOnChanges": true }, "database": { "type": "string", - "description": "The Firestore database id. Defaults to `\"(default)\"`.\n" + "description": "The Firestore database id. Defaults to `\"(default)\"`.\n", + "willReplaceOnChanges": true }, "documentId": { "type": "string", - "description": "The client-assigned document ID to use for this document during creation.\n\n\n- - -\n" + "description": "The client-assigned document ID to use for this document during creation.\n\n\n- - -\n", + "willReplaceOnChanges": true }, "fields": { "type": "string", @@ -193282,7 +194870,8 @@ "properties": { "collection": { "type": "string", - "description": "The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.\n" + "description": "The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.\n", + "willReplaceOnChanges": true }, "createTime": { "type": "string", @@ -193290,11 +194879,13 @@ }, "database": { "type": "string", - "description": "The Firestore database id. Defaults to `\"(default)\"`.\n" + "description": "The Firestore database id. Defaults to `\"(default)\"`.\n", + "willReplaceOnChanges": true }, "documentId": { "type": "string", - "description": "The client-assigned document ID to use for this document during creation.\n\n\n- - -\n" + "description": "The client-assigned document ID to use for this document during creation.\n\n\n- - -\n", + "willReplaceOnChanges": true }, "fields": { "type": "string", @@ -193367,11 +194958,13 @@ "inputProperties": { "collection": { "type": "string", - "description": "The id of the collection group to configure.\n" + "description": "The id of the collection group to configure.\n", + "willReplaceOnChanges": true }, "database": { "type": "string", - "description": "The Firestore database id. Defaults to `\"(default)\"`.\n" + "description": "The Firestore database id. Defaults to `\"(default)\"`.\n", + "willReplaceOnChanges": true }, "field": { "type": "string", @@ -193380,7 +194973,8 @@ "csharp": { "name": "FieldId" } - } + }, + "willReplaceOnChanges": true }, "indexConfig": { "$ref": "#/types/gcp:firestore/FieldIndexConfig:FieldIndexConfig", @@ -193405,11 +194999,13 @@ "properties": { "collection": { "type": "string", - "description": "The id of the collection group to configure.\n" + "description": "The id of the collection group to configure.\n", + "willReplaceOnChanges": true }, "database": { "type": "string", - "description": "The Firestore database id. Defaults to `\"(default)\"`.\n" + "description": "The Firestore database id. Defaults to `\"(default)\"`.\n", + "willReplaceOnChanges": true }, "field": { "type": "string", @@ -193418,7 +195014,8 @@ "csharp": { "name": "FieldId" } - } + }, + "willReplaceOnChanges": true }, "indexConfig": { "$ref": "#/types/gcp:firestore/FieldIndexConfig:FieldIndexConfig", @@ -193442,7 +195039,7 @@ } }, "gcp:firestore/index:Index": { - "description": "Cloud Firestore indexes enable simple and complex queries against documents in a database.\n This resource manages composite indexes and not single\nfield indexes.\n\n\nTo get more information about Index, see:\n\n* [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.collectionGroups.indexes)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/firestore/docs/query-data/indexing)\n\n\u003e **Warning:** This resource creates a Firestore Index on a project that already has\na Firestore database. If you haven't already created it, you may\ncreate a `gcp.firestore.Database` resource and `location_id` set\nto your chosen location. If you wish to use App Engine, you may\ninstead create a `gcp.appengine.Application` resource with\n`database_type` set to `\"CLOUD_FIRESTORE\"`. Your Firestore location\nwill be the same as the App Engine location specified.\n\n## Example Usage\n\n### Firestore Index Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"database-id\",\n locationId: \"nam5\",\n type: \"FIRESTORE_NATIVE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst my_index = new gcp.firestore.Index(\"my-index\", {\n project: \"my-project-name\",\n database: database.name,\n collection: \"atestcollection\",\n fields: [\n {\n fieldPath: \"name\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"description\",\n order: \"DESCENDING\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"database-id\",\n location_id=\"nam5\",\n type=\"FIRESTORE_NATIVE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\nmy_index = gcp.firestore.Index(\"my-index\",\n project=\"my-project-name\",\n database=database.name,\n collection=\"atestcollection\",\n fields=[\n {\n \"field_path\": \"name\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"description\",\n \"order\": \"DESCENDING\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"database-id\",\n LocationId = \"nam5\",\n Type = \"FIRESTORE_NATIVE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var my_index = new Gcp.Firestore.Index(\"my-index\", new()\n {\n Project = \"my-project-name\",\n Database = database.Name,\n Collection = \"atestcollection\",\n Fields = new[]\n {\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"name\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"description\",\n Order = \"DESCENDING\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"database-id\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"FIRESTORE_NATIVE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firestore.NewIndex(ctx, \"my-index\", \u0026firestore.IndexArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tDatabase: database.Name,\n\t\t\tCollection: pulumi.String(\"atestcollection\"),\n\t\t\tFields: firestore.IndexFieldArray{\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"name\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"description\"),\n\t\t\t\t\tOrder: pulumi.String(\"DESCENDING\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.firestore.Index;\nimport com.pulumi.gcp.firestore.IndexArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"database-id\")\n .locationId(\"nam5\")\n .type(\"FIRESTORE_NATIVE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var my_index = new Index(\"my-index\", IndexArgs.builder()\n .project(\"my-project-name\")\n .database(database.name())\n .collection(\"atestcollection\")\n .fields( \n IndexFieldArgs.builder()\n .fieldPath(\"name\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"description\")\n .order(\"DESCENDING\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: database-id\n locationId: nam5\n type: FIRESTORE_NATIVE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n my-index:\n type: gcp:firestore:Index\n properties:\n project: my-project-name\n database: ${database.name}\n collection: atestcollection\n fields:\n - fieldPath: name\n order: ASCENDING\n - fieldPath: description\n order: DESCENDING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Firestore Index Datastore Mode\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"database-id-dm\",\n locationId: \"nam5\",\n type: \"DATASTORE_MODE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst my_index = new gcp.firestore.Index(\"my-index\", {\n project: \"my-project-name\",\n database: database.name,\n collection: \"atestcollection\",\n queryScope: \"COLLECTION_RECURSIVE\",\n apiScope: \"DATASTORE_MODE_API\",\n fields: [\n {\n fieldPath: \"name\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"description\",\n order: \"DESCENDING\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"database-id-dm\",\n location_id=\"nam5\",\n type=\"DATASTORE_MODE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\nmy_index = gcp.firestore.Index(\"my-index\",\n project=\"my-project-name\",\n database=database.name,\n collection=\"atestcollection\",\n query_scope=\"COLLECTION_RECURSIVE\",\n api_scope=\"DATASTORE_MODE_API\",\n fields=[\n {\n \"field_path\": \"name\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"description\",\n \"order\": \"DESCENDING\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"database-id-dm\",\n LocationId = \"nam5\",\n Type = \"DATASTORE_MODE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var my_index = new Gcp.Firestore.Index(\"my-index\", new()\n {\n Project = \"my-project-name\",\n Database = database.Name,\n Collection = \"atestcollection\",\n QueryScope = \"COLLECTION_RECURSIVE\",\n ApiScope = \"DATASTORE_MODE_API\",\n Fields = new[]\n {\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"name\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"description\",\n Order = \"DESCENDING\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"database-id-dm\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"DATASTORE_MODE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firestore.NewIndex(ctx, \"my-index\", \u0026firestore.IndexArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tDatabase: database.Name,\n\t\t\tCollection: pulumi.String(\"atestcollection\"),\n\t\t\tQueryScope: pulumi.String(\"COLLECTION_RECURSIVE\"),\n\t\t\tApiScope: pulumi.String(\"DATASTORE_MODE_API\"),\n\t\t\tFields: firestore.IndexFieldArray{\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"name\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"description\"),\n\t\t\t\t\tOrder: pulumi.String(\"DESCENDING\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.firestore.Index;\nimport com.pulumi.gcp.firestore.IndexArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"database-id-dm\")\n .locationId(\"nam5\")\n .type(\"DATASTORE_MODE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var my_index = new Index(\"my-index\", IndexArgs.builder()\n .project(\"my-project-name\")\n .database(database.name())\n .collection(\"atestcollection\")\n .queryScope(\"COLLECTION_RECURSIVE\")\n .apiScope(\"DATASTORE_MODE_API\")\n .fields( \n IndexFieldArgs.builder()\n .fieldPath(\"name\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"description\")\n .order(\"DESCENDING\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: database-id-dm\n locationId: nam5\n type: DATASTORE_MODE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n my-index:\n type: gcp:firestore:Index\n properties:\n project: my-project-name\n database: ${database.name}\n collection: atestcollection\n queryScope: COLLECTION_RECURSIVE\n apiScope: DATASTORE_MODE_API\n fields:\n - fieldPath: name\n order: ASCENDING\n - fieldPath: description\n order: DESCENDING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Firestore Index Vector\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"database-id-vector\",\n locationId: \"nam5\",\n type: \"FIRESTORE_NATIVE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst my_index = new gcp.firestore.Index(\"my-index\", {\n project: \"my-project-name\",\n database: database.name,\n collection: \"atestcollection\",\n fields: [\n {\n fieldPath: \"field_name\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"__name__\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"description\",\n vectorConfig: {\n dimension: 128,\n flat: {},\n },\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"database-id-vector\",\n location_id=\"nam5\",\n type=\"FIRESTORE_NATIVE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\nmy_index = gcp.firestore.Index(\"my-index\",\n project=\"my-project-name\",\n database=database.name,\n collection=\"atestcollection\",\n fields=[\n {\n \"field_path\": \"field_name\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"__name__\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"description\",\n \"vector_config\": {\n \"dimension\": 128,\n \"flat\": {},\n },\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"database-id-vector\",\n LocationId = \"nam5\",\n Type = \"FIRESTORE_NATIVE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var my_index = new Gcp.Firestore.Index(\"my-index\", new()\n {\n Project = \"my-project-name\",\n Database = database.Name,\n Collection = \"atestcollection\",\n Fields = new[]\n {\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"field_name\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"__name__\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"description\",\n VectorConfig = new Gcp.Firestore.Inputs.IndexFieldVectorConfigArgs\n {\n Dimension = 128,\n Flat = null,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"database-id-vector\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"FIRESTORE_NATIVE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firestore.NewIndex(ctx, \"my-index\", \u0026firestore.IndexArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tDatabase: database.Name,\n\t\t\tCollection: pulumi.String(\"atestcollection\"),\n\t\t\tFields: firestore.IndexFieldArray{\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"field_name\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"__name__\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"description\"),\n\t\t\t\t\tVectorConfig: \u0026firestore.IndexFieldVectorConfigArgs{\n\t\t\t\t\t\tDimension: pulumi.Int(128),\n\t\t\t\t\t\tFlat: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.firestore.Index;\nimport com.pulumi.gcp.firestore.IndexArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldVectorConfigArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldVectorConfigFlatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"database-id-vector\")\n .locationId(\"nam5\")\n .type(\"FIRESTORE_NATIVE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var my_index = new Index(\"my-index\", IndexArgs.builder()\n .project(\"my-project-name\")\n .database(database.name())\n .collection(\"atestcollection\")\n .fields( \n IndexFieldArgs.builder()\n .fieldPath(\"field_name\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"__name__\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"description\")\n .vectorConfig(IndexFieldVectorConfigArgs.builder()\n .dimension(128)\n .flat()\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: database-id-vector\n locationId: nam5\n type: FIRESTORE_NATIVE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n my-index:\n type: gcp:firestore:Index\n properties:\n project: my-project-name\n database: ${database.name}\n collection: atestcollection\n fields:\n - fieldPath: field_name\n order: ASCENDING\n - fieldPath: __name__\n order: ASCENDING\n - fieldPath: description\n vectorConfig:\n dimension: 128\n flat: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIndex can be imported using any of these accepted formats:\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Index can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:firestore/index:Index default {{name}}\n```\n\n", + "description": "Cloud Firestore indexes enable simple and complex queries against documents in a database.\n Both Firestore Native and Datastore Mode indexes are supported.\n This resource manages composite indexes and not single field indexes.\n To manage single field indexes, use the `gcp.firestore.Field` resource instead.\n\n\nTo get more information about Index, see:\n\n* [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.collectionGroups.indexes)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/firestore/docs/query-data/indexing)\n\n\u003e **Warning:** This resource creates a Firestore Index on a project that already has\na Firestore database. If you haven't already created it, you may\ncreate a `gcp.firestore.Database` resource and `location_id` set\nto your chosen location. If you wish to use App Engine, you may\ninstead create a `gcp.appengine.Application` resource.\nYour Firestore location will be the same as the App Engine location specified.\n\n## Example Usage\n\n### Firestore Index Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"database-id\",\n locationId: \"nam5\",\n type: \"FIRESTORE_NATIVE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst my_index = new gcp.firestore.Index(\"my-index\", {\n project: \"my-project-name\",\n database: database.name,\n collection: \"atestcollection\",\n fields: [\n {\n fieldPath: \"name\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"description\",\n order: \"DESCENDING\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"database-id\",\n location_id=\"nam5\",\n type=\"FIRESTORE_NATIVE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\nmy_index = gcp.firestore.Index(\"my-index\",\n project=\"my-project-name\",\n database=database.name,\n collection=\"atestcollection\",\n fields=[\n {\n \"field_path\": \"name\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"description\",\n \"order\": \"DESCENDING\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"database-id\",\n LocationId = \"nam5\",\n Type = \"FIRESTORE_NATIVE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var my_index = new Gcp.Firestore.Index(\"my-index\", new()\n {\n Project = \"my-project-name\",\n Database = database.Name,\n Collection = \"atestcollection\",\n Fields = new[]\n {\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"name\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"description\",\n Order = \"DESCENDING\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"database-id\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"FIRESTORE_NATIVE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firestore.NewIndex(ctx, \"my-index\", \u0026firestore.IndexArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tDatabase: database.Name,\n\t\t\tCollection: pulumi.String(\"atestcollection\"),\n\t\t\tFields: firestore.IndexFieldArray{\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"name\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"description\"),\n\t\t\t\t\tOrder: pulumi.String(\"DESCENDING\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.firestore.Index;\nimport com.pulumi.gcp.firestore.IndexArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"database-id\")\n .locationId(\"nam5\")\n .type(\"FIRESTORE_NATIVE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var my_index = new Index(\"my-index\", IndexArgs.builder()\n .project(\"my-project-name\")\n .database(database.name())\n .collection(\"atestcollection\")\n .fields( \n IndexFieldArgs.builder()\n .fieldPath(\"name\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"description\")\n .order(\"DESCENDING\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: database-id\n locationId: nam5\n type: FIRESTORE_NATIVE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n my-index:\n type: gcp:firestore:Index\n properties:\n project: my-project-name\n database: ${database.name}\n collection: atestcollection\n fields:\n - fieldPath: name\n order: ASCENDING\n - fieldPath: description\n order: DESCENDING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Firestore Index Datastore Mode\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"database-id-dm\",\n locationId: \"nam5\",\n type: \"DATASTORE_MODE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst my_index = new gcp.firestore.Index(\"my-index\", {\n project: \"my-project-name\",\n database: database.name,\n collection: \"atestcollection\",\n queryScope: \"COLLECTION_RECURSIVE\",\n apiScope: \"DATASTORE_MODE_API\",\n fields: [\n {\n fieldPath: \"name\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"description\",\n order: \"DESCENDING\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"database-id-dm\",\n location_id=\"nam5\",\n type=\"DATASTORE_MODE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\nmy_index = gcp.firestore.Index(\"my-index\",\n project=\"my-project-name\",\n database=database.name,\n collection=\"atestcollection\",\n query_scope=\"COLLECTION_RECURSIVE\",\n api_scope=\"DATASTORE_MODE_API\",\n fields=[\n {\n \"field_path\": \"name\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"description\",\n \"order\": \"DESCENDING\",\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"database-id-dm\",\n LocationId = \"nam5\",\n Type = \"DATASTORE_MODE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var my_index = new Gcp.Firestore.Index(\"my-index\", new()\n {\n Project = \"my-project-name\",\n Database = database.Name,\n Collection = \"atestcollection\",\n QueryScope = \"COLLECTION_RECURSIVE\",\n ApiScope = \"DATASTORE_MODE_API\",\n Fields = new[]\n {\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"name\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"description\",\n Order = \"DESCENDING\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"database-id-dm\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"DATASTORE_MODE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firestore.NewIndex(ctx, \"my-index\", \u0026firestore.IndexArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tDatabase: database.Name,\n\t\t\tCollection: pulumi.String(\"atestcollection\"),\n\t\t\tQueryScope: pulumi.String(\"COLLECTION_RECURSIVE\"),\n\t\t\tApiScope: pulumi.String(\"DATASTORE_MODE_API\"),\n\t\t\tFields: firestore.IndexFieldArray{\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"name\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"description\"),\n\t\t\t\t\tOrder: pulumi.String(\"DESCENDING\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.firestore.Index;\nimport com.pulumi.gcp.firestore.IndexArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"database-id-dm\")\n .locationId(\"nam5\")\n .type(\"DATASTORE_MODE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var my_index = new Index(\"my-index\", IndexArgs.builder()\n .project(\"my-project-name\")\n .database(database.name())\n .collection(\"atestcollection\")\n .queryScope(\"COLLECTION_RECURSIVE\")\n .apiScope(\"DATASTORE_MODE_API\")\n .fields( \n IndexFieldArgs.builder()\n .fieldPath(\"name\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"description\")\n .order(\"DESCENDING\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: database-id-dm\n locationId: nam5\n type: DATASTORE_MODE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n my-index:\n type: gcp:firestore:Index\n properties:\n project: my-project-name\n database: ${database.name}\n collection: atestcollection\n queryScope: COLLECTION_RECURSIVE\n apiScope: DATASTORE_MODE_API\n fields:\n - fieldPath: name\n order: ASCENDING\n - fieldPath: description\n order: DESCENDING\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Firestore Index Vector\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst database = new gcp.firestore.Database(\"database\", {\n project: \"my-project-name\",\n name: \"database-id-vector\",\n locationId: \"nam5\",\n type: \"FIRESTORE_NATIVE\",\n deleteProtectionState: \"DELETE_PROTECTION_DISABLED\",\n deletionPolicy: \"DELETE\",\n});\nconst my_index = new gcp.firestore.Index(\"my-index\", {\n project: \"my-project-name\",\n database: database.name,\n collection: \"atestcollection\",\n fields: [\n {\n fieldPath: \"field_name\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"__name__\",\n order: \"ASCENDING\",\n },\n {\n fieldPath: \"description\",\n vectorConfig: {\n dimension: 128,\n flat: {},\n },\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndatabase = gcp.firestore.Database(\"database\",\n project=\"my-project-name\",\n name=\"database-id-vector\",\n location_id=\"nam5\",\n type=\"FIRESTORE_NATIVE\",\n delete_protection_state=\"DELETE_PROTECTION_DISABLED\",\n deletion_policy=\"DELETE\")\nmy_index = gcp.firestore.Index(\"my-index\",\n project=\"my-project-name\",\n database=database.name,\n collection=\"atestcollection\",\n fields=[\n {\n \"field_path\": \"field_name\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"__name__\",\n \"order\": \"ASCENDING\",\n },\n {\n \"field_path\": \"description\",\n \"vector_config\": {\n \"dimension\": 128,\n \"flat\": {},\n },\n },\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var database = new Gcp.Firestore.Database(\"database\", new()\n {\n Project = \"my-project-name\",\n Name = \"database-id-vector\",\n LocationId = \"nam5\",\n Type = \"FIRESTORE_NATIVE\",\n DeleteProtectionState = \"DELETE_PROTECTION_DISABLED\",\n DeletionPolicy = \"DELETE\",\n });\n\n var my_index = new Gcp.Firestore.Index(\"my-index\", new()\n {\n Project = \"my-project-name\",\n Database = database.Name,\n Collection = \"atestcollection\",\n Fields = new[]\n {\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"field_name\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"__name__\",\n Order = \"ASCENDING\",\n },\n new Gcp.Firestore.Inputs.IndexFieldArgs\n {\n FieldPath = \"description\",\n VectorConfig = new Gcp.Firestore.Inputs.IndexFieldVectorConfigArgs\n {\n Dimension = 128,\n Flat = null,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firestore\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdatabase, err := firestore.NewDatabase(ctx, \"database\", \u0026firestore.DatabaseArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tName: pulumi.String(\"database-id-vector\"),\n\t\t\tLocationId: pulumi.String(\"nam5\"),\n\t\t\tType: pulumi.String(\"FIRESTORE_NATIVE\"),\n\t\t\tDeleteProtectionState: pulumi.String(\"DELETE_PROTECTION_DISABLED\"),\n\t\t\tDeletionPolicy: pulumi.String(\"DELETE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = firestore.NewIndex(ctx, \"my-index\", \u0026firestore.IndexArgs{\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tDatabase: database.Name,\n\t\t\tCollection: pulumi.String(\"atestcollection\"),\n\t\t\tFields: firestore.IndexFieldArray{\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"field_name\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"__name__\"),\n\t\t\t\t\tOrder: pulumi.String(\"ASCENDING\"),\n\t\t\t\t},\n\t\t\t\t\u0026firestore.IndexFieldArgs{\n\t\t\t\t\tFieldPath: pulumi.String(\"description\"),\n\t\t\t\t\tVectorConfig: \u0026firestore.IndexFieldVectorConfigArgs{\n\t\t\t\t\t\tDimension: pulumi.Int(128),\n\t\t\t\t\t\tFlat: nil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.firestore.Database;\nimport com.pulumi.gcp.firestore.DatabaseArgs;\nimport com.pulumi.gcp.firestore.Index;\nimport com.pulumi.gcp.firestore.IndexArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldVectorConfigArgs;\nimport com.pulumi.gcp.firestore.inputs.IndexFieldVectorConfigFlatArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var database = new Database(\"database\", DatabaseArgs.builder()\n .project(\"my-project-name\")\n .name(\"database-id-vector\")\n .locationId(\"nam5\")\n .type(\"FIRESTORE_NATIVE\")\n .deleteProtectionState(\"DELETE_PROTECTION_DISABLED\")\n .deletionPolicy(\"DELETE\")\n .build());\n\n var my_index = new Index(\"my-index\", IndexArgs.builder()\n .project(\"my-project-name\")\n .database(database.name())\n .collection(\"atestcollection\")\n .fields( \n IndexFieldArgs.builder()\n .fieldPath(\"field_name\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"__name__\")\n .order(\"ASCENDING\")\n .build(),\n IndexFieldArgs.builder()\n .fieldPath(\"description\")\n .vectorConfig(IndexFieldVectorConfigArgs.builder()\n .dimension(128)\n .flat()\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n database:\n type: gcp:firestore:Database\n properties:\n project: my-project-name\n name: database-id-vector\n locationId: nam5\n type: FIRESTORE_NATIVE\n deleteProtectionState: DELETE_PROTECTION_DISABLED\n deletionPolicy: DELETE\n my-index:\n type: gcp:firestore:Index\n properties:\n project: my-project-name\n database: ${database.name}\n collection: atestcollection\n fields:\n - fieldPath: field_name\n order: ASCENDING\n - fieldPath: __name__\n order: ASCENDING\n - fieldPath: description\n vectorConfig:\n dimension: 128\n flat: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nIndex can be imported using any of these accepted formats:\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Index can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:firestore/index:Index default {{name}}\n```\n\n", "properties": { "apiScope": { "type": "string", @@ -203010,7 +204607,7 @@ }, "clientId": { "type": "string", - "description": "The OAuth2 ID of the client.\n" + "description": "Output only. Unique identifier of the OAuth client.\n" }, "displayName": { "type": "string", @@ -203054,7 +204651,7 @@ }, "clientId": { "type": "string", - "description": "The OAuth2 ID of the client.\n" + "description": "Output only. Unique identifier of the OAuth client.\n" }, "displayName": { "type": "string", @@ -215422,6 +217019,7 @@ "securityStyle", "serviceLevel", "shareName", + "smbSettings", "state", "stateDetails", "storagePool", @@ -216182,7 +217780,7 @@ } }, "gcp:networkconnectivity/hub:Hub": { - "description": "The NetworkConnectivity Hub resource\n\n## Example Usage\n\n### Basic_hub\nA basic test of a networkconnectivity hub\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst primary = new gcp.networkconnectivity.Hub(\"primary\", {\n name: \"hub\",\n description: \"A sample hub\",\n project: \"my-project-name\",\n labels: {\n \"label-one\": \"value-one\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nprimary = gcp.networkconnectivity.Hub(\"primary\",\n name=\"hub\",\n description=\"A sample hub\",\n project=\"my-project-name\",\n labels={\n \"label-one\": \"value-one\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var primary = new Gcp.NetworkConnectivity.Hub(\"primary\", new()\n {\n Name = \"hub\",\n Description = \"A sample hub\",\n Project = \"my-project-name\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkconnectivity.NewHub(ctx, \"primary\", \u0026networkconnectivity.HubArgs{\n\t\t\tName: pulumi.String(\"hub\"),\n\t\t\tDescription: pulumi.String(\"A sample hub\"),\n\t\t\tProject: pulumi.String(\"my-project-name\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var primary = new Hub(\"primary\", HubArgs.builder()\n .name(\"hub\")\n .description(\"A sample hub\")\n .project(\"my-project-name\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:networkconnectivity:Hub\n properties:\n name: hub\n description: A sample hub\n project: my-project-name\n labels:\n label-one: value-one\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHub can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/global/hubs/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Hub can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:networkconnectivity/hub:Hub default projects/{{project}}/locations/global/hubs/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/hub:Hub default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/hub:Hub default {{name}}\n```\n\n", + "description": "The NetworkConnectivity Hub resource\n\n\nTo get more information about Hub, see:\n\n* [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview)\n\n## Example Usage\n\n### Network Connectivity Hub Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst primary = new gcp.networkconnectivity.Hub(\"primary\", {\n name: \"basic\",\n description: \"A sample hub\",\n labels: {\n \"label-one\": \"value-one\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nprimary = gcp.networkconnectivity.Hub(\"primary\",\n name=\"basic\",\n description=\"A sample hub\",\n labels={\n \"label-one\": \"value-one\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var primary = new Gcp.NetworkConnectivity.Hub(\"primary\", new()\n {\n Name = \"basic\",\n Description = \"A sample hub\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkconnectivity.NewHub(ctx, \"primary\", \u0026networkconnectivity.HubArgs{\n\t\t\tName: pulumi.String(\"basic\"),\n\t\t\tDescription: pulumi.String(\"A sample hub\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var primary = new Hub(\"primary\", HubArgs.builder()\n .name(\"basic\")\n .description(\"A sample hub\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:networkconnectivity:Hub\n properties:\n name: basic\n description: A sample hub\n labels:\n label-one: value-one\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nHub can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/global/hubs/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Hub can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:networkconnectivity/hub:Hub default projects/{{project}}/locations/global/hubs/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/hub:Hub default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/hub:Hub default {{name}}\n```\n\n", "properties": { "createTime": { "type": "string", @@ -216195,7 +217793,7 @@ "effectiveLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, "description": "All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n", "secret": true @@ -216205,22 +217803,22 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" + "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" }, "name": { "type": "string", - "description": "Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`\n\n\n\n- - -\n" + "description": "Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`\n\n\n- - -\n" }, "project": { "type": "string", - "description": "The project for the resource\n" + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" }, "pulumiLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, - "description": "The combination of labels configured directly on the resource and default labels configured on the provider.\n", + "description": "The combination of labels configured directly on the resource\nand default labels configured on the provider.\n", "secret": true }, "routingVpcs": { @@ -216228,11 +217826,11 @@ "items": { "$ref": "#/types/gcp:networkconnectivity/HubRoutingVpc:HubRoutingVpc" }, - "description": "The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.\n" + "description": "The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.\nStructure is documented below.\n" }, "state": { "type": "string", - "description": "Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING\n" + "description": "Output only. The current lifecycle state of this hub.\n" }, "uniqueId": { "type": "string", @@ -216264,16 +217862,16 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" + "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" }, "name": { "type": "string", - "description": "Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`\n\n\n\n- - -\n", + "description": "Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`\n\n\n- - -\n", "willReplaceOnChanges": true }, "project": { "type": "string", - "description": "The project for the resource\n", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", "willReplaceOnChanges": true } }, @@ -216291,7 +217889,7 @@ "effectiveLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, "description": "All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n", "secret": true @@ -216301,24 +217899,24 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" + "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" }, "name": { "type": "string", - "description": "Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`\n\n\n\n- - -\n", + "description": "Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}`\n\n\n- - -\n", "willReplaceOnChanges": true }, "project": { "type": "string", - "description": "The project for the resource\n", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", "willReplaceOnChanges": true }, "pulumiLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, - "description": "The combination of labels configured directly on the resource and default labels configured on the provider.\n", + "description": "The combination of labels configured directly on the resource\nand default labels configured on the provider.\n", "secret": true }, "routingVpcs": { @@ -216326,11 +217924,11 @@ "items": { "$ref": "#/types/gcp:networkconnectivity/HubRoutingVpc:HubRoutingVpc" }, - "description": "The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.\n" + "description": "The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.\nStructure is documented below.\n" }, "state": { "type": "string", - "description": "Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING\n" + "description": "Output only. The current lifecycle state of this hub.\n" }, "uniqueId": { "type": "string", @@ -217303,7 +218901,7 @@ } }, "gcp:networkconnectivity/spoke:Spoke": { - "description": "The NetworkConnectivity Spoke resource\n\n## Example Usage\n\n### Linked_vpc_network\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n name: \"network\",\n autoCreateSubnetworks: false,\n});\nconst basicHub = new gcp.networkconnectivity.Hub(\"basic_hub\", {\n name: \"hub\",\n description: \"A sample hub\",\n labels: {\n \"label-two\": \"value-one\",\n },\n});\nconst primary = new gcp.networkconnectivity.Spoke(\"primary\", {\n name: \"name\",\n location: \"global\",\n description: \"A sample spoke with a linked routher appliance instance\",\n labels: {\n \"label-one\": \"value-one\",\n },\n hub: basicHub.id,\n linkedVpcNetwork: {\n excludeExportRanges: [\n \"198.51.100.0/24\",\n \"10.10.0.0/16\",\n ],\n uri: network.selfLink,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n name=\"network\",\n auto_create_subnetworks=False)\nbasic_hub = gcp.networkconnectivity.Hub(\"basic_hub\",\n name=\"hub\",\n description=\"A sample hub\",\n labels={\n \"label-two\": \"value-one\",\n })\nprimary = gcp.networkconnectivity.Spoke(\"primary\",\n name=\"name\",\n location=\"global\",\n description=\"A sample spoke with a linked routher appliance instance\",\n labels={\n \"label-one\": \"value-one\",\n },\n hub=basic_hub.id,\n linked_vpc_network={\n \"exclude_export_ranges\": [\n \"198.51.100.0/24\",\n \"10.10.0.0/16\",\n ],\n \"uri\": network.self_link,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"network\",\n AutoCreateSubnetworks = false,\n });\n\n var basicHub = new Gcp.NetworkConnectivity.Hub(\"basic_hub\", new()\n {\n Name = \"hub\",\n Description = \"A sample hub\",\n Labels = \n {\n { \"label-two\", \"value-one\" },\n },\n });\n\n var primary = new Gcp.NetworkConnectivity.Spoke(\"primary\", new()\n {\n Name = \"name\",\n Location = \"global\",\n Description = \"A sample spoke with a linked routher appliance instance\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n Hub = basicHub.Id,\n LinkedVpcNetwork = new Gcp.NetworkConnectivity.Inputs.SpokeLinkedVpcNetworkArgs\n {\n ExcludeExportRanges = new[]\n {\n \"198.51.100.0/24\",\n \"10.10.0.0/16\",\n },\n Uri = network.SelfLink,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbasicHub, err := networkconnectivity.NewHub(ctx, \"basic_hub\", \u0026networkconnectivity.HubArgs{\n\t\t\tName: pulumi.String(\"hub\"),\n\t\t\tDescription: pulumi.String(\"A sample hub\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-two\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networkconnectivity.NewSpoke(ctx, \"primary\", \u0026networkconnectivity.SpokeArgs{\n\t\t\tName: pulumi.String(\"name\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tDescription: pulumi.String(\"A sample spoke with a linked routher appliance instance\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tHub: basicHub.ID(),\n\t\t\tLinkedVpcNetwork: \u0026networkconnectivity.SpokeLinkedVpcNetworkArgs{\n\t\t\t\tExcludeExportRanges: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"198.51.100.0/24\"),\n\t\t\t\t\tpulumi.String(\"10.10.0.0/16\"),\n\t\t\t\t},\n\t\t\t\tUri: network.SelfLink,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport com.pulumi.gcp.networkconnectivity.Spoke;\nimport com.pulumi.gcp.networkconnectivity.SpokeArgs;\nimport com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedVpcNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var basicHub = new Hub(\"basicHub\", HubArgs.builder()\n .name(\"hub\")\n .description(\"A sample hub\")\n .labels(Map.of(\"label-two\", \"value-one\"))\n .build());\n\n var primary = new Spoke(\"primary\", SpokeArgs.builder()\n .name(\"name\")\n .location(\"global\")\n .description(\"A sample spoke with a linked routher appliance instance\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .hub(basicHub.id())\n .linkedVpcNetwork(SpokeLinkedVpcNetworkArgs.builder()\n .excludeExportRanges( \n \"198.51.100.0/24\",\n \"10.10.0.0/16\")\n .uri(network.selfLink())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n name: network\n autoCreateSubnetworks: false\n basicHub:\n type: gcp:networkconnectivity:Hub\n name: basic_hub\n properties:\n name: hub\n description: A sample hub\n labels:\n label-two: value-one\n primary:\n type: gcp:networkconnectivity:Spoke\n properties:\n name: name\n location: global\n description: A sample spoke with a linked routher appliance instance\n labels:\n label-one: value-one\n hub: ${basicHub.id}\n linkedVpcNetwork:\n excludeExportRanges:\n - 198.51.100.0/24\n - 10.10.0.0/16\n uri: ${network.selfLink}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Router_appliance\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n name: \"network\",\n autoCreateSubnetworks: false,\n});\nconst subnetwork = new gcp.compute.Subnetwork(\"subnetwork\", {\n name: \"subnet\",\n ipCidrRange: \"10.0.0.0/28\",\n region: \"us-west1\",\n network: network.selfLink,\n});\nconst instance = new gcp.compute.Instance(\"instance\", {\n name: \"instance\",\n machineType: \"e2-medium\",\n canIpForward: true,\n zone: \"us-west1-a\",\n bootDisk: {\n initializeParams: {\n image: \"projects/debian-cloud/global/images/debian-10-buster-v20210817\",\n },\n },\n networkInterfaces: [{\n subnetwork: subnetwork.name,\n networkIp: \"10.0.0.2\",\n accessConfigs: [{\n networkTier: \"PREMIUM\",\n }],\n }],\n});\nconst basicHub = new gcp.networkconnectivity.Hub(\"basic_hub\", {\n name: \"hub\",\n description: \"A sample hub\",\n labels: {\n \"label-two\": \"value-one\",\n },\n});\nconst primary = new gcp.networkconnectivity.Spoke(\"primary\", {\n name: \"name\",\n location: \"us-west1\",\n description: \"A sample spoke with a linked routher appliance instance\",\n labels: {\n \"label-one\": \"value-one\",\n },\n hub: basicHub.id,\n linkedRouterApplianceInstances: {\n instances: [{\n virtualMachine: instance.selfLink,\n ipAddress: \"10.0.0.2\",\n }],\n siteToSiteDataTransfer: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n name=\"network\",\n auto_create_subnetworks=False)\nsubnetwork = gcp.compute.Subnetwork(\"subnetwork\",\n name=\"subnet\",\n ip_cidr_range=\"10.0.0.0/28\",\n region=\"us-west1\",\n network=network.self_link)\ninstance = gcp.compute.Instance(\"instance\",\n name=\"instance\",\n machine_type=\"e2-medium\",\n can_ip_forward=True,\n zone=\"us-west1-a\",\n boot_disk={\n \"initialize_params\": {\n \"image\": \"projects/debian-cloud/global/images/debian-10-buster-v20210817\",\n },\n },\n network_interfaces=[{\n \"subnetwork\": subnetwork.name,\n \"network_ip\": \"10.0.0.2\",\n \"access_configs\": [{\n \"network_tier\": \"PREMIUM\",\n }],\n }])\nbasic_hub = gcp.networkconnectivity.Hub(\"basic_hub\",\n name=\"hub\",\n description=\"A sample hub\",\n labels={\n \"label-two\": \"value-one\",\n })\nprimary = gcp.networkconnectivity.Spoke(\"primary\",\n name=\"name\",\n location=\"us-west1\",\n description=\"A sample spoke with a linked routher appliance instance\",\n labels={\n \"label-one\": \"value-one\",\n },\n hub=basic_hub.id,\n linked_router_appliance_instances={\n \"instances\": [{\n \"virtual_machine\": instance.self_link,\n \"ip_address\": \"10.0.0.2\",\n }],\n \"site_to_site_data_transfer\": True,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"network\",\n AutoCreateSubnetworks = false,\n });\n\n var subnetwork = new Gcp.Compute.Subnetwork(\"subnetwork\", new()\n {\n Name = \"subnet\",\n IpCidrRange = \"10.0.0.0/28\",\n Region = \"us-west1\",\n Network = network.SelfLink,\n });\n\n var instance = new Gcp.Compute.Instance(\"instance\", new()\n {\n Name = \"instance\",\n MachineType = \"e2-medium\",\n CanIpForward = true,\n Zone = \"us-west1-a\",\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"projects/debian-cloud/global/images/debian-10-buster-v20210817\",\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Subnetwork = subnetwork.Name,\n NetworkIp = \"10.0.0.2\",\n AccessConfigs = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceAccessConfigArgs\n {\n NetworkTier = \"PREMIUM\",\n },\n },\n },\n },\n });\n\n var basicHub = new Gcp.NetworkConnectivity.Hub(\"basic_hub\", new()\n {\n Name = \"hub\",\n Description = \"A sample hub\",\n Labels = \n {\n { \"label-two\", \"value-one\" },\n },\n });\n\n var primary = new Gcp.NetworkConnectivity.Spoke(\"primary\", new()\n {\n Name = \"name\",\n Location = \"us-west1\",\n Description = \"A sample spoke with a linked routher appliance instance\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n Hub = basicHub.Id,\n LinkedRouterApplianceInstances = new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesArgs\n {\n Instances = new[]\n {\n new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesInstanceArgs\n {\n VirtualMachine = instance.SelfLink,\n IpAddress = \"10.0.0.2\",\n },\n },\n SiteToSiteDataTransfer = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnetwork, err := compute.NewSubnetwork(ctx, \"subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"subnet\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/28\"),\n\t\t\tRegion: pulumi.String(\"us-west1\"),\n\t\t\tNetwork: network.SelfLink,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := compute.NewInstance(ctx, \"instance\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"instance\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tCanIpForward: pulumi.Bool(true),\n\t\t\tZone: pulumi.String(\"us-west1-a\"),\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"projects/debian-cloud/global/images/debian-10-buster-v20210817\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tSubnetwork: subnetwork.Name,\n\t\t\t\t\tNetworkIp: pulumi.String(\"10.0.0.2\"),\n\t\t\t\t\tAccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\t\u0026compute.InstanceNetworkInterfaceAccessConfigArgs{\n\t\t\t\t\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbasicHub, err := networkconnectivity.NewHub(ctx, \"basic_hub\", \u0026networkconnectivity.HubArgs{\n\t\t\tName: pulumi.String(\"hub\"),\n\t\t\tDescription: pulumi.String(\"A sample hub\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-two\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networkconnectivity.NewSpoke(ctx, \"primary\", \u0026networkconnectivity.SpokeArgs{\n\t\t\tName: pulumi.String(\"name\"),\n\t\t\tLocation: pulumi.String(\"us-west1\"),\n\t\t\tDescription: pulumi.String(\"A sample spoke with a linked routher appliance instance\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tHub: basicHub.ID(),\n\t\t\tLinkedRouterApplianceInstances: \u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesArgs{\n\t\t\t\tInstances: networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArray{\n\t\t\t\t\t\u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArgs{\n\t\t\t\t\t\tVirtualMachine: instance.SelfLink,\n\t\t\t\t\t\tIpAddress: pulumi.String(\"10.0.0.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSiteToSiteDataTransfer: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport com.pulumi.gcp.networkconnectivity.Spoke;\nimport com.pulumi.gcp.networkconnectivity.SpokeArgs;\nimport com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedRouterApplianceInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnetwork = new Subnetwork(\"subnetwork\", SubnetworkArgs.builder()\n .name(\"subnet\")\n .ipCidrRange(\"10.0.0.0/28\")\n .region(\"us-west1\")\n .network(network.selfLink())\n .build());\n\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"instance\")\n .machineType(\"e2-medium\")\n .canIpForward(true)\n .zone(\"us-west1-a\")\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"projects/debian-cloud/global/images/debian-10-buster-v20210817\")\n .build())\n .build())\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .subnetwork(subnetwork.name())\n .networkIp(\"10.0.0.2\")\n .accessConfigs(InstanceNetworkInterfaceAccessConfigArgs.builder()\n .networkTier(\"PREMIUM\")\n .build())\n .build())\n .build());\n\n var basicHub = new Hub(\"basicHub\", HubArgs.builder()\n .name(\"hub\")\n .description(\"A sample hub\")\n .labels(Map.of(\"label-two\", \"value-one\"))\n .build());\n\n var primary = new Spoke(\"primary\", SpokeArgs.builder()\n .name(\"name\")\n .location(\"us-west1\")\n .description(\"A sample spoke with a linked routher appliance instance\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .hub(basicHub.id())\n .linkedRouterApplianceInstances(SpokeLinkedRouterApplianceInstancesArgs.builder()\n .instances(SpokeLinkedRouterApplianceInstancesInstanceArgs.builder()\n .virtualMachine(instance.selfLink())\n .ipAddress(\"10.0.0.2\")\n .build())\n .siteToSiteDataTransfer(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n name: network\n autoCreateSubnetworks: false\n subnetwork:\n type: gcp:compute:Subnetwork\n properties:\n name: subnet\n ipCidrRange: 10.0.0.0/28\n region: us-west1\n network: ${network.selfLink}\n instance:\n type: gcp:compute:Instance\n properties:\n name: instance\n machineType: e2-medium\n canIpForward: true\n zone: us-west1-a\n bootDisk:\n initializeParams:\n image: projects/debian-cloud/global/images/debian-10-buster-v20210817\n networkInterfaces:\n - subnetwork: ${subnetwork.name}\n networkIp: 10.0.0.2\n accessConfigs:\n - networkTier: PREMIUM\n basicHub:\n type: gcp:networkconnectivity:Hub\n name: basic_hub\n properties:\n name: hub\n description: A sample hub\n labels:\n label-two: value-one\n primary:\n type: gcp:networkconnectivity:Spoke\n properties:\n name: name\n location: us-west1\n description: A sample spoke with a linked routher appliance instance\n labels:\n label-one: value-one\n hub: ${basicHub.id}\n linkedRouterApplianceInstances:\n instances:\n - virtualMachine: ${instance.selfLink}\n ipAddress: 10.0.0.2\n siteToSiteDataTransfer: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSpoke can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/spokes/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, Spoke can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:networkconnectivity/spoke:Spoke default projects/{{project}}/locations/{{location}}/spokes/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/spoke:Spoke default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/spoke:Spoke default {{location}}/{{name}}\n```\n\n", + "description": "The NetworkConnectivity Spoke resource\n\n\nTo get more information about Spoke, see:\n\n* [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview)\n\n## Example Usage\n\n### Network Connectivity Spoke Linked Vpc Network Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n name: \"net\",\n autoCreateSubnetworks: false,\n});\nconst basicHub = new gcp.networkconnectivity.Hub(\"basic_hub\", {\n name: \"hub1\",\n description: \"A sample hub\",\n labels: {\n \"label-two\": \"value-one\",\n },\n});\nconst primary = new gcp.networkconnectivity.Spoke(\"primary\", {\n name: \"spoke1\",\n location: \"global\",\n description: \"A sample spoke with a linked router appliance instance\",\n labels: {\n \"label-one\": \"value-one\",\n },\n hub: basicHub.id,\n linkedVpcNetwork: {\n excludeExportRanges: [\n \"198.51.100.0/24\",\n \"10.10.0.0/16\",\n ],\n uri: network.selfLink,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n name=\"net\",\n auto_create_subnetworks=False)\nbasic_hub = gcp.networkconnectivity.Hub(\"basic_hub\",\n name=\"hub1\",\n description=\"A sample hub\",\n labels={\n \"label-two\": \"value-one\",\n })\nprimary = gcp.networkconnectivity.Spoke(\"primary\",\n name=\"spoke1\",\n location=\"global\",\n description=\"A sample spoke with a linked router appliance instance\",\n labels={\n \"label-one\": \"value-one\",\n },\n hub=basic_hub.id,\n linked_vpc_network={\n \"exclude_export_ranges\": [\n \"198.51.100.0/24\",\n \"10.10.0.0/16\",\n ],\n \"uri\": network.self_link,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"net\",\n AutoCreateSubnetworks = false,\n });\n\n var basicHub = new Gcp.NetworkConnectivity.Hub(\"basic_hub\", new()\n {\n Name = \"hub1\",\n Description = \"A sample hub\",\n Labels = \n {\n { \"label-two\", \"value-one\" },\n },\n });\n\n var primary = new Gcp.NetworkConnectivity.Spoke(\"primary\", new()\n {\n Name = \"spoke1\",\n Location = \"global\",\n Description = \"A sample spoke with a linked router appliance instance\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n Hub = basicHub.Id,\n LinkedVpcNetwork = new Gcp.NetworkConnectivity.Inputs.SpokeLinkedVpcNetworkArgs\n {\n ExcludeExportRanges = new[]\n {\n \"198.51.100.0/24\",\n \"10.10.0.0/16\",\n },\n Uri = network.SelfLink,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"net\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbasicHub, err := networkconnectivity.NewHub(ctx, \"basic_hub\", \u0026networkconnectivity.HubArgs{\n\t\t\tName: pulumi.String(\"hub1\"),\n\t\t\tDescription: pulumi.String(\"A sample hub\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-two\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networkconnectivity.NewSpoke(ctx, \"primary\", \u0026networkconnectivity.SpokeArgs{\n\t\t\tName: pulumi.String(\"spoke1\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tDescription: pulumi.String(\"A sample spoke with a linked router appliance instance\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tHub: basicHub.ID(),\n\t\t\tLinkedVpcNetwork: \u0026networkconnectivity.SpokeLinkedVpcNetworkArgs{\n\t\t\t\tExcludeExportRanges: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"198.51.100.0/24\"),\n\t\t\t\t\tpulumi.String(\"10.10.0.0/16\"),\n\t\t\t\t},\n\t\t\t\tUri: network.SelfLink,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport com.pulumi.gcp.networkconnectivity.Spoke;\nimport com.pulumi.gcp.networkconnectivity.SpokeArgs;\nimport com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedVpcNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"net\")\n .autoCreateSubnetworks(false)\n .build());\n\n var basicHub = new Hub(\"basicHub\", HubArgs.builder()\n .name(\"hub1\")\n .description(\"A sample hub\")\n .labels(Map.of(\"label-two\", \"value-one\"))\n .build());\n\n var primary = new Spoke(\"primary\", SpokeArgs.builder()\n .name(\"spoke1\")\n .location(\"global\")\n .description(\"A sample spoke with a linked router appliance instance\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .hub(basicHub.id())\n .linkedVpcNetwork(SpokeLinkedVpcNetworkArgs.builder()\n .excludeExportRanges( \n \"198.51.100.0/24\",\n \"10.10.0.0/16\")\n .uri(network.selfLink())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n name: net\n autoCreateSubnetworks: false\n basicHub:\n type: gcp:networkconnectivity:Hub\n name: basic_hub\n properties:\n name: hub1\n description: A sample hub\n labels:\n label-two: value-one\n primary:\n type: gcp:networkconnectivity:Spoke\n properties:\n name: spoke1\n location: global\n description: A sample spoke with a linked router appliance instance\n labels:\n label-one: value-one\n hub: ${basicHub.id}\n linkedVpcNetwork:\n excludeExportRanges:\n - 198.51.100.0/24\n - 10.10.0.0/16\n uri: ${network.selfLink}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Network Connectivity Spoke Router Appliance Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst network = new gcp.compute.Network(\"network\", {\n name: \"tf-test-network_2067\",\n autoCreateSubnetworks: false,\n});\nconst subnetwork = new gcp.compute.Subnetwork(\"subnetwork\", {\n name: \"tf-test-subnet_40785\",\n ipCidrRange: \"10.0.0.0/28\",\n region: \"us-central1\",\n network: network.selfLink,\n});\nconst instance = new gcp.compute.Instance(\"instance\", {\n name: \"tf-test-instance_79169\",\n machineType: \"e2-medium\",\n canIpForward: true,\n zone: \"us-central1-a\",\n bootDisk: {\n initializeParams: {\n image: \"projects/debian-cloud/global/images/debian-10-buster-v20210817\",\n },\n },\n networkInterfaces: [{\n subnetwork: subnetwork.name,\n networkIp: \"10.0.0.2\",\n accessConfigs: [{\n networkTier: \"PREMIUM\",\n }],\n }],\n});\nconst basicHub = new gcp.networkconnectivity.Hub(\"basic_hub\", {\n name: \"tf-test-hub_56529\",\n description: \"A sample hub\",\n labels: {\n \"label-two\": \"value-one\",\n },\n});\nconst primary = new gcp.networkconnectivity.Spoke(\"primary\", {\n name: \"tf-test-name_75413\",\n location: \"us-central1\",\n description: \"A sample spoke with a linked routher appliance instance\",\n labels: {\n \"label-one\": \"value-one\",\n },\n hub: basicHub.id,\n linkedRouterApplianceInstances: {\n instances: [{\n virtualMachine: instance.selfLink,\n ipAddress: \"10.0.0.2\",\n }],\n siteToSiteDataTransfer: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nnetwork = gcp.compute.Network(\"network\",\n name=\"tf-test-network_2067\",\n auto_create_subnetworks=False)\nsubnetwork = gcp.compute.Subnetwork(\"subnetwork\",\n name=\"tf-test-subnet_40785\",\n ip_cidr_range=\"10.0.0.0/28\",\n region=\"us-central1\",\n network=network.self_link)\ninstance = gcp.compute.Instance(\"instance\",\n name=\"tf-test-instance_79169\",\n machine_type=\"e2-medium\",\n can_ip_forward=True,\n zone=\"us-central1-a\",\n boot_disk={\n \"initialize_params\": {\n \"image\": \"projects/debian-cloud/global/images/debian-10-buster-v20210817\",\n },\n },\n network_interfaces=[{\n \"subnetwork\": subnetwork.name,\n \"network_ip\": \"10.0.0.2\",\n \"access_configs\": [{\n \"network_tier\": \"PREMIUM\",\n }],\n }])\nbasic_hub = gcp.networkconnectivity.Hub(\"basic_hub\",\n name=\"tf-test-hub_56529\",\n description=\"A sample hub\",\n labels={\n \"label-two\": \"value-one\",\n })\nprimary = gcp.networkconnectivity.Spoke(\"primary\",\n name=\"tf-test-name_75413\",\n location=\"us-central1\",\n description=\"A sample spoke with a linked routher appliance instance\",\n labels={\n \"label-one\": \"value-one\",\n },\n hub=basic_hub.id,\n linked_router_appliance_instances={\n \"instances\": [{\n \"virtual_machine\": instance.self_link,\n \"ip_address\": \"10.0.0.2\",\n }],\n \"site_to_site_data_transfer\": True,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"tf-test-network_2067\",\n AutoCreateSubnetworks = false,\n });\n\n var subnetwork = new Gcp.Compute.Subnetwork(\"subnetwork\", new()\n {\n Name = \"tf-test-subnet_40785\",\n IpCidrRange = \"10.0.0.0/28\",\n Region = \"us-central1\",\n Network = network.SelfLink,\n });\n\n var instance = new Gcp.Compute.Instance(\"instance\", new()\n {\n Name = \"tf-test-instance_79169\",\n MachineType = \"e2-medium\",\n CanIpForward = true,\n Zone = \"us-central1-a\",\n BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs\n {\n InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs\n {\n Image = \"projects/debian-cloud/global/images/debian-10-buster-v20210817\",\n },\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceArgs\n {\n Subnetwork = subnetwork.Name,\n NetworkIp = \"10.0.0.2\",\n AccessConfigs = new[]\n {\n new Gcp.Compute.Inputs.InstanceNetworkInterfaceAccessConfigArgs\n {\n NetworkTier = \"PREMIUM\",\n },\n },\n },\n },\n });\n\n var basicHub = new Gcp.NetworkConnectivity.Hub(\"basic_hub\", new()\n {\n Name = \"tf-test-hub_56529\",\n Description = \"A sample hub\",\n Labels = \n {\n { \"label-two\", \"value-one\" },\n },\n });\n\n var primary = new Gcp.NetworkConnectivity.Spoke(\"primary\", new()\n {\n Name = \"tf-test-name_75413\",\n Location = \"us-central1\",\n Description = \"A sample spoke with a linked routher appliance instance\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n Hub = basicHub.Id,\n LinkedRouterApplianceInstances = new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesArgs\n {\n Instances = new[]\n {\n new Gcp.NetworkConnectivity.Inputs.SpokeLinkedRouterApplianceInstancesInstanceArgs\n {\n VirtualMachine = instance.SelfLink,\n IpAddress = \"10.0.0.2\",\n },\n },\n SiteToSiteDataTransfer = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networkconnectivity\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"tf-test-network_2067\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnetwork, err := compute.NewSubnetwork(ctx, \"subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"tf-test-subnet_40785\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.0.0/28\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.SelfLink,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinstance, err := compute.NewInstance(ctx, \"instance\", \u0026compute.InstanceArgs{\n\t\t\tName: pulumi.String(\"tf-test-instance_79169\"),\n\t\t\tMachineType: pulumi.String(\"e2-medium\"),\n\t\t\tCanIpForward: pulumi.Bool(true),\n\t\t\tZone: pulumi.String(\"us-central1-a\"),\n\t\t\tBootDisk: \u0026compute.InstanceBootDiskArgs{\n\t\t\t\tInitializeParams: \u0026compute.InstanceBootDiskInitializeParamsArgs{\n\t\t\t\t\tImage: pulumi.String(\"projects/debian-cloud/global/images/debian-10-buster-v20210817\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNetworkInterfaces: compute.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026compute.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tSubnetwork: subnetwork.Name,\n\t\t\t\t\tNetworkIp: pulumi.String(\"10.0.0.2\"),\n\t\t\t\t\tAccessConfigs: compute.InstanceNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\t\u0026compute.InstanceNetworkInterfaceAccessConfigArgs{\n\t\t\t\t\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbasicHub, err := networkconnectivity.NewHub(ctx, \"basic_hub\", \u0026networkconnectivity.HubArgs{\n\t\t\tName: pulumi.String(\"tf-test-hub_56529\"),\n\t\t\tDescription: pulumi.String(\"A sample hub\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-two\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networkconnectivity.NewSpoke(ctx, \"primary\", \u0026networkconnectivity.SpokeArgs{\n\t\t\tName: pulumi.String(\"tf-test-name_75413\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tDescription: pulumi.String(\"A sample spoke with a linked routher appliance instance\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tHub: basicHub.ID(),\n\t\t\tLinkedRouterApplianceInstances: \u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesArgs{\n\t\t\t\tInstances: networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArray{\n\t\t\t\t\t\u0026networkconnectivity.SpokeLinkedRouterApplianceInstancesInstanceArgs{\n\t\t\t\t\t\tVirtualMachine: instance.SelfLink,\n\t\t\t\t\t\tIpAddress: pulumi.String(\"10.0.0.2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tSiteToSiteDataTransfer: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Instance;\nimport com.pulumi.gcp.compute.InstanceArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceBootDiskInitializeParamsArgs;\nimport com.pulumi.gcp.compute.inputs.InstanceNetworkInterfaceArgs;\nimport com.pulumi.gcp.networkconnectivity.Hub;\nimport com.pulumi.gcp.networkconnectivity.HubArgs;\nimport com.pulumi.gcp.networkconnectivity.Spoke;\nimport com.pulumi.gcp.networkconnectivity.SpokeArgs;\nimport com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedRouterApplianceInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"tf-test-network_2067\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnetwork = new Subnetwork(\"subnetwork\", SubnetworkArgs.builder()\n .name(\"tf-test-subnet_40785\")\n .ipCidrRange(\"10.0.0.0/28\")\n .region(\"us-central1\")\n .network(network.selfLink())\n .build());\n\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"tf-test-instance_79169\")\n .machineType(\"e2-medium\")\n .canIpForward(true)\n .zone(\"us-central1-a\")\n .bootDisk(InstanceBootDiskArgs.builder()\n .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()\n .image(\"projects/debian-cloud/global/images/debian-10-buster-v20210817\")\n .build())\n .build())\n .networkInterfaces(InstanceNetworkInterfaceArgs.builder()\n .subnetwork(subnetwork.name())\n .networkIp(\"10.0.0.2\")\n .accessConfigs(InstanceNetworkInterfaceAccessConfigArgs.builder()\n .networkTier(\"PREMIUM\")\n .build())\n .build())\n .build());\n\n var basicHub = new Hub(\"basicHub\", HubArgs.builder()\n .name(\"tf-test-hub_56529\")\n .description(\"A sample hub\")\n .labels(Map.of(\"label-two\", \"value-one\"))\n .build());\n\n var primary = new Spoke(\"primary\", SpokeArgs.builder()\n .name(\"tf-test-name_75413\")\n .location(\"us-central1\")\n .description(\"A sample spoke with a linked routher appliance instance\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .hub(basicHub.id())\n .linkedRouterApplianceInstances(SpokeLinkedRouterApplianceInstancesArgs.builder()\n .instances(SpokeLinkedRouterApplianceInstancesInstanceArgs.builder()\n .virtualMachine(instance.selfLink())\n .ipAddress(\"10.0.0.2\")\n .build())\n .siteToSiteDataTransfer(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n network:\n type: gcp:compute:Network\n properties:\n name: tf-test-network_2067\n autoCreateSubnetworks: false\n subnetwork:\n type: gcp:compute:Subnetwork\n properties:\n name: tf-test-subnet_40785\n ipCidrRange: 10.0.0.0/28\n region: us-central1\n network: ${network.selfLink}\n instance:\n type: gcp:compute:Instance\n properties:\n name: tf-test-instance_79169\n machineType: e2-medium\n canIpForward: true\n zone: us-central1-a\n bootDisk:\n initializeParams:\n image: projects/debian-cloud/global/images/debian-10-buster-v20210817\n networkInterfaces:\n - subnetwork: ${subnetwork.name}\n networkIp: 10.0.0.2\n accessConfigs:\n - networkTier: PREMIUM\n basicHub:\n type: gcp:networkconnectivity:Hub\n name: basic_hub\n properties:\n name: tf-test-hub_56529\n description: A sample hub\n labels:\n label-two: value-one\n primary:\n type: gcp:networkconnectivity:Spoke\n properties:\n name: tf-test-name_75413\n location: us-central1\n description: A sample spoke with a linked routher appliance instance\n labels:\n label-one: value-one\n hub: ${basicHub.id}\n linkedRouterApplianceInstances:\n instances:\n - virtualMachine: ${instance.selfLink}\n ipAddress: 10.0.0.2\n siteToSiteDataTransfer: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSpoke can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/spokes/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, Spoke can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:networkconnectivity/spoke:Spoke default projects/{{project}}/locations/{{location}}/spokes/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/spoke:Spoke default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networkconnectivity/spoke:Spoke default {{location}}/{{name}}\n```\n\n", "properties": { "createTime": { "type": "string", @@ -217316,7 +218914,7 @@ "effectiveLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, "description": "All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n", "secret": true @@ -217330,27 +218928,27 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for\nlabels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is\nnon-authoritative, and will only manage the labels present in your configuration. Please refer to the field\n`effective_labels` for all of the labels present on the resource.\n" + "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" }, "linkedInterconnectAttachments": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedInterconnectAttachments:SpokeLinkedInterconnectAttachments", - "description": "A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same\nprefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of\nadvertising the same prefixes.\n" + "description": "A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.\nStructure is documented below.\n" }, "linkedRouterApplianceInstances": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedRouterApplianceInstances:SpokeLinkedRouterApplianceInstances", - "description": "The URIs of linked Router appliance resources\n" + "description": "The URIs of linked Router appliance resources\nStructure is documented below.\n" }, "linkedVpcNetwork": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedVpcNetwork:SpokeLinkedVpcNetwork", - "description": "VPC network that is associated with the spoke.\n" + "description": "VPC network that is associated with the spoke.\nStructure is documented below.\n" }, "linkedVpnTunnels": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedVpnTunnels:SpokeLinkedVpnTunnels", - "description": "The URIs of linked VPN tunnel resources\n" + "description": "The URIs of linked VPN tunnel resources\nStructure is documented below.\n" }, "location": { "type": "string", - "description": "The location for the resource\n" + "description": "The location for the resource\n\n\n- - -\n" }, "name": { "type": "string", @@ -217358,19 +218956,19 @@ }, "project": { "type": "string", - "description": "The project for the resource\n" + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n" }, "pulumiLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, - "description": "The combination of labels configured directly on the resource and default labels configured on the provider.\n", + "description": "The combination of labels configured directly on the resource\nand default labels configured on the provider.\n", "secret": true }, "state": { "type": "string", - "description": "Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING\n" + "description": "Output only. The current lifecycle state of this spoke.\n" }, "uniqueId": { "type": "string", @@ -217408,31 +219006,31 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for\nlabels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is\nnon-authoritative, and will only manage the labels present in your configuration. Please refer to the field\n`effective_labels` for all of the labels present on the resource.\n" + "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" }, "linkedInterconnectAttachments": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedInterconnectAttachments:SpokeLinkedInterconnectAttachments", - "description": "A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same\nprefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of\nadvertising the same prefixes.\n", + "description": "A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.\nStructure is documented below.\n", "willReplaceOnChanges": true }, "linkedRouterApplianceInstances": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedRouterApplianceInstances:SpokeLinkedRouterApplianceInstances", - "description": "The URIs of linked Router appliance resources\n", + "description": "The URIs of linked Router appliance resources\nStructure is documented below.\n", "willReplaceOnChanges": true }, "linkedVpcNetwork": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedVpcNetwork:SpokeLinkedVpcNetwork", - "description": "VPC network that is associated with the spoke.\n", + "description": "VPC network that is associated with the spoke.\nStructure is documented below.\n", "willReplaceOnChanges": true }, "linkedVpnTunnels": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedVpnTunnels:SpokeLinkedVpnTunnels", - "description": "The URIs of linked VPN tunnel resources\n", + "description": "The URIs of linked VPN tunnel resources\nStructure is documented below.\n", "willReplaceOnChanges": true }, "location": { "type": "string", - "description": "The location for the resource\n", + "description": "The location for the resource\n\n\n- - -\n", "willReplaceOnChanges": true }, "name": { @@ -217442,7 +219040,7 @@ }, "project": { "type": "string", - "description": "The project for the resource\n", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", "willReplaceOnChanges": true } }, @@ -217464,7 +219062,7 @@ "effectiveLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, "description": "All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.\n", "secret": true @@ -217479,31 +219077,31 @@ "additionalProperties": { "type": "string" }, - "description": "Optional labels in key:value format. For more information about labels, see [Requirements for\nlabels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is\nnon-authoritative, and will only manage the labels present in your configuration. Please refer to the field\n`effective_labels` for all of the labels present on the resource.\n" + "description": "Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).\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" }, "linkedInterconnectAttachments": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedInterconnectAttachments:SpokeLinkedInterconnectAttachments", - "description": "A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same\nprefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of\nadvertising the same prefixes.\n", + "description": "A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.\nStructure is documented below.\n", "willReplaceOnChanges": true }, "linkedRouterApplianceInstances": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedRouterApplianceInstances:SpokeLinkedRouterApplianceInstances", - "description": "The URIs of linked Router appliance resources\n", + "description": "The URIs of linked Router appliance resources\nStructure is documented below.\n", "willReplaceOnChanges": true }, "linkedVpcNetwork": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedVpcNetwork:SpokeLinkedVpcNetwork", - "description": "VPC network that is associated with the spoke.\n", + "description": "VPC network that is associated with the spoke.\nStructure is documented below.\n", "willReplaceOnChanges": true }, "linkedVpnTunnels": { "$ref": "#/types/gcp:networkconnectivity/SpokeLinkedVpnTunnels:SpokeLinkedVpnTunnels", - "description": "The URIs of linked VPN tunnel resources\n", + "description": "The URIs of linked VPN tunnel resources\nStructure is documented below.\n", "willReplaceOnChanges": true }, "location": { "type": "string", - "description": "The location for the resource\n", + "description": "The location for the resource\n\n\n- - -\n", "willReplaceOnChanges": true }, "name": { @@ -217513,20 +219111,20 @@ }, "project": { "type": "string", - "description": "The project for the resource\n", + "description": "The ID of the project in which the resource belongs.\nIf it is not provided, the provider project is used.\n", "willReplaceOnChanges": true }, "pulumiLabels": { "type": "object", "additionalProperties": { - "$ref": "pulumi.json#/Any" + "type": "string" }, - "description": "The combination of labels configured directly on the resource and default labels configured on the provider.\n", + "description": "The combination of labels configured directly on the resource\nand default labels configured on the provider.\n", "secret": true }, "state": { "type": "string", - "description": "Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING\n" + "description": "Output only. The current lifecycle state of this spoke.\n" }, "uniqueId": { "type": "string", @@ -219857,7 +221455,7 @@ } }, "gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy": { - "description": "The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.\n\n\nTo get more information about TlsInspectionPolicy, see:\n\n* [API documentation](https://cloud.google.com/secure-web-proxy/docs/reference/network-security/rest/v1/projects.locations.tlsInspectionPolicies)\n* How-to Guides\n * [Use TlsInspectionPolicy](https://cloud.google.com/secure-web-proxy/docs/tls-inspection-overview)\n\n## Example Usage\n\n### Network Security Tls Inspection Policy Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.certificateauthority.CaPool(\"default\", {\n name: \"my-basic-ca-pool\",\n location: \"us-central1\",\n tier: \"DEVOPS\",\n publishingOptions: {\n publishCaCert: false,\n publishCrl: false,\n },\n issuancePolicy: {\n maximumLifetime: \"1209600s\",\n baselineValues: {\n caOptions: {\n isCa: false,\n },\n keyUsage: {\n baseKeyUsage: {},\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"default\", {\n pool: _default.name,\n certificateAuthorityId: \"my-basic-certificate-authority\",\n location: \"us-central1\",\n lifetime: \"86400s\",\n type: \"SELF_SIGNED\",\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"Test LLC\",\n commonName: \"my-ca\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n});\nconst project = gcp.organizations.getProject({});\nconst tlsInspectionPermission = new gcp.certificateauthority.CaPoolIamMember(\"tls_inspection_permission\", {\n caPool: _default.id,\n role: \"roles/privateca.certificateManager\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-networksecurity.iam.gserviceaccount.com`),\n});\nconst defaultTlsInspectionPolicy = new gcp.networksecurity.TlsInspectionPolicy(\"default\", {\n name: \"my-tls-inspection-policy\",\n location: \"us-central1\",\n caPool: _default.id,\n excludePublicCaSet: false,\n}, {\n dependsOn: [\n _default,\n defaultAuthority,\n tlsInspectionPermission,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.certificateauthority.CaPool(\"default\",\n name=\"my-basic-ca-pool\",\n location=\"us-central1\",\n tier=\"DEVOPS\",\n publishing_options={\n \"publish_ca_cert\": False,\n \"publish_crl\": False,\n },\n issuance_policy={\n \"maximum_lifetime\": \"1209600s\",\n \"baseline_values\": {\n \"ca_options\": {\n \"is_ca\": False,\n },\n \"key_usage\": {\n \"base_key_usage\": {},\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n })\ndefault_authority = gcp.certificateauthority.Authority(\"default\",\n pool=default.name,\n certificate_authority_id=\"my-basic-certificate-authority\",\n location=\"us-central1\",\n lifetime=\"86400s\",\n type=\"SELF_SIGNED\",\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"Test LLC\",\n \"common_name\": \"my-ca\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n })\nproject = gcp.organizations.get_project()\ntls_inspection_permission = gcp.certificateauthority.CaPoolIamMember(\"tls_inspection_permission\",\n ca_pool=default.id,\n role=\"roles/privateca.certificateManager\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-networksecurity.iam.gserviceaccount.com\")\ndefault_tls_inspection_policy = gcp.networksecurity.TlsInspectionPolicy(\"default\",\n name=\"my-tls-inspection-policy\",\n location=\"us-central1\",\n ca_pool=default.id,\n exclude_public_ca_set=False,\n opts = pulumi.ResourceOptions(depends_on=[\n default,\n default_authority,\n tls_inspection_permission,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.CaPool(\"default\", new()\n {\n Name = \"my-basic-ca-pool\",\n Location = \"us-central1\",\n Tier = \"DEVOPS\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = false,\n PublishCrl = false,\n },\n IssuancePolicy = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyArgs\n {\n MaximumLifetime = \"1209600s\",\n BaselineValues = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs\n {\n IsCa = false,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs\n {\n BaseKeyUsage = null,\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = @default.Name,\n CertificateAuthorityId = \"my-basic-certificate-authority\",\n Location = \"us-central1\",\n Lifetime = \"86400s\",\n Type = \"SELF_SIGNED\",\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"Test LLC\",\n CommonName = \"my-ca\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var tlsInspectionPermission = new Gcp.CertificateAuthority.CaPoolIamMember(\"tls_inspection_permission\", new()\n {\n CaPool = @default.Id,\n Role = \"roles/privateca.certificateManager\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-networksecurity.iam.gserviceaccount.com\",\n });\n\n var defaultTlsInspectionPolicy = new Gcp.NetworkSecurity.TlsInspectionPolicy(\"default\", new()\n {\n Name = \"my-tls-inspection-policy\",\n Location = \"us-central1\",\n CaPool = @default.Id,\n ExcludePublicCaSet = false,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n @default,\n defaultAuthority,\n tlsInspectionPermission,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networksecurity\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewCaPool(ctx, \"default\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"my-basic-ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"DEVOPS\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(false),\n\t\t\t\tPublishCrl: pulumi.Bool(false),\n\t\t\t},\n\t\t\tIssuancePolicy: \u0026certificateauthority.CaPoolIssuancePolicyArgs{\n\t\t\t\tMaximumLifetime: pulumi.String(\"1209600s\"),\n\t\t\t\tBaselineValues: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: nil,\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: _default.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-basic-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tType: pulumi.String(\"SELF_SIGNED\"),\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"Test LLC\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-ca\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttlsInspectionPermission, err := certificateauthority.NewCaPoolIamMember(ctx, \"tls_inspection_permission\", \u0026certificateauthority.CaPoolIamMemberArgs{\n\t\t\tCaPool: _default.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateManager\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-networksecurity.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networksecurity.NewTlsInspectionPolicy(ctx, \"default\", \u0026networksecurity.TlsInspectionPolicyArgs{\n\t\t\tName: pulumi.String(\"my-tls-inspection-policy\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tCaPool: _default.ID(),\n\t\t\tExcludePublicCaSet: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\t_default,\n\t\t\tdefaultAuthority,\n\t\t\ttlsInspectionPermission,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMember;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMemberArgs;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicy;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new CaPool(\"default\", CaPoolArgs.builder()\n .name(\"my-basic-ca-pool\")\n .location(\"us-central1\")\n .tier(\"DEVOPS\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(false)\n .publishCrl(false)\n .build())\n .issuancePolicy(CaPoolIssuancePolicyArgs.builder()\n .maximumLifetime(\"1209600s\")\n .baselineValues(CaPoolIssuancePolicyBaselineValuesArgs.builder()\n .caOptions(CaPoolIssuancePolicyBaselineValuesCaOptionsArgs.builder()\n .isCa(false)\n .build())\n .keyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageArgs.builder()\n .baseKeyUsage()\n .extendedKeyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder()\n .pool(default_.name())\n .certificateAuthorityId(\"my-basic-certificate-authority\")\n .location(\"us-central1\")\n .lifetime(\"86400s\")\n .type(\"SELF_SIGNED\")\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"Test LLC\")\n .commonName(\"my-ca\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var tlsInspectionPermission = new CaPoolIamMember(\"tlsInspectionPermission\", CaPoolIamMemberArgs.builder()\n .caPool(default_.id())\n .role(\"roles/privateca.certificateManager\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-networksecurity.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var defaultTlsInspectionPolicy = new TlsInspectionPolicy(\"defaultTlsInspectionPolicy\", TlsInspectionPolicyArgs.builder()\n .name(\"my-tls-inspection-policy\")\n .location(\"us-central1\")\n .caPool(default_.id())\n .excludePublicCaSet(false)\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n default_,\n defaultAuthority,\n tlsInspectionPermission)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:CaPool\n properties:\n name: my-basic-ca-pool\n location: us-central1\n tier: DEVOPS\n publishingOptions:\n publishCaCert: false\n publishCrl: false\n issuancePolicy:\n maximumLifetime: 1209600s\n baselineValues:\n caOptions:\n isCa: false\n keyUsage:\n baseKeyUsage: {}\n extendedKeyUsage:\n serverAuth: true\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n name: default\n properties:\n pool: ${default.name}\n certificateAuthorityId: my-basic-certificate-authority\n location: us-central1\n lifetime: 86400s\n type: SELF_SIGNED\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n config:\n subjectConfig:\n subject:\n organization: Test LLC\n commonName: my-ca\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n tlsInspectionPermission:\n type: gcp:certificateauthority:CaPoolIamMember\n name: tls_inspection_permission\n properties:\n caPool: ${default.id}\n role: roles/privateca.certificateManager\n member: serviceAccount:service-${project.number}@gcp-sa-networksecurity.iam.gserviceaccount.com\n defaultTlsInspectionPolicy:\n type: gcp:networksecurity:TlsInspectionPolicy\n name: default\n properties:\n name: my-tls-inspection-policy\n location: us-central1\n caPool: ${default.id}\n excludePublicCaSet: false\n options:\n dependson:\n - ${default}\n - ${defaultAuthority}\n - ${tlsInspectionPermission}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Network Security Tls Inspection Policy Custom\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as std from \"@pulumi/std\";\n\nconst _default = new gcp.certificateauthority.CaPool(\"default\", {\n name: \"my-basic-ca-pool\",\n location: \"us-central1\",\n tier: \"DEVOPS\",\n publishingOptions: {\n publishCaCert: false,\n publishCrl: false,\n },\n issuancePolicy: {\n maximumLifetime: \"1209600s\",\n baselineValues: {\n caOptions: {\n isCa: false,\n },\n keyUsage: {\n baseKeyUsage: {},\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"default\", {\n pool: _default.name,\n certificateAuthorityId: \"my-basic-certificate-authority\",\n location: \"us-central1\",\n lifetime: \"86400s\",\n type: \"SELF_SIGNED\",\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"Test LLC\",\n commonName: \"my-ca\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n});\nconst nsSa = new gcp.projects.ServiceIdentity(\"ns_sa\", {service: \"networksecurity.googleapis.com\"});\nconst defaultCaPoolIamMember = new gcp.certificateauthority.CaPoolIamMember(\"default\", {\n caPool: _default.id,\n role: \"roles/privateca.certificateManager\",\n member: pulumi.interpolate`serviceAccount:${nsSa.email}`,\n});\nconst defaultTrustConfig = new gcp.certificatemanager.TrustConfig(\"default\", {\n name: \"my-trust-config\",\n description: \"sample trust config description\",\n location: \"us-central1\",\n trustStores: [{\n trustAnchors: [{\n pemCertificate: std.file({\n input: \"test-fixtures/ca_cert.pem\",\n }).then(invoke =\u003e invoke.result),\n }],\n intermediateCas: [{\n pemCertificate: std.file({\n input: \"test-fixtures/ca_cert.pem\",\n }).then(invoke =\u003e invoke.result),\n }],\n }],\n});\nconst defaultTlsInspectionPolicy = new gcp.networksecurity.TlsInspectionPolicy(\"default\", {\n name: \"my-tls-inspection-policy\",\n location: \"us-central1\",\n caPool: _default.id,\n excludePublicCaSet: false,\n minTlsVersion: \"TLS_1_0\",\n trustConfig: defaultTrustConfig.id,\n tlsFeatureProfile: \"PROFILE_CUSTOM\",\n customTlsFeatures: [\n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n ],\n}, {\n dependsOn: [\n defaultAuthority,\n defaultCaPoolIamMember,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_std as std\n\ndefault = gcp.certificateauthority.CaPool(\"default\",\n name=\"my-basic-ca-pool\",\n location=\"us-central1\",\n tier=\"DEVOPS\",\n publishing_options={\n \"publish_ca_cert\": False,\n \"publish_crl\": False,\n },\n issuance_policy={\n \"maximum_lifetime\": \"1209600s\",\n \"baseline_values\": {\n \"ca_options\": {\n \"is_ca\": False,\n },\n \"key_usage\": {\n \"base_key_usage\": {},\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n })\ndefault_authority = gcp.certificateauthority.Authority(\"default\",\n pool=default.name,\n certificate_authority_id=\"my-basic-certificate-authority\",\n location=\"us-central1\",\n lifetime=\"86400s\",\n type=\"SELF_SIGNED\",\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"Test LLC\",\n \"common_name\": \"my-ca\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n })\nns_sa = gcp.projects.ServiceIdentity(\"ns_sa\", service=\"networksecurity.googleapis.com\")\ndefault_ca_pool_iam_member = gcp.certificateauthority.CaPoolIamMember(\"default\",\n ca_pool=default.id,\n role=\"roles/privateca.certificateManager\",\n member=ns_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\ndefault_trust_config = gcp.certificatemanager.TrustConfig(\"default\",\n name=\"my-trust-config\",\n description=\"sample trust config description\",\n location=\"us-central1\",\n trust_stores=[{\n \"trust_anchors\": [{\n \"pem_certificate\": std.file(input=\"test-fixtures/ca_cert.pem\").result,\n }],\n \"intermediate_cas\": [{\n \"pem_certificate\": std.file(input=\"test-fixtures/ca_cert.pem\").result,\n }],\n }])\ndefault_tls_inspection_policy = gcp.networksecurity.TlsInspectionPolicy(\"default\",\n name=\"my-tls-inspection-policy\",\n location=\"us-central1\",\n ca_pool=default.id,\n exclude_public_ca_set=False,\n min_tls_version=\"TLS_1_0\",\n trust_config=default_trust_config.id,\n tls_feature_profile=\"PROFILE_CUSTOM\",\n custom_tls_features=[\n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n default_authority,\n default_ca_pool_iam_member,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.CaPool(\"default\", new()\n {\n Name = \"my-basic-ca-pool\",\n Location = \"us-central1\",\n Tier = \"DEVOPS\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = false,\n PublishCrl = false,\n },\n IssuancePolicy = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyArgs\n {\n MaximumLifetime = \"1209600s\",\n BaselineValues = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs\n {\n IsCa = false,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs\n {\n BaseKeyUsage = null,\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = @default.Name,\n CertificateAuthorityId = \"my-basic-certificate-authority\",\n Location = \"us-central1\",\n Lifetime = \"86400s\",\n Type = \"SELF_SIGNED\",\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"Test LLC\",\n CommonName = \"my-ca\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n });\n\n var nsSa = new Gcp.Projects.ServiceIdentity(\"ns_sa\", new()\n {\n Service = \"networksecurity.googleapis.com\",\n });\n\n var defaultCaPoolIamMember = new Gcp.CertificateAuthority.CaPoolIamMember(\"default\", new()\n {\n CaPool = @default.Id,\n Role = \"roles/privateca.certificateManager\",\n Member = nsSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var defaultTrustConfig = new Gcp.CertificateManager.TrustConfig(\"default\", new()\n {\n Name = \"my-trust-config\",\n Description = \"sample trust config description\",\n Location = \"us-central1\",\n TrustStores = new[]\n {\n new Gcp.CertificateManager.Inputs.TrustConfigTrustStoreArgs\n {\n TrustAnchors = new[]\n {\n new Gcp.CertificateManager.Inputs.TrustConfigTrustStoreTrustAnchorArgs\n {\n PemCertificate = Std.File.Invoke(new()\n {\n Input = \"test-fixtures/ca_cert.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n },\n IntermediateCas = new[]\n {\n new Gcp.CertificateManager.Inputs.TrustConfigTrustStoreIntermediateCaArgs\n {\n PemCertificate = Std.File.Invoke(new()\n {\n Input = \"test-fixtures/ca_cert.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n },\n },\n },\n });\n\n var defaultTlsInspectionPolicy = new Gcp.NetworkSecurity.TlsInspectionPolicy(\"default\", new()\n {\n Name = \"my-tls-inspection-policy\",\n Location = \"us-central1\",\n CaPool = @default.Id,\n ExcludePublicCaSet = false,\n MinTlsVersion = \"TLS_1_0\",\n TrustConfig = defaultTrustConfig.Id,\n TlsFeatureProfile = \"PROFILE_CUSTOM\",\n CustomTlsFeatures = new[]\n {\n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n defaultAuthority,\n defaultCaPoolIamMember,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificatemanager\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networksecurity\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewCaPool(ctx, \"default\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"my-basic-ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"DEVOPS\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(false),\n\t\t\t\tPublishCrl: pulumi.Bool(false),\n\t\t\t},\n\t\t\tIssuancePolicy: \u0026certificateauthority.CaPoolIssuancePolicyArgs{\n\t\t\t\tMaximumLifetime: pulumi.String(\"1209600s\"),\n\t\t\t\tBaselineValues: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: nil,\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: _default.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-basic-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tType: pulumi.String(\"SELF_SIGNED\"),\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"Test LLC\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-ca\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnsSa, err := projects.NewServiceIdentity(ctx, \"ns_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tService: pulumi.String(\"networksecurity.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCaPoolIamMember, err := certificateauthority.NewCaPoolIamMember(ctx, \"default\", \u0026certificateauthority.CaPoolIamMemberArgs{\n\t\t\tCaPool: _default.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateManager\"),\n\t\t\tMember: nsSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"test-fixtures/ca_cert.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile1, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"test-fixtures/ca_cert.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTrustConfig, err := certificatemanager.NewTrustConfig(ctx, \"default\", \u0026certificatemanager.TrustConfigArgs{\n\t\t\tName: pulumi.String(\"my-trust-config\"),\n\t\t\tDescription: pulumi.String(\"sample trust config description\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTrustStores: certificatemanager.TrustConfigTrustStoreArray{\n\t\t\t\t\u0026certificatemanager.TrustConfigTrustStoreArgs{\n\t\t\t\t\tTrustAnchors: certificatemanager.TrustConfigTrustStoreTrustAnchorArray{\n\t\t\t\t\t\t\u0026certificatemanager.TrustConfigTrustStoreTrustAnchorArgs{\n\t\t\t\t\t\t\tPemCertificate: pulumi.String(invokeFile.Result),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tIntermediateCas: certificatemanager.TrustConfigTrustStoreIntermediateCaArray{\n\t\t\t\t\t\t\u0026certificatemanager.TrustConfigTrustStoreIntermediateCaArgs{\n\t\t\t\t\t\t\tPemCertificate: pulumi.String(invokeFile1.Result),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networksecurity.NewTlsInspectionPolicy(ctx, \"default\", \u0026networksecurity.TlsInspectionPolicyArgs{\n\t\t\tName: pulumi.String(\"my-tls-inspection-policy\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tCaPool: _default.ID(),\n\t\t\tExcludePublicCaSet: pulumi.Bool(false),\n\t\t\tMinTlsVersion: pulumi.String(\"TLS_1_0\"),\n\t\t\tTrustConfig: defaultTrustConfig.ID(),\n\t\t\tTlsFeatureProfile: pulumi.String(\"PROFILE_CUSTOM\"),\n\t\t\tCustomTlsFeatures: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_3DES_EDE_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_128_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_128_GCM_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_256_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_256_GCM_SHA384\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultAuthority,\n\t\t\tdefaultCaPoolIamMember,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMember;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMemberArgs;\nimport com.pulumi.gcp.certificatemanager.TrustConfig;\nimport com.pulumi.gcp.certificatemanager.TrustConfigArgs;\nimport com.pulumi.gcp.certificatemanager.inputs.TrustConfigTrustStoreArgs;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicy;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new CaPool(\"default\", CaPoolArgs.builder()\n .name(\"my-basic-ca-pool\")\n .location(\"us-central1\")\n .tier(\"DEVOPS\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(false)\n .publishCrl(false)\n .build())\n .issuancePolicy(CaPoolIssuancePolicyArgs.builder()\n .maximumLifetime(\"1209600s\")\n .baselineValues(CaPoolIssuancePolicyBaselineValuesArgs.builder()\n .caOptions(CaPoolIssuancePolicyBaselineValuesCaOptionsArgs.builder()\n .isCa(false)\n .build())\n .keyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageArgs.builder()\n .baseKeyUsage()\n .extendedKeyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder()\n .pool(default_.name())\n .certificateAuthorityId(\"my-basic-certificate-authority\")\n .location(\"us-central1\")\n .lifetime(\"86400s\")\n .type(\"SELF_SIGNED\")\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"Test LLC\")\n .commonName(\"my-ca\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .build());\n\n var nsSa = new ServiceIdentity(\"nsSa\", ServiceIdentityArgs.builder()\n .service(\"networksecurity.googleapis.com\")\n .build());\n\n var defaultCaPoolIamMember = new CaPoolIamMember(\"defaultCaPoolIamMember\", CaPoolIamMemberArgs.builder()\n .caPool(default_.id())\n .role(\"roles/privateca.certificateManager\")\n .member(nsSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var defaultTrustConfig = new TrustConfig(\"defaultTrustConfig\", TrustConfigArgs.builder()\n .name(\"my-trust-config\")\n .description(\"sample trust config description\")\n .location(\"us-central1\")\n .trustStores(TrustConfigTrustStoreArgs.builder()\n .trustAnchors(TrustConfigTrustStoreTrustAnchorArgs.builder()\n .pemCertificate(StdFunctions.file(FileArgs.builder()\n .input(\"test-fixtures/ca_cert.pem\")\n .build()).result())\n .build())\n .intermediateCas(TrustConfigTrustStoreIntermediateCaArgs.builder()\n .pemCertificate(StdFunctions.file(FileArgs.builder()\n .input(\"test-fixtures/ca_cert.pem\")\n .build()).result())\n .build())\n .build())\n .build());\n\n var defaultTlsInspectionPolicy = new TlsInspectionPolicy(\"defaultTlsInspectionPolicy\", TlsInspectionPolicyArgs.builder()\n .name(\"my-tls-inspection-policy\")\n .location(\"us-central1\")\n .caPool(default_.id())\n .excludePublicCaSet(false)\n .minTlsVersion(\"TLS_1_0\")\n .trustConfig(defaultTrustConfig.id())\n .tlsFeatureProfile(\"PROFILE_CUSTOM\")\n .customTlsFeatures( \n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n defaultAuthority,\n defaultCaPoolIamMember)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:CaPool\n properties:\n name: my-basic-ca-pool\n location: us-central1\n tier: DEVOPS\n publishingOptions:\n publishCaCert: false\n publishCrl: false\n issuancePolicy:\n maximumLifetime: 1209600s\n baselineValues:\n caOptions:\n isCa: false\n keyUsage:\n baseKeyUsage: {}\n extendedKeyUsage:\n serverAuth: true\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n name: default\n properties:\n pool: ${default.name}\n certificateAuthorityId: my-basic-certificate-authority\n location: us-central1\n lifetime: 86400s\n type: SELF_SIGNED\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n config:\n subjectConfig:\n subject:\n organization: Test LLC\n commonName: my-ca\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n nsSa:\n type: gcp:projects:ServiceIdentity\n name: ns_sa\n properties:\n service: networksecurity.googleapis.com\n defaultCaPoolIamMember:\n type: gcp:certificateauthority:CaPoolIamMember\n name: default\n properties:\n caPool: ${default.id}\n role: roles/privateca.certificateManager\n member: serviceAccount:${nsSa.email}\n defaultTrustConfig:\n type: gcp:certificatemanager:TrustConfig\n name: default\n properties:\n name: my-trust-config\n description: sample trust config description\n location: us-central1\n trustStores:\n - trustAnchors:\n - pemCertificate:\n fn::invoke:\n Function: std:file\n Arguments:\n input: test-fixtures/ca_cert.pem\n Return: result\n intermediateCas:\n - pemCertificate:\n fn::invoke:\n Function: std:file\n Arguments:\n input: test-fixtures/ca_cert.pem\n Return: result\n defaultTlsInspectionPolicy:\n type: gcp:networksecurity:TlsInspectionPolicy\n name: default\n properties:\n name: my-tls-inspection-policy\n location: us-central1\n caPool: ${default.id}\n excludePublicCaSet: false\n minTlsVersion: TLS_1_0\n trustConfig: ${defaultTrustConfig.id}\n tlsFeatureProfile: PROFILE_CUSTOM\n customTlsFeatures:\n - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\n - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\n - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\n - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\n - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\n - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\n - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\n - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\n - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\n - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\n - TLS_RSA_WITH_3DES_EDE_CBC_SHA\n - TLS_RSA_WITH_AES_128_CBC_SHA\n - TLS_RSA_WITH_AES_128_GCM_SHA256\n - TLS_RSA_WITH_AES_256_CBC_SHA\n - TLS_RSA_WITH_AES_256_GCM_SHA384\n options:\n dependson:\n - ${defaultAuthority}\n - ${defaultCaPoolIamMember}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTlsInspectionPolicy can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/tlsInspectionPolicies/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, TlsInspectionPolicy can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy default projects/{{project}}/locations/{{location}}/tlsInspectionPolicies/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy default {{location}}/{{name}}\n```\n\n", + "description": "The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.\n\n\nTo get more information about TlsInspectionPolicy, see:\n\n* [API documentation](https://cloud.google.com/secure-web-proxy/docs/reference/network-security/rest/v1/projects.locations.tlsInspectionPolicies)\n* How-to Guides\n * [Use TlsInspectionPolicy](https://cloud.google.com/secure-web-proxy/docs/tls-inspection-overview)\n\n## Example Usage\n\n### Network Security Tls Inspection Policy Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.certificateauthority.CaPool(\"default\", {\n name: \"my-basic-ca-pool\",\n location: \"us-central1\",\n tier: \"DEVOPS\",\n publishingOptions: {\n publishCaCert: false,\n publishCrl: false,\n },\n issuancePolicy: {\n maximumLifetime: \"1209600s\",\n baselineValues: {\n caOptions: {\n isCa: false,\n },\n keyUsage: {\n baseKeyUsage: {},\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"default\", {\n pool: _default.name,\n certificateAuthorityId: \"my-basic-certificate-authority\",\n location: \"us-central1\",\n lifetime: \"86400s\",\n type: \"SELF_SIGNED\",\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"Test LLC\",\n commonName: \"my-ca\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n});\nconst project = gcp.organizations.getProject({});\nconst tlsInspectionPermission = new gcp.certificateauthority.CaPoolIamMember(\"tls_inspection_permission\", {\n caPool: _default.id,\n role: \"roles/privateca.certificateManager\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-networksecurity.iam.gserviceaccount.com`),\n});\nconst defaultTlsInspectionPolicy = new gcp.networksecurity.TlsInspectionPolicy(\"default\", {\n name: \"my-tls-inspection-policy\",\n location: \"us-central1\",\n caPool: _default.id,\n excludePublicCaSet: false,\n}, {\n dependsOn: [\n _default,\n defaultAuthority,\n tlsInspectionPermission,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.certificateauthority.CaPool(\"default\",\n name=\"my-basic-ca-pool\",\n location=\"us-central1\",\n tier=\"DEVOPS\",\n publishing_options={\n \"publish_ca_cert\": False,\n \"publish_crl\": False,\n },\n issuance_policy={\n \"maximum_lifetime\": \"1209600s\",\n \"baseline_values\": {\n \"ca_options\": {\n \"is_ca\": False,\n },\n \"key_usage\": {\n \"base_key_usage\": {},\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n })\ndefault_authority = gcp.certificateauthority.Authority(\"default\",\n pool=default.name,\n certificate_authority_id=\"my-basic-certificate-authority\",\n location=\"us-central1\",\n lifetime=\"86400s\",\n type=\"SELF_SIGNED\",\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"Test LLC\",\n \"common_name\": \"my-ca\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n })\nproject = gcp.organizations.get_project()\ntls_inspection_permission = gcp.certificateauthority.CaPoolIamMember(\"tls_inspection_permission\",\n ca_pool=default.id,\n role=\"roles/privateca.certificateManager\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-networksecurity.iam.gserviceaccount.com\")\ndefault_tls_inspection_policy = gcp.networksecurity.TlsInspectionPolicy(\"default\",\n name=\"my-tls-inspection-policy\",\n location=\"us-central1\",\n ca_pool=default.id,\n exclude_public_ca_set=False,\n opts = pulumi.ResourceOptions(depends_on=[\n default,\n default_authority,\n tls_inspection_permission,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.CaPool(\"default\", new()\n {\n Name = \"my-basic-ca-pool\",\n Location = \"us-central1\",\n Tier = \"DEVOPS\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = false,\n PublishCrl = false,\n },\n IssuancePolicy = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyArgs\n {\n MaximumLifetime = \"1209600s\",\n BaselineValues = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs\n {\n IsCa = false,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs\n {\n BaseKeyUsage = null,\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = @default.Name,\n CertificateAuthorityId = \"my-basic-certificate-authority\",\n Location = \"us-central1\",\n Lifetime = \"86400s\",\n Type = \"SELF_SIGNED\",\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"Test LLC\",\n CommonName = \"my-ca\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var tlsInspectionPermission = new Gcp.CertificateAuthority.CaPoolIamMember(\"tls_inspection_permission\", new()\n {\n CaPool = @default.Id,\n Role = \"roles/privateca.certificateManager\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-networksecurity.iam.gserviceaccount.com\",\n });\n\n var defaultTlsInspectionPolicy = new Gcp.NetworkSecurity.TlsInspectionPolicy(\"default\", new()\n {\n Name = \"my-tls-inspection-policy\",\n Location = \"us-central1\",\n CaPool = @default.Id,\n ExcludePublicCaSet = false,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n @default,\n defaultAuthority,\n tlsInspectionPermission,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networksecurity\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewCaPool(ctx, \"default\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"my-basic-ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"DEVOPS\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(false),\n\t\t\t\tPublishCrl: pulumi.Bool(false),\n\t\t\t},\n\t\t\tIssuancePolicy: \u0026certificateauthority.CaPoolIssuancePolicyArgs{\n\t\t\t\tMaximumLifetime: pulumi.String(\"1209600s\"),\n\t\t\t\tBaselineValues: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: nil,\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: _default.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-basic-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tType: pulumi.String(\"SELF_SIGNED\"),\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"Test LLC\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-ca\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttlsInspectionPermission, err := certificateauthority.NewCaPoolIamMember(ctx, \"tls_inspection_permission\", \u0026certificateauthority.CaPoolIamMemberArgs{\n\t\t\tCaPool: _default.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateManager\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-networksecurity.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networksecurity.NewTlsInspectionPolicy(ctx, \"default\", \u0026networksecurity.TlsInspectionPolicyArgs{\n\t\t\tName: pulumi.String(\"my-tls-inspection-policy\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tCaPool: _default.ID(),\n\t\t\tExcludePublicCaSet: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\t_default,\n\t\t\tdefaultAuthority,\n\t\t\ttlsInspectionPermission,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMember;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMemberArgs;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicy;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new CaPool(\"default\", CaPoolArgs.builder()\n .name(\"my-basic-ca-pool\")\n .location(\"us-central1\")\n .tier(\"DEVOPS\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(false)\n .publishCrl(false)\n .build())\n .issuancePolicy(CaPoolIssuancePolicyArgs.builder()\n .maximumLifetime(\"1209600s\")\n .baselineValues(CaPoolIssuancePolicyBaselineValuesArgs.builder()\n .caOptions(CaPoolIssuancePolicyBaselineValuesCaOptionsArgs.builder()\n .isCa(false)\n .build())\n .keyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageArgs.builder()\n .baseKeyUsage()\n .extendedKeyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder()\n .pool(default_.name())\n .certificateAuthorityId(\"my-basic-certificate-authority\")\n .location(\"us-central1\")\n .lifetime(\"86400s\")\n .type(\"SELF_SIGNED\")\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"Test LLC\")\n .commonName(\"my-ca\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var tlsInspectionPermission = new CaPoolIamMember(\"tlsInspectionPermission\", CaPoolIamMemberArgs.builder()\n .caPool(default_.id())\n .role(\"roles/privateca.certificateManager\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-networksecurity.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var defaultTlsInspectionPolicy = new TlsInspectionPolicy(\"defaultTlsInspectionPolicy\", TlsInspectionPolicyArgs.builder()\n .name(\"my-tls-inspection-policy\")\n .location(\"us-central1\")\n .caPool(default_.id())\n .excludePublicCaSet(false)\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n default_,\n defaultAuthority,\n tlsInspectionPermission)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:CaPool\n properties:\n name: my-basic-ca-pool\n location: us-central1\n tier: DEVOPS\n publishingOptions:\n publishCaCert: false\n publishCrl: false\n issuancePolicy:\n maximumLifetime: 1209600s\n baselineValues:\n caOptions:\n isCa: false\n keyUsage:\n baseKeyUsage: {}\n extendedKeyUsage:\n serverAuth: true\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n name: default\n properties:\n pool: ${default.name}\n certificateAuthorityId: my-basic-certificate-authority\n location: us-central1\n lifetime: 86400s\n type: SELF_SIGNED\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n config:\n subjectConfig:\n subject:\n organization: Test LLC\n commonName: my-ca\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n tlsInspectionPermission:\n type: gcp:certificateauthority:CaPoolIamMember\n name: tls_inspection_permission\n properties:\n caPool: ${default.id}\n role: roles/privateca.certificateManager\n member: serviceAccount:service-${project.number}@gcp-sa-networksecurity.iam.gserviceaccount.com\n defaultTlsInspectionPolicy:\n type: gcp:networksecurity:TlsInspectionPolicy\n name: default\n properties:\n name: my-tls-inspection-policy\n location: us-central1\n caPool: ${default.id}\n excludePublicCaSet: false\n options:\n dependson:\n - ${default}\n - ${defaultAuthority}\n - ${tlsInspectionPermission}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Network Security Tls Inspection Policy Custom\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as std from \"@pulumi/std\";\n\nconst _default = new gcp.certificateauthority.CaPool(\"default\", {\n name: \"my-basic-ca-pool\",\n location: \"us-central1\",\n tier: \"DEVOPS\",\n publishingOptions: {\n publishCaCert: false,\n publishCrl: false,\n },\n issuancePolicy: {\n maximumLifetime: \"1209600s\",\n baselineValues: {\n caOptions: {\n isCa: false,\n },\n keyUsage: {\n baseKeyUsage: {},\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n});\nconst defaultAuthority = new gcp.certificateauthority.Authority(\"default\", {\n pool: _default.name,\n certificateAuthorityId: \"my-basic-certificate-authority\",\n location: \"us-central1\",\n lifetime: \"86400s\",\n type: \"SELF_SIGNED\",\n deletionProtection: false,\n skipGracePeriod: true,\n ignoreActiveCertificatesOnDeletion: true,\n config: {\n subjectConfig: {\n subject: {\n organization: \"Test LLC\",\n commonName: \"my-ca\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: false,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n});\nconst nsSa = new gcp.projects.ServiceIdentity(\"ns_sa\", {service: \"networksecurity.googleapis.com\"});\nconst defaultCaPoolIamMember = new gcp.certificateauthority.CaPoolIamMember(\"default\", {\n caPool: _default.id,\n role: \"roles/privateca.certificateManager\",\n member: nsSa.member,\n});\nconst defaultTrustConfig = new gcp.certificatemanager.TrustConfig(\"default\", {\n name: \"my-trust-config\",\n description: \"sample trust config description\",\n location: \"us-central1\",\n trustStores: [{\n trustAnchors: [{\n pemCertificate: std.file({\n input: \"test-fixtures/ca_cert.pem\",\n }).then(invoke =\u003e invoke.result),\n }],\n intermediateCas: [{\n pemCertificate: std.file({\n input: \"test-fixtures/ca_cert.pem\",\n }).then(invoke =\u003e invoke.result),\n }],\n }],\n});\nconst defaultTlsInspectionPolicy = new gcp.networksecurity.TlsInspectionPolicy(\"default\", {\n name: \"my-tls-inspection-policy\",\n location: \"us-central1\",\n caPool: _default.id,\n excludePublicCaSet: false,\n minTlsVersion: \"TLS_1_0\",\n trustConfig: defaultTrustConfig.id,\n tlsFeatureProfile: \"PROFILE_CUSTOM\",\n customTlsFeatures: [\n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n ],\n}, {\n dependsOn: [\n defaultAuthority,\n defaultCaPoolIamMember,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_std as std\n\ndefault = gcp.certificateauthority.CaPool(\"default\",\n name=\"my-basic-ca-pool\",\n location=\"us-central1\",\n tier=\"DEVOPS\",\n publishing_options={\n \"publish_ca_cert\": False,\n \"publish_crl\": False,\n },\n issuance_policy={\n \"maximum_lifetime\": \"1209600s\",\n \"baseline_values\": {\n \"ca_options\": {\n \"is_ca\": False,\n },\n \"key_usage\": {\n \"base_key_usage\": {},\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n })\ndefault_authority = gcp.certificateauthority.Authority(\"default\",\n pool=default.name,\n certificate_authority_id=\"my-basic-certificate-authority\",\n location=\"us-central1\",\n lifetime=\"86400s\",\n type=\"SELF_SIGNED\",\n deletion_protection=False,\n skip_grace_period=True,\n ignore_active_certificates_on_deletion=True,\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"Test LLC\",\n \"common_name\": \"my-ca\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": False,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n })\nns_sa = gcp.projects.ServiceIdentity(\"ns_sa\", service=\"networksecurity.googleapis.com\")\ndefault_ca_pool_iam_member = gcp.certificateauthority.CaPoolIamMember(\"default\",\n ca_pool=default.id,\n role=\"roles/privateca.certificateManager\",\n member=ns_sa.member)\ndefault_trust_config = gcp.certificatemanager.TrustConfig(\"default\",\n name=\"my-trust-config\",\n description=\"sample trust config description\",\n location=\"us-central1\",\n trust_stores=[{\n \"trust_anchors\": [{\n \"pem_certificate\": std.file(input=\"test-fixtures/ca_cert.pem\").result,\n }],\n \"intermediate_cas\": [{\n \"pem_certificate\": std.file(input=\"test-fixtures/ca_cert.pem\").result,\n }],\n }])\ndefault_tls_inspection_policy = gcp.networksecurity.TlsInspectionPolicy(\"default\",\n name=\"my-tls-inspection-policy\",\n location=\"us-central1\",\n ca_pool=default.id,\n exclude_public_ca_set=False,\n min_tls_version=\"TLS_1_0\",\n trust_config=default_trust_config.id,\n tls_feature_profile=\"PROFILE_CUSTOM\",\n custom_tls_features=[\n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n ],\n opts = pulumi.ResourceOptions(depends_on=[\n default_authority,\n default_ca_pool_iam_member,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.CertificateAuthority.CaPool(\"default\", new()\n {\n Name = \"my-basic-ca-pool\",\n Location = \"us-central1\",\n Tier = \"DEVOPS\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = false,\n PublishCrl = false,\n },\n IssuancePolicy = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyArgs\n {\n MaximumLifetime = \"1209600s\",\n BaselineValues = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs\n {\n IsCa = false,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs\n {\n BaseKeyUsage = null,\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n });\n\n var defaultAuthority = new Gcp.CertificateAuthority.Authority(\"default\", new()\n {\n Pool = @default.Name,\n CertificateAuthorityId = \"my-basic-certificate-authority\",\n Location = \"us-central1\",\n Lifetime = \"86400s\",\n Type = \"SELF_SIGNED\",\n DeletionProtection = false,\n SkipGracePeriod = true,\n IgnoreActiveCertificatesOnDeletion = true,\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"Test LLC\",\n CommonName = \"my-ca\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = false,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n });\n\n var nsSa = new Gcp.Projects.ServiceIdentity(\"ns_sa\", new()\n {\n Service = \"networksecurity.googleapis.com\",\n });\n\n var defaultCaPoolIamMember = new Gcp.CertificateAuthority.CaPoolIamMember(\"default\", new()\n {\n CaPool = @default.Id,\n Role = \"roles/privateca.certificateManager\",\n Member = nsSa.Member,\n });\n\n var defaultTrustConfig = new Gcp.CertificateManager.TrustConfig(\"default\", new()\n {\n Name = \"my-trust-config\",\n Description = \"sample trust config description\",\n Location = \"us-central1\",\n TrustStores = new[]\n {\n new Gcp.CertificateManager.Inputs.TrustConfigTrustStoreArgs\n {\n TrustAnchors = new[]\n {\n new Gcp.CertificateManager.Inputs.TrustConfigTrustStoreTrustAnchorArgs\n {\n PemCertificate = Std.File.Invoke(new()\n {\n Input = \"test-fixtures/ca_cert.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n },\n IntermediateCas = new[]\n {\n new Gcp.CertificateManager.Inputs.TrustConfigTrustStoreIntermediateCaArgs\n {\n PemCertificate = Std.File.Invoke(new()\n {\n Input = \"test-fixtures/ca_cert.pem\",\n }).Apply(invoke =\u003e invoke.Result),\n },\n },\n },\n },\n });\n\n var defaultTlsInspectionPolicy = new Gcp.NetworkSecurity.TlsInspectionPolicy(\"default\", new()\n {\n Name = \"my-tls-inspection-policy\",\n Location = \"us-central1\",\n CaPool = @default.Id,\n ExcludePublicCaSet = false,\n MinTlsVersion = \"TLS_1_0\",\n TrustConfig = defaultTrustConfig.Id,\n TlsFeatureProfile = \"PROFILE_CUSTOM\",\n CustomTlsFeatures = new[]\n {\n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n defaultAuthority,\n defaultCaPoolIamMember,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificatemanager\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networksecurity\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := certificateauthority.NewCaPool(ctx, \"default\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"my-basic-ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"DEVOPS\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(false),\n\t\t\t\tPublishCrl: pulumi.Bool(false),\n\t\t\t},\n\t\t\tIssuancePolicy: \u0026certificateauthority.CaPoolIssuancePolicyArgs{\n\t\t\t\tMaximumLifetime: pulumi.String(\"1209600s\"),\n\t\t\t\tBaselineValues: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: nil,\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultAuthority, err := certificateauthority.NewAuthority(ctx, \"default\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: _default.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"my-basic-certificate-authority\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tLifetime: pulumi.String(\"86400s\"),\n\t\t\tType: pulumi.String(\"SELF_SIGNED\"),\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"Test LLC\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-ca\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(false),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tnsSa, err := projects.NewServiceIdentity(ctx, \"ns_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tService: pulumi.String(\"networksecurity.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultCaPoolIamMember, err := certificateauthority.NewCaPoolIamMember(ctx, \"default\", \u0026certificateauthority.CaPoolIamMemberArgs{\n\t\t\tCaPool: _default.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateManager\"),\n\t\t\tMember: nsSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"test-fixtures/ca_cert.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFile1, err := std.File(ctx, \u0026std.FileArgs{\n\t\t\tInput: \"test-fixtures/ca_cert.pem\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultTrustConfig, err := certificatemanager.NewTrustConfig(ctx, \"default\", \u0026certificatemanager.TrustConfigArgs{\n\t\t\tName: pulumi.String(\"my-trust-config\"),\n\t\t\tDescription: pulumi.String(\"sample trust config description\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTrustStores: certificatemanager.TrustConfigTrustStoreArray{\n\t\t\t\t\u0026certificatemanager.TrustConfigTrustStoreArgs{\n\t\t\t\t\tTrustAnchors: certificatemanager.TrustConfigTrustStoreTrustAnchorArray{\n\t\t\t\t\t\t\u0026certificatemanager.TrustConfigTrustStoreTrustAnchorArgs{\n\t\t\t\t\t\t\tPemCertificate: pulumi.String(invokeFile.Result),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tIntermediateCas: certificatemanager.TrustConfigTrustStoreIntermediateCaArray{\n\t\t\t\t\t\t\u0026certificatemanager.TrustConfigTrustStoreIntermediateCaArgs{\n\t\t\t\t\t\t\tPemCertificate: pulumi.String(invokeFile1.Result),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = networksecurity.NewTlsInspectionPolicy(ctx, \"default\", \u0026networksecurity.TlsInspectionPolicyArgs{\n\t\t\tName: pulumi.String(\"my-tls-inspection-policy\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tCaPool: _default.ID(),\n\t\t\tExcludePublicCaSet: pulumi.Bool(false),\n\t\t\tMinTlsVersion: pulumi.String(\"TLS_1_0\"),\n\t\t\tTrustConfig: defaultTrustConfig.ID(),\n\t\t\tTlsFeatureProfile: pulumi.String(\"PROFILE_CUSTOM\"),\n\t\t\tCustomTlsFeatures: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\"),\n\t\t\t\tpulumi.String(\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_3DES_EDE_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_128_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_128_GCM_SHA256\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_256_CBC_SHA\"),\n\t\t\t\tpulumi.String(\"TLS_RSA_WITH_AES_256_GCM_SHA384\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultAuthority,\n\t\t\tdefaultCaPoolIamMember,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMember;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamMemberArgs;\nimport com.pulumi.gcp.certificatemanager.TrustConfig;\nimport com.pulumi.gcp.certificatemanager.TrustConfigArgs;\nimport com.pulumi.gcp.certificatemanager.inputs.TrustConfigTrustStoreArgs;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicy;\nimport com.pulumi.gcp.networksecurity.TlsInspectionPolicyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new CaPool(\"default\", CaPoolArgs.builder()\n .name(\"my-basic-ca-pool\")\n .location(\"us-central1\")\n .tier(\"DEVOPS\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(false)\n .publishCrl(false)\n .build())\n .issuancePolicy(CaPoolIssuancePolicyArgs.builder()\n .maximumLifetime(\"1209600s\")\n .baselineValues(CaPoolIssuancePolicyBaselineValuesArgs.builder()\n .caOptions(CaPoolIssuancePolicyBaselineValuesCaOptionsArgs.builder()\n .isCa(false)\n .build())\n .keyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageArgs.builder()\n .baseKeyUsage()\n .extendedKeyUsage(CaPoolIssuancePolicyBaselineValuesKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .build());\n\n var defaultAuthority = new Authority(\"defaultAuthority\", AuthorityArgs.builder()\n .pool(default_.name())\n .certificateAuthorityId(\"my-basic-certificate-authority\")\n .location(\"us-central1\")\n .lifetime(\"86400s\")\n .type(\"SELF_SIGNED\")\n .deletionProtection(false)\n .skipGracePeriod(true)\n .ignoreActiveCertificatesOnDeletion(true)\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"Test LLC\")\n .commonName(\"my-ca\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(false)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .build());\n\n var nsSa = new ServiceIdentity(\"nsSa\", ServiceIdentityArgs.builder()\n .service(\"networksecurity.googleapis.com\")\n .build());\n\n var defaultCaPoolIamMember = new CaPoolIamMember(\"defaultCaPoolIamMember\", CaPoolIamMemberArgs.builder()\n .caPool(default_.id())\n .role(\"roles/privateca.certificateManager\")\n .member(nsSa.member())\n .build());\n\n var defaultTrustConfig = new TrustConfig(\"defaultTrustConfig\", TrustConfigArgs.builder()\n .name(\"my-trust-config\")\n .description(\"sample trust config description\")\n .location(\"us-central1\")\n .trustStores(TrustConfigTrustStoreArgs.builder()\n .trustAnchors(TrustConfigTrustStoreTrustAnchorArgs.builder()\n .pemCertificate(StdFunctions.file(FileArgs.builder()\n .input(\"test-fixtures/ca_cert.pem\")\n .build()).result())\n .build())\n .intermediateCas(TrustConfigTrustStoreIntermediateCaArgs.builder()\n .pemCertificate(StdFunctions.file(FileArgs.builder()\n .input(\"test-fixtures/ca_cert.pem\")\n .build()).result())\n .build())\n .build())\n .build());\n\n var defaultTlsInspectionPolicy = new TlsInspectionPolicy(\"defaultTlsInspectionPolicy\", TlsInspectionPolicyArgs.builder()\n .name(\"my-tls-inspection-policy\")\n .location(\"us-central1\")\n .caPool(default_.id())\n .excludePublicCaSet(false)\n .minTlsVersion(\"TLS_1_0\")\n .trustConfig(defaultTrustConfig.id())\n .tlsFeatureProfile(\"PROFILE_CUSTOM\")\n .customTlsFeatures( \n \"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\",\n \"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\",\n \"TLS_RSA_WITH_3DES_EDE_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_CBC_SHA\",\n \"TLS_RSA_WITH_AES_128_GCM_SHA256\",\n \"TLS_RSA_WITH_AES_256_CBC_SHA\",\n \"TLS_RSA_WITH_AES_256_GCM_SHA384\")\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n defaultAuthority,\n defaultCaPoolIamMember)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:certificateauthority:CaPool\n properties:\n name: my-basic-ca-pool\n location: us-central1\n tier: DEVOPS\n publishingOptions:\n publishCaCert: false\n publishCrl: false\n issuancePolicy:\n maximumLifetime: 1209600s\n baselineValues:\n caOptions:\n isCa: false\n keyUsage:\n baseKeyUsage: {}\n extendedKeyUsage:\n serverAuth: true\n defaultAuthority:\n type: gcp:certificateauthority:Authority\n name: default\n properties:\n pool: ${default.name}\n certificateAuthorityId: my-basic-certificate-authority\n location: us-central1\n lifetime: 86400s\n type: SELF_SIGNED\n deletionProtection: false\n skipGracePeriod: true\n ignoreActiveCertificatesOnDeletion: true\n config:\n subjectConfig:\n subject:\n organization: Test LLC\n commonName: my-ca\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: false\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n nsSa:\n type: gcp:projects:ServiceIdentity\n name: ns_sa\n properties:\n service: networksecurity.googleapis.com\n defaultCaPoolIamMember:\n type: gcp:certificateauthority:CaPoolIamMember\n name: default\n properties:\n caPool: ${default.id}\n role: roles/privateca.certificateManager\n member: ${nsSa.member}\n defaultTrustConfig:\n type: gcp:certificatemanager:TrustConfig\n name: default\n properties:\n name: my-trust-config\n description: sample trust config description\n location: us-central1\n trustStores:\n - trustAnchors:\n - pemCertificate:\n fn::invoke:\n Function: std:file\n Arguments:\n input: test-fixtures/ca_cert.pem\n Return: result\n intermediateCas:\n - pemCertificate:\n fn::invoke:\n Function: std:file\n Arguments:\n input: test-fixtures/ca_cert.pem\n Return: result\n defaultTlsInspectionPolicy:\n type: gcp:networksecurity:TlsInspectionPolicy\n name: default\n properties:\n name: my-tls-inspection-policy\n location: us-central1\n caPool: ${default.id}\n excludePublicCaSet: false\n minTlsVersion: TLS_1_0\n trustConfig: ${defaultTrustConfig.id}\n tlsFeatureProfile: PROFILE_CUSTOM\n customTlsFeatures:\n - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\n - TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\n - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\n - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\n - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\n - TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\n - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\n - TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\n - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\n - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\n - TLS_RSA_WITH_3DES_EDE_CBC_SHA\n - TLS_RSA_WITH_AES_128_CBC_SHA\n - TLS_RSA_WITH_AES_128_GCM_SHA256\n - TLS_RSA_WITH_AES_256_CBC_SHA\n - TLS_RSA_WITH_AES_256_GCM_SHA384\n options:\n dependson:\n - ${defaultAuthority}\n - ${defaultCaPoolIamMember}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTlsInspectionPolicy can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/tlsInspectionPolicies/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, TlsInspectionPolicy can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy default projects/{{project}}/locations/{{location}}/tlsInspectionPolicies/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy default {{location}}/{{name}}\n```\n\n", "properties": { "caPool": { "type": "string", @@ -225658,7 +227256,7 @@ } }, "gcp:orgpolicy/policy:Policy": { - "description": "Defines an organization policy which is used to specify constraints for configurations of Google Cloud resources.\n\n\nTo get more information about Policy, see:\n\n* [API documentation](https://cloud.google.com/resource-manager/docs/reference/orgpolicy/rest/v2/organizations.policies)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/resource-manager/docs/organization-policy/creating-managing-custom-constraints)\n * [Supported Services](https://cloud.google.com/resource-manager/docs/organization-policy/custom-constraint-supported-services)\n\n## Example Usage\n\n### Org Policy Policy Enforce\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.organizations.Project(\"basic\", {\n projectId: \"id\",\n name: \"id\",\n orgId: \"123456789\",\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`projects/${basic.name}/policies/iam.disableServiceAccountKeyUpload`,\n parent: pulumi.interpolate`projects/${basic.name}`,\n spec: {\n rules: [{\n enforce: \"FALSE\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.organizations.Project(\"basic\",\n project_id=\"id\",\n name=\"id\",\n org_id=\"123456789\")\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=basic.name.apply(lambda name: f\"projects/{name}/policies/iam.disableServiceAccountKeyUpload\"),\n parent=basic.name.apply(lambda name: f\"projects/{name}\"),\n spec={\n \"rules\": [{\n \"enforce\": \"FALSE\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Organizations.Project(\"basic\", new()\n {\n ProjectId = \"id\",\n Name = \"id\",\n OrgId = \"123456789\",\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = basic.Name.Apply(name =\u003e $\"projects/{name}/policies/iam.disableServiceAccountKeyUpload\"),\n Parent = basic.Name.Apply(name =\u003e $\"projects/{name}\"),\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n Enforce = \"FALSE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := organizations.NewProject(ctx, \"basic\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"id\"),\n\t\t\tName: pulumi.String(\"id\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/policies/iam.disableServiceAccountKeyUpload\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tEnforce: pulumi.String(\"FALSE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new Project(\"basic\", ProjectArgs.builder()\n .projectId(\"id\")\n .name(\"id\")\n .orgId(\"123456789\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(basic.name().applyValue(name -\u003e String.format(\"projects/%s/policies/iam.disableServiceAccountKeyUpload\", name)))\n .parent(basic.name().applyValue(name -\u003e String.format(\"projects/%s\", name)))\n .spec(PolicySpecArgs.builder()\n .rules(PolicySpecRuleArgs.builder()\n .enforce(\"FALSE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: projects/${basic.name}/policies/iam.disableServiceAccountKeyUpload\n parent: projects/${basic.name}\n spec:\n rules:\n - enforce: FALSE\n basic:\n type: gcp:organizations:Project\n properties:\n projectId: id\n name: id\n orgId: '123456789'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Folder\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.organizations.Folder(\"basic\", {\n parent: \"organizations/123456789\",\n displayName: \"folder\",\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`${basic.name}/policies/gcp.resourceLocations`,\n parent: basic.name,\n spec: {\n inheritFromParent: true,\n rules: [{\n denyAll: \"TRUE\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.organizations.Folder(\"basic\",\n parent=\"organizations/123456789\",\n display_name=\"folder\")\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=basic.name.apply(lambda name: f\"{name}/policies/gcp.resourceLocations\"),\n parent=basic.name,\n spec={\n \"inherit_from_parent\": True,\n \"rules\": [{\n \"deny_all\": \"TRUE\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Organizations.Folder(\"basic\", new()\n {\n Parent = \"organizations/123456789\",\n DisplayName = \"folder\",\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = basic.Name.Apply(name =\u003e $\"{name}/policies/gcp.resourceLocations\"),\n Parent = basic.Name,\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n InheritFromParent = true,\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n DenyAll = \"TRUE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := organizations.NewFolder(ctx, \"basic\", \u0026organizations.FolderArgs{\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tDisplayName: pulumi.String(\"folder\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/policies/gcp.resourceLocations\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: basic.Name,\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tInheritFromParent: pulumi.Bool(true),\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tDenyAll: pulumi.String(\"TRUE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.Folder;\nimport com.pulumi.gcp.organizations.FolderArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new Folder(\"basic\", FolderArgs.builder()\n .parent(\"organizations/123456789\")\n .displayName(\"folder\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(basic.name().applyValue(name -\u003e String.format(\"%s/policies/gcp.resourceLocations\", name)))\n .parent(basic.name())\n .spec(PolicySpecArgs.builder()\n .inheritFromParent(true)\n .rules(PolicySpecRuleArgs.builder()\n .denyAll(\"TRUE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: ${basic.name}/policies/gcp.resourceLocations\n parent: ${basic.name}\n spec:\n inheritFromParent: true\n rules:\n - denyAll: TRUE\n basic:\n type: gcp:organizations:Folder\n properties:\n parent: organizations/123456789\n displayName: folder\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Organization\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: \"organizations/123456789/policies/gcp.detailedAuditLoggingMode\",\n parent: \"organizations/123456789\",\n spec: {\n reset: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=\"organizations/123456789/policies/gcp.detailedAuditLoggingMode\",\n parent=\"organizations/123456789\",\n spec={\n \"reset\": True,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = \"organizations/123456789/policies/gcp.detailedAuditLoggingMode\",\n Parent = \"organizations/123456789\",\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Reset = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: pulumi.String(\"organizations/123456789/policies/gcp.detailedAuditLoggingMode\"),\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tReset: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(\"organizations/123456789/policies/gcp.detailedAuditLoggingMode\")\n .parent(\"organizations/123456789\")\n .spec(PolicySpecArgs.builder()\n .reset(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: organizations/123456789/policies/gcp.detailedAuditLoggingMode\n parent: organizations/123456789\n spec:\n reset: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Project\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.organizations.Project(\"basic\", {\n projectId: \"id\",\n name: \"id\",\n orgId: \"123456789\",\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`projects/${basic.name}/policies/gcp.resourceLocations`,\n parent: pulumi.interpolate`projects/${basic.name}`,\n spec: {\n rules: [\n {\n condition: {\n description: \"A sample condition for the policy\",\n expression: \"resource.matchLabels('labelKeys/123', 'labelValues/345')\",\n location: \"sample-location.log\",\n title: \"sample-condition\",\n },\n values: {\n allowedValues: [\"projects/allowed-project\"],\n deniedValues: [\"projects/denied-project\"],\n },\n },\n {\n allowAll: \"TRUE\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.organizations.Project(\"basic\",\n project_id=\"id\",\n name=\"id\",\n org_id=\"123456789\")\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=basic.name.apply(lambda name: f\"projects/{name}/policies/gcp.resourceLocations\"),\n parent=basic.name.apply(lambda name: f\"projects/{name}\"),\n spec={\n \"rules\": [\n {\n \"condition\": {\n \"description\": \"A sample condition for the policy\",\n \"expression\": \"resource.matchLabels('labelKeys/123', 'labelValues/345')\",\n \"location\": \"sample-location.log\",\n \"title\": \"sample-condition\",\n },\n \"values\": {\n \"allowed_values\": [\"projects/allowed-project\"],\n \"denied_values\": [\"projects/denied-project\"],\n },\n },\n {\n \"allow_all\": \"TRUE\",\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Organizations.Project(\"basic\", new()\n {\n ProjectId = \"id\",\n Name = \"id\",\n OrgId = \"123456789\",\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = basic.Name.Apply(name =\u003e $\"projects/{name}/policies/gcp.resourceLocations\"),\n Parent = basic.Name.Apply(name =\u003e $\"projects/{name}\"),\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n Condition = new Gcp.OrgPolicy.Inputs.PolicySpecRuleConditionArgs\n {\n Description = \"A sample condition for the policy\",\n Expression = \"resource.matchLabels('labelKeys/123', 'labelValues/345')\",\n Location = \"sample-location.log\",\n Title = \"sample-condition\",\n },\n Values = new Gcp.OrgPolicy.Inputs.PolicySpecRuleValuesArgs\n {\n AllowedValues = new[]\n {\n \"projects/allowed-project\",\n },\n DeniedValues = new[]\n {\n \"projects/denied-project\",\n },\n },\n },\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n AllowAll = \"TRUE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := organizations.NewProject(ctx, \"basic\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"id\"),\n\t\t\tName: pulumi.String(\"id\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/policies/gcp.resourceLocations\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tCondition: \u0026orgpolicy.PolicySpecRuleConditionArgs{\n\t\t\t\t\t\t\tDescription: pulumi.String(\"A sample condition for the policy\"),\n\t\t\t\t\t\t\tExpression: pulumi.String(\"resource.matchLabels('labelKeys/123', 'labelValues/345')\"),\n\t\t\t\t\t\t\tLocation: pulumi.String(\"sample-location.log\"),\n\t\t\t\t\t\t\tTitle: pulumi.String(\"sample-condition\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tValues: \u0026orgpolicy.PolicySpecRuleValuesArgs{\n\t\t\t\t\t\t\tAllowedValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"projects/allowed-project\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tDeniedValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"projects/denied-project\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tAllowAll: pulumi.String(\"TRUE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new Project(\"basic\", ProjectArgs.builder()\n .projectId(\"id\")\n .name(\"id\")\n .orgId(\"123456789\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(basic.name().applyValue(name -\u003e String.format(\"projects/%s/policies/gcp.resourceLocations\", name)))\n .parent(basic.name().applyValue(name -\u003e String.format(\"projects/%s\", name)))\n .spec(PolicySpecArgs.builder()\n .rules( \n PolicySpecRuleArgs.builder()\n .condition(PolicySpecRuleConditionArgs.builder()\n .description(\"A sample condition for the policy\")\n .expression(\"resource.matchLabels('labelKeys/123', 'labelValues/345')\")\n .location(\"sample-location.log\")\n .title(\"sample-condition\")\n .build())\n .values(PolicySpecRuleValuesArgs.builder()\n .allowedValues(\"projects/allowed-project\")\n .deniedValues(\"projects/denied-project\")\n .build())\n .build(),\n PolicySpecRuleArgs.builder()\n .allowAll(\"TRUE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: projects/${basic.name}/policies/gcp.resourceLocations\n parent: projects/${basic.name}\n spec:\n rules:\n - condition:\n description: A sample condition for the policy\n expression: resource.matchLabels('labelKeys/123', 'labelValues/345')\n location: sample-location.log\n title: sample-condition\n values:\n allowedValues:\n - projects/allowed-project\n deniedValues:\n - projects/denied-project\n - allowAll: TRUE\n basic:\n type: gcp:organizations:Project\n properties:\n projectId: id\n name: id\n orgId: '123456789'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Dry Run Spec\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst constraint = new gcp.orgpolicy.CustomConstraint(\"constraint\", {\n name: \"custom.disableGkeAutoUpgrade_40785\",\n parent: \"organizations/123456789\",\n displayName: \"Disable GKE auto upgrade\",\n description: \"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\",\n actionType: \"ALLOW\",\n condition: \"resource.management.autoUpgrade == false\",\n methodTypes: [\"CREATE\"],\n resourceTypes: [\"container.googleapis.com/NodePool\"],\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`organizations/123456789/policies/${constraint.name}`,\n parent: \"organizations/123456789\",\n spec: {\n rules: [{\n enforce: \"FALSE\",\n }],\n },\n dryRunSpec: {\n inheritFromParent: false,\n reset: false,\n rules: [{\n enforce: \"FALSE\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nconstraint = gcp.orgpolicy.CustomConstraint(\"constraint\",\n name=\"custom.disableGkeAutoUpgrade_40785\",\n parent=\"organizations/123456789\",\n display_name=\"Disable GKE auto upgrade\",\n description=\"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\",\n action_type=\"ALLOW\",\n condition=\"resource.management.autoUpgrade == false\",\n method_types=[\"CREATE\"],\n resource_types=[\"container.googleapis.com/NodePool\"])\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=constraint.name.apply(lambda name: f\"organizations/123456789/policies/{name}\"),\n parent=\"organizations/123456789\",\n spec={\n \"rules\": [{\n \"enforce\": \"FALSE\",\n }],\n },\n dry_run_spec={\n \"inherit_from_parent\": False,\n \"reset\": False,\n \"rules\": [{\n \"enforce\": \"FALSE\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var constraint = new Gcp.OrgPolicy.CustomConstraint(\"constraint\", new()\n {\n Name = \"custom.disableGkeAutoUpgrade_40785\",\n Parent = \"organizations/123456789\",\n DisplayName = \"Disable GKE auto upgrade\",\n Description = \"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\",\n ActionType = \"ALLOW\",\n Condition = \"resource.management.autoUpgrade == false\",\n MethodTypes = new[]\n {\n \"CREATE\",\n },\n ResourceTypes = new[]\n {\n \"container.googleapis.com/NodePool\",\n },\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = constraint.Name.Apply(name =\u003e $\"organizations/123456789/policies/{name}\"),\n Parent = \"organizations/123456789\",\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n Enforce = \"FALSE\",\n },\n },\n },\n DryRunSpec = new Gcp.OrgPolicy.Inputs.PolicyDryRunSpecArgs\n {\n InheritFromParent = false,\n Reset = false,\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicyDryRunSpecRuleArgs\n {\n Enforce = \"FALSE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tconstraint, err := orgpolicy.NewCustomConstraint(ctx, \"constraint\", \u0026orgpolicy.CustomConstraintArgs{\n\t\t\tName: pulumi.String(\"custom.disableGkeAutoUpgrade_40785\"),\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tDisplayName: pulumi.String(\"Disable GKE auto upgrade\"),\n\t\t\tDescription: pulumi.String(\"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\"),\n\t\t\tActionType: pulumi.String(\"ALLOW\"),\n\t\t\tCondition: pulumi.String(\"resource.management.autoUpgrade == false\"),\n\t\t\tMethodTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE\"),\n\t\t\t},\n\t\t\tResourceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"container.googleapis.com/NodePool\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: constraint.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"organizations/123456789/policies/%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tEnforce: pulumi.String(\"FALSE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDryRunSpec: \u0026orgpolicy.PolicyDryRunSpecArgs{\n\t\t\t\tInheritFromParent: pulumi.Bool(false),\n\t\t\t\tReset: pulumi.Bool(false),\n\t\t\t\tRules: orgpolicy.PolicyDryRunSpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicyDryRunSpecRuleArgs{\n\t\t\t\t\t\tEnforce: pulumi.String(\"FALSE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.orgpolicy.CustomConstraint;\nimport com.pulumi.gcp.orgpolicy.CustomConstraintArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicyDryRunSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var constraint = new CustomConstraint(\"constraint\", CustomConstraintArgs.builder()\n .name(\"custom.disableGkeAutoUpgrade_40785\")\n .parent(\"organizations/123456789\")\n .displayName(\"Disable GKE auto upgrade\")\n .description(\"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\")\n .actionType(\"ALLOW\")\n .condition(\"resource.management.autoUpgrade == false\")\n .methodTypes(\"CREATE\")\n .resourceTypes(\"container.googleapis.com/NodePool\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(constraint.name().applyValue(name -\u003e String.format(\"organizations/123456789/policies/%s\", name)))\n .parent(\"organizations/123456789\")\n .spec(PolicySpecArgs.builder()\n .rules(PolicySpecRuleArgs.builder()\n .enforce(\"FALSE\")\n .build())\n .build())\n .dryRunSpec(PolicyDryRunSpecArgs.builder()\n .inheritFromParent(false)\n .reset(false)\n .rules(PolicyDryRunSpecRuleArgs.builder()\n .enforce(\"FALSE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n constraint:\n type: gcp:orgpolicy:CustomConstraint\n properties:\n name: custom.disableGkeAutoUpgrade_40785\n parent: organizations/123456789\n displayName: Disable GKE auto upgrade\n description: Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\n actionType: ALLOW\n condition: resource.management.autoUpgrade == false\n methodTypes:\n - CREATE\n resourceTypes:\n - container.googleapis.com/NodePool\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: organizations/123456789/policies/${constraint.name}\n parent: organizations/123456789\n spec:\n rules:\n - enforce: FALSE\n dryRunSpec:\n inheritFromParent: false\n reset: false\n rules:\n - enforce: FALSE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicy can be imported using any of these accepted formats:\n\n* `{{parent}}/policies/{{name}}`\n\nWhen using the `pulumi import` command, Policy can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:orgpolicy/policy:Policy default {{parent}}/policies/{{name}}\n```\n\n", + "description": "Defines an organization policy which is used to specify constraints for configurations of Google Cloud resources.\n\n\nTo get more information about Policy, see:\n\n* [API documentation](https://cloud.google.com/resource-manager/docs/reference/orgpolicy/rest/v2/organizations.policies)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/resource-manager/docs/organization-policy/creating-managing-custom-constraints)\n * [Supported Services](https://cloud.google.com/resource-manager/docs/organization-policy/custom-constraint-supported-services)\n\n## Example Usage\n\n### Org Policy Policy Enforce\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.organizations.Project(\"basic\", {\n projectId: \"id\",\n name: \"id\",\n orgId: \"123456789\",\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`projects/${basic.name}/policies/iam.disableServiceAccountKeyUpload`,\n parent: pulumi.interpolate`projects/${basic.name}`,\n spec: {\n rules: [{\n enforce: \"FALSE\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.organizations.Project(\"basic\",\n project_id=\"id\",\n name=\"id\",\n org_id=\"123456789\")\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=basic.name.apply(lambda name: f\"projects/{name}/policies/iam.disableServiceAccountKeyUpload\"),\n parent=basic.name.apply(lambda name: f\"projects/{name}\"),\n spec={\n \"rules\": [{\n \"enforce\": \"FALSE\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Organizations.Project(\"basic\", new()\n {\n ProjectId = \"id\",\n Name = \"id\",\n OrgId = \"123456789\",\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = basic.Name.Apply(name =\u003e $\"projects/{name}/policies/iam.disableServiceAccountKeyUpload\"),\n Parent = basic.Name.Apply(name =\u003e $\"projects/{name}\"),\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n Enforce = \"FALSE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := organizations.NewProject(ctx, \"basic\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"id\"),\n\t\t\tName: pulumi.String(\"id\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/policies/iam.disableServiceAccountKeyUpload\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tEnforce: pulumi.String(\"FALSE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new Project(\"basic\", ProjectArgs.builder()\n .projectId(\"id\")\n .name(\"id\")\n .orgId(\"123456789\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(basic.name().applyValue(name -\u003e String.format(\"projects/%s/policies/iam.disableServiceAccountKeyUpload\", name)))\n .parent(basic.name().applyValue(name -\u003e String.format(\"projects/%s\", name)))\n .spec(PolicySpecArgs.builder()\n .rules(PolicySpecRuleArgs.builder()\n .enforce(\"FALSE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: projects/${basic.name}/policies/iam.disableServiceAccountKeyUpload\n parent: projects/${basic.name}\n spec:\n rules:\n - enforce: FALSE\n basic:\n type: gcp:organizations:Project\n properties:\n projectId: id\n name: id\n orgId: '123456789'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Folder\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.organizations.Folder(\"basic\", {\n parent: \"organizations/123456789\",\n displayName: \"folder\",\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`${basic.name}/policies/gcp.resourceLocations`,\n parent: basic.name,\n spec: {\n inheritFromParent: true,\n rules: [{\n denyAll: \"TRUE\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.organizations.Folder(\"basic\",\n parent=\"organizations/123456789\",\n display_name=\"folder\")\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=basic.name.apply(lambda name: f\"{name}/policies/gcp.resourceLocations\"),\n parent=basic.name,\n spec={\n \"inherit_from_parent\": True,\n \"rules\": [{\n \"deny_all\": \"TRUE\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Organizations.Folder(\"basic\", new()\n {\n Parent = \"organizations/123456789\",\n DisplayName = \"folder\",\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = basic.Name.Apply(name =\u003e $\"{name}/policies/gcp.resourceLocations\"),\n Parent = basic.Name,\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n InheritFromParent = true,\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n DenyAll = \"TRUE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := organizations.NewFolder(ctx, \"basic\", \u0026organizations.FolderArgs{\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tDisplayName: pulumi.String(\"folder\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v/policies/gcp.resourceLocations\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: basic.Name,\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tInheritFromParent: pulumi.Bool(true),\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tDenyAll: pulumi.String(\"TRUE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.Folder;\nimport com.pulumi.gcp.organizations.FolderArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new Folder(\"basic\", FolderArgs.builder()\n .parent(\"organizations/123456789\")\n .displayName(\"folder\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(basic.name().applyValue(name -\u003e String.format(\"%s/policies/gcp.resourceLocations\", name)))\n .parent(basic.name())\n .spec(PolicySpecArgs.builder()\n .inheritFromParent(true)\n .rules(PolicySpecRuleArgs.builder()\n .denyAll(\"TRUE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: ${basic.name}/policies/gcp.resourceLocations\n parent: ${basic.name}\n spec:\n inheritFromParent: true\n rules:\n - denyAll: TRUE\n basic:\n type: gcp:organizations:Folder\n properties:\n parent: organizations/123456789\n displayName: folder\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Organization\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: \"organizations/123456789/policies/gcp.detailedAuditLoggingMode\",\n parent: \"organizations/123456789\",\n spec: {\n reset: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=\"organizations/123456789/policies/gcp.detailedAuditLoggingMode\",\n parent=\"organizations/123456789\",\n spec={\n \"reset\": True,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = \"organizations/123456789/policies/gcp.detailedAuditLoggingMode\",\n Parent = \"organizations/123456789\",\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Reset = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: pulumi.String(\"organizations/123456789/policies/gcp.detailedAuditLoggingMode\"),\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tReset: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(\"organizations/123456789/policies/gcp.detailedAuditLoggingMode\")\n .parent(\"organizations/123456789\")\n .spec(PolicySpecArgs.builder()\n .reset(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: organizations/123456789/policies/gcp.detailedAuditLoggingMode\n parent: organizations/123456789\n spec:\n reset: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Project\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst basic = new gcp.organizations.Project(\"basic\", {\n projectId: \"id\",\n name: \"id\",\n orgId: \"123456789\",\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`projects/${basic.name}/policies/gcp.resourceLocations`,\n parent: pulumi.interpolate`projects/${basic.name}`,\n spec: {\n rules: [\n {\n condition: {\n description: \"A sample condition for the policy\",\n expression: \"resource.matchTagId('tagKeys/123', 'tagValues/345')\",\n location: \"sample-location.log\",\n title: \"sample-condition\",\n },\n values: {\n allowedValues: [\"projects/allowed-project\"],\n deniedValues: [\"projects/denied-project\"],\n },\n },\n {\n allowAll: \"TRUE\",\n },\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nbasic = gcp.organizations.Project(\"basic\",\n project_id=\"id\",\n name=\"id\",\n org_id=\"123456789\")\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=basic.name.apply(lambda name: f\"projects/{name}/policies/gcp.resourceLocations\"),\n parent=basic.name.apply(lambda name: f\"projects/{name}\"),\n spec={\n \"rules\": [\n {\n \"condition\": {\n \"description\": \"A sample condition for the policy\",\n \"expression\": \"resource.matchTagId('tagKeys/123', 'tagValues/345')\",\n \"location\": \"sample-location.log\",\n \"title\": \"sample-condition\",\n },\n \"values\": {\n \"allowed_values\": [\"projects/allowed-project\"],\n \"denied_values\": [\"projects/denied-project\"],\n },\n },\n {\n \"allow_all\": \"TRUE\",\n },\n ],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var basic = new Gcp.Organizations.Project(\"basic\", new()\n {\n ProjectId = \"id\",\n Name = \"id\",\n OrgId = \"123456789\",\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = basic.Name.Apply(name =\u003e $\"projects/{name}/policies/gcp.resourceLocations\"),\n Parent = basic.Name.Apply(name =\u003e $\"projects/{name}\"),\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n Condition = new Gcp.OrgPolicy.Inputs.PolicySpecRuleConditionArgs\n {\n Description = \"A sample condition for the policy\",\n Expression = \"resource.matchTagId('tagKeys/123', 'tagValues/345')\",\n Location = \"sample-location.log\",\n Title = \"sample-condition\",\n },\n Values = new Gcp.OrgPolicy.Inputs.PolicySpecRuleValuesArgs\n {\n AllowedValues = new[]\n {\n \"projects/allowed-project\",\n },\n DeniedValues = new[]\n {\n \"projects/denied-project\",\n },\n },\n },\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n AllowAll = \"TRUE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbasic, err := organizations.NewProject(ctx, \"basic\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"id\"),\n\t\t\tName: pulumi.String(\"id\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v/policies/gcp.resourceLocations\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: basic.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"projects/%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tCondition: \u0026orgpolicy.PolicySpecRuleConditionArgs{\n\t\t\t\t\t\t\tDescription: pulumi.String(\"A sample condition for the policy\"),\n\t\t\t\t\t\t\tExpression: pulumi.String(\"resource.matchTagId('tagKeys/123', 'tagValues/345')\"),\n\t\t\t\t\t\t\tLocation: pulumi.String(\"sample-location.log\"),\n\t\t\t\t\t\t\tTitle: pulumi.String(\"sample-condition\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tValues: \u0026orgpolicy.PolicySpecRuleValuesArgs{\n\t\t\t\t\t\t\tAllowedValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"projects/allowed-project\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tDeniedValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"projects/denied-project\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tAllowAll: pulumi.String(\"TRUE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var basic = new Project(\"basic\", ProjectArgs.builder()\n .projectId(\"id\")\n .name(\"id\")\n .orgId(\"123456789\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(basic.name().applyValue(name -\u003e String.format(\"projects/%s/policies/gcp.resourceLocations\", name)))\n .parent(basic.name().applyValue(name -\u003e String.format(\"projects/%s\", name)))\n .spec(PolicySpecArgs.builder()\n .rules( \n PolicySpecRuleArgs.builder()\n .condition(PolicySpecRuleConditionArgs.builder()\n .description(\"A sample condition for the policy\")\n .expression(\"resource.matchTagId('tagKeys/123', 'tagValues/345')\")\n .location(\"sample-location.log\")\n .title(\"sample-condition\")\n .build())\n .values(PolicySpecRuleValuesArgs.builder()\n .allowedValues(\"projects/allowed-project\")\n .deniedValues(\"projects/denied-project\")\n .build())\n .build(),\n PolicySpecRuleArgs.builder()\n .allowAll(\"TRUE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: projects/${basic.name}/policies/gcp.resourceLocations\n parent: projects/${basic.name}\n spec:\n rules:\n - condition:\n description: A sample condition for the policy\n expression: resource.matchTagId('tagKeys/123', 'tagValues/345')\n location: sample-location.log\n title: sample-condition\n values:\n allowedValues:\n - projects/allowed-project\n deniedValues:\n - projects/denied-project\n - allowAll: TRUE\n basic:\n type: gcp:organizations:Project\n properties:\n projectId: id\n name: id\n orgId: '123456789'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Org Policy Policy Dry Run Spec\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst constraint = new gcp.orgpolicy.CustomConstraint(\"constraint\", {\n name: \"custom.disableGkeAutoUpgrade_37559\",\n parent: \"organizations/123456789\",\n displayName: \"Disable GKE auto upgrade\",\n description: \"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\",\n actionType: \"ALLOW\",\n condition: \"resource.management.autoUpgrade == false\",\n methodTypes: [\"CREATE\"],\n resourceTypes: [\"container.googleapis.com/NodePool\"],\n});\nconst primary = new gcp.orgpolicy.Policy(\"primary\", {\n name: pulumi.interpolate`organizations/123456789/policies/${constraint.name}`,\n parent: \"organizations/123456789\",\n spec: {\n rules: [{\n enforce: \"FALSE\",\n }],\n },\n dryRunSpec: {\n inheritFromParent: false,\n reset: false,\n rules: [{\n enforce: \"FALSE\",\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nconstraint = gcp.orgpolicy.CustomConstraint(\"constraint\",\n name=\"custom.disableGkeAutoUpgrade_37559\",\n parent=\"organizations/123456789\",\n display_name=\"Disable GKE auto upgrade\",\n description=\"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\",\n action_type=\"ALLOW\",\n condition=\"resource.management.autoUpgrade == false\",\n method_types=[\"CREATE\"],\n resource_types=[\"container.googleapis.com/NodePool\"])\nprimary = gcp.orgpolicy.Policy(\"primary\",\n name=constraint.name.apply(lambda name: f\"organizations/123456789/policies/{name}\"),\n parent=\"organizations/123456789\",\n spec={\n \"rules\": [{\n \"enforce\": \"FALSE\",\n }],\n },\n dry_run_spec={\n \"inherit_from_parent\": False,\n \"reset\": False,\n \"rules\": [{\n \"enforce\": \"FALSE\",\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var constraint = new Gcp.OrgPolicy.CustomConstraint(\"constraint\", new()\n {\n Name = \"custom.disableGkeAutoUpgrade_37559\",\n Parent = \"organizations/123456789\",\n DisplayName = \"Disable GKE auto upgrade\",\n Description = \"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\",\n ActionType = \"ALLOW\",\n Condition = \"resource.management.autoUpgrade == false\",\n MethodTypes = new[]\n {\n \"CREATE\",\n },\n ResourceTypes = new[]\n {\n \"container.googleapis.com/NodePool\",\n },\n });\n\n var primary = new Gcp.OrgPolicy.Policy(\"primary\", new()\n {\n Name = constraint.Name.Apply(name =\u003e $\"organizations/123456789/policies/{name}\"),\n Parent = \"organizations/123456789\",\n Spec = new Gcp.OrgPolicy.Inputs.PolicySpecArgs\n {\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicySpecRuleArgs\n {\n Enforce = \"FALSE\",\n },\n },\n },\n DryRunSpec = new Gcp.OrgPolicy.Inputs.PolicyDryRunSpecArgs\n {\n InheritFromParent = false,\n Reset = false,\n Rules = new[]\n {\n new Gcp.OrgPolicy.Inputs.PolicyDryRunSpecRuleArgs\n {\n Enforce = \"FALSE\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/orgpolicy\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tconstraint, err := orgpolicy.NewCustomConstraint(ctx, \"constraint\", \u0026orgpolicy.CustomConstraintArgs{\n\t\t\tName: pulumi.String(\"custom.disableGkeAutoUpgrade_37559\"),\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tDisplayName: pulumi.String(\"Disable GKE auto upgrade\"),\n\t\t\tDescription: pulumi.String(\"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\"),\n\t\t\tActionType: pulumi.String(\"ALLOW\"),\n\t\t\tCondition: pulumi.String(\"resource.management.autoUpgrade == false\"),\n\t\t\tMethodTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"CREATE\"),\n\t\t\t},\n\t\t\tResourceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"container.googleapis.com/NodePool\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = orgpolicy.NewPolicy(ctx, \"primary\", \u0026orgpolicy.PolicyArgs{\n\t\t\tName: constraint.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"organizations/123456789/policies/%v\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tParent: pulumi.String(\"organizations/123456789\"),\n\t\t\tSpec: \u0026orgpolicy.PolicySpecArgs{\n\t\t\t\tRules: orgpolicy.PolicySpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicySpecRuleArgs{\n\t\t\t\t\t\tEnforce: pulumi.String(\"FALSE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDryRunSpec: \u0026orgpolicy.PolicyDryRunSpecArgs{\n\t\t\t\tInheritFromParent: pulumi.Bool(false),\n\t\t\t\tReset: pulumi.Bool(false),\n\t\t\t\tRules: orgpolicy.PolicyDryRunSpecRuleArray{\n\t\t\t\t\t\u0026orgpolicy.PolicyDryRunSpecRuleArgs{\n\t\t\t\t\t\tEnforce: pulumi.String(\"FALSE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.orgpolicy.CustomConstraint;\nimport com.pulumi.gcp.orgpolicy.CustomConstraintArgs;\nimport com.pulumi.gcp.orgpolicy.Policy;\nimport com.pulumi.gcp.orgpolicy.PolicyArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicySpecArgs;\nimport com.pulumi.gcp.orgpolicy.inputs.PolicyDryRunSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var constraint = new CustomConstraint(\"constraint\", CustomConstraintArgs.builder()\n .name(\"custom.disableGkeAutoUpgrade_37559\")\n .parent(\"organizations/123456789\")\n .displayName(\"Disable GKE auto upgrade\")\n .description(\"Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\")\n .actionType(\"ALLOW\")\n .condition(\"resource.management.autoUpgrade == false\")\n .methodTypes(\"CREATE\")\n .resourceTypes(\"container.googleapis.com/NodePool\")\n .build());\n\n var primary = new Policy(\"primary\", PolicyArgs.builder()\n .name(constraint.name().applyValue(name -\u003e String.format(\"organizations/123456789/policies/%s\", name)))\n .parent(\"organizations/123456789\")\n .spec(PolicySpecArgs.builder()\n .rules(PolicySpecRuleArgs.builder()\n .enforce(\"FALSE\")\n .build())\n .build())\n .dryRunSpec(PolicyDryRunSpecArgs.builder()\n .inheritFromParent(false)\n .reset(false)\n .rules(PolicyDryRunSpecRuleArgs.builder()\n .enforce(\"FALSE\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n constraint:\n type: gcp:orgpolicy:CustomConstraint\n properties:\n name: custom.disableGkeAutoUpgrade_37559\n parent: organizations/123456789\n displayName: Disable GKE auto upgrade\n description: Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.\n actionType: ALLOW\n condition: resource.management.autoUpgrade == false\n methodTypes:\n - CREATE\n resourceTypes:\n - container.googleapis.com/NodePool\n primary:\n type: gcp:orgpolicy:Policy\n properties:\n name: organizations/123456789/policies/${constraint.name}\n parent: organizations/123456789\n spec:\n rules:\n - enforce: FALSE\n dryRunSpec:\n inheritFromParent: false\n reset: false\n rules:\n - enforce: FALSE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicy can be imported using any of these accepted formats:\n\n* `{{parent}}/policies/{{name}}`\n\nWhen using the `pulumi import` command, Policy can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:orgpolicy/policy:Policy default {{parent}}/policies/{{name}}\n```\n\n", "properties": { "dryRunSpec": { "$ref": "#/types/gcp:orgpolicy/PolicyDryRunSpec:PolicyDryRunSpec", @@ -227765,6 +229363,10 @@ "gcp:projects/service:Service": { "description": "## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = new gcp.projects.Service(\"project\", {\n project: \"your-project-id\",\n service: \"iam.googleapis.com\",\n disableOnDestroy: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.projects.Service(\"project\",\n project=\"your-project-id\",\n service=\"iam.googleapis.com\",\n disable_on_destroy=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = new Gcp.Projects.Service(\"project\", new()\n {\n Project = \"your-project-id\",\n ServiceName = \"iam.googleapis.com\",\n DisableOnDestroy = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := projects.NewService(ctx, \"project\", \u0026projects.ServiceArgs{\n\t\t\tProject: pulumi.String(\"your-project-id\"),\n\t\t\tService: pulumi.String(\"iam.googleapis.com\"),\n\t\t\tDisableOnDestroy: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var project = new Service(\"project\", ServiceArgs.builder()\n .project(\"your-project-id\")\n .service(\"iam.googleapis.com\")\n .disableOnDestroy(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project:\n type: gcp:projects:Service\n properties:\n project: your-project-id\n service: iam.googleapis.com\n disableOnDestroy: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nProject services can be imported using the `project_id` and `service`, e.g.\n\n* `{{project_id}}/{{service}}`\n\nWhen using the `pulumi import` command, project services can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:projects/service:Service default {{project_id}}/{{service}}\n```\n\nNote that unlike other resources that fail if they already exist,\n\n`pulumi up` can be successfully used to verify already enabled services.\n\nThis means that when importing existing resources into Terraform, you can either\n\nimport the `google_project_service` resources or treat them as new\n\ninfrastructure and run `pulumi up` to add them to state.\n\n", "properties": { + "checkIfServiceHasUsageOnDestroy": { + "type": "boolean", + "description": "Beta\nIf `true`, the usage of the service to be disabled will be checked and an error\nwill be returned if the service to be disabled has usage in last 30 days.\nDefaults to `false`.\n" + }, "disableDependentServices": { "type": "boolean", "description": "If `true`, services that are enabled\nand which depend on this service should also be disabled when this service is\ndestroyed. If `false` or unset, an error will be generated if any enabled\nservices depend on this service when destroying it.\n" @@ -227791,6 +229393,10 @@ "service" ], "inputProperties": { + "checkIfServiceHasUsageOnDestroy": { + "type": "boolean", + "description": "Beta\nIf `true`, the usage of the service to be disabled will be checked and an error\nwill be returned if the service to be disabled has usage in last 30 days.\nDefaults to `false`.\n" + }, "disableDependentServices": { "type": "boolean", "description": "If `true`, services that are enabled\nand which depend on this service should also be disabled when this service is\ndestroyed. If `false` or unset, an error will be generated if any enabled\nservices depend on this service when destroying it.\n" @@ -227820,6 +229426,10 @@ "stateInputs": { "description": "Input properties used for looking up and filtering Service resources.\n", "properties": { + "checkIfServiceHasUsageOnDestroy": { + "type": "boolean", + "description": "Beta\nIf `true`, the usage of the service to be disabled will be checked and an error\nwill be returned if the service to be disabled has usage in last 30 days.\nDefaults to `false`.\n" + }, "disableDependentServices": { "type": "boolean", "description": "If `true`, services that are enabled\nand which depend on this service should also be disabled when this service is\ndestroyed. If `false` or unset, an error will be generated if any enabled\nservices depend on this service when destroying it.\n" @@ -227847,12 +229457,16 @@ } }, "gcp:projects/serviceIdentity:ServiceIdentity": { - "description": "Generate service identity for a service.\n\n\u003e **Note:** Once created, this resource cannot be updated or destroyed. These\nactions are a no-op.\n\n\u003e **Note:** This resource can be used to retrieve the emails of the [Google-managed service accounts](https://cloud.google.com/iam/docs/service-agents) \nof the APIs that Google has configured with a Service Identity. You can run `gcloud beta services identity create --service SERVICE_NAME.googleapis.com` to\nverify if an API supports this.\n\nTo get more information about Service Identity, see:\n\n* [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1beta1/services/generateServiceIdentity)\n\n## Example Usage\n\n### Service Identity Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = gcp.organizations.getProject({});\nconst hcSa = new gcp.projects.ServiceIdentity(\"hc_sa\", {\n project: project.then(project =\u003e project.projectId),\n service: \"healthcare.googleapis.com\",\n});\nconst hcSaBqJobuser = new gcp.projects.IAMMember(\"hc_sa_bq_jobuser\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.jobUser\",\n member: pulumi.interpolate`serviceAccount:${hcSa.email}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.organizations.get_project()\nhc_sa = gcp.projects.ServiceIdentity(\"hc_sa\",\n project=project.project_id,\n service=\"healthcare.googleapis.com\")\nhc_sa_bq_jobuser = gcp.projects.IAMMember(\"hc_sa_bq_jobuser\",\n project=project.project_id,\n role=\"roles/bigquery.jobUser\",\n member=hc_sa.email.apply(lambda email: f\"serviceAccount:{email}\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var hcSa = new Gcp.Projects.ServiceIdentity(\"hc_sa\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Service = \"healthcare.googleapis.com\",\n });\n\n var hcSaBqJobuser = new Gcp.Projects.IAMMember(\"hc_sa_bq_jobuser\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.jobUser\",\n Member = hcSa.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thcSa, err := projects.NewServiceIdentity(ctx, \"hc_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tService: pulumi.String(\"healthcare.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"hc_sa_bq_jobuser\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.jobUser\"),\n\t\t\tMember: hcSa.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var hcSa = new ServiceIdentity(\"hcSa\", ServiceIdentityArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .service(\"healthcare.googleapis.com\")\n .build());\n\n var hcSaBqJobuser = new IAMMember(\"hcSaBqJobuser\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.jobUser\")\n .member(hcSa.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n hcSa:\n type: gcp:projects:ServiceIdentity\n name: hc_sa\n properties:\n project: ${project.projectId}\n service: healthcare.googleapis.com\n hcSaBqJobuser:\n type: gcp:projects:IAMMember\n name: hc_sa_bq_jobuser\n properties:\n project: ${project.projectId}\n role: roles/bigquery.jobUser\n member: serviceAccount:${hcSa.email}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource does not support import.\n\n", + "description": "Generate service identity for a service.\n\n\u003e **Note:** Once created, this resource cannot be updated or destroyed. These\nactions are a no-op.\n\n\u003e **Note:** This resource can be used to retrieve the emails of the [Google-managed service accounts](https://cloud.google.com/iam/docs/service-agents) \nof the APIs that Google has configured with a Service Identity. You can run `gcloud beta services identity create --service SERVICE_NAME.googleapis.com` to\nverify if an API supports this.\n\nTo get more information about Service Identity, see:\n\n* [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1beta1/services/generateServiceIdentity)\n\n## Example Usage\n\n### Service Identity Basic\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst project = gcp.organizations.getProject({});\nconst hcSa = new gcp.projects.ServiceIdentity(\"hc_sa\", {\n project: project.then(project =\u003e project.projectId),\n service: \"healthcare.googleapis.com\",\n});\nconst hcSaBqJobuser = new gcp.projects.IAMMember(\"hc_sa_bq_jobuser\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.jobUser\",\n member: hcSa.member,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nproject = gcp.organizations.get_project()\nhc_sa = gcp.projects.ServiceIdentity(\"hc_sa\",\n project=project.project_id,\n service=\"healthcare.googleapis.com\")\nhc_sa_bq_jobuser = gcp.projects.IAMMember(\"hc_sa_bq_jobuser\",\n project=project.project_id,\n role=\"roles/bigquery.jobUser\",\n member=hc_sa.member)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var hcSa = new Gcp.Projects.ServiceIdentity(\"hc_sa\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Service = \"healthcare.googleapis.com\",\n });\n\n var hcSaBqJobuser = new Gcp.Projects.IAMMember(\"hc_sa_bq_jobuser\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.jobUser\",\n Member = hcSa.Member,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\thcSa, err := projects.NewServiceIdentity(ctx, \"hc_sa\", \u0026projects.ServiceIdentityArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tService: pulumi.String(\"healthcare.googleapis.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = projects.NewIAMMember(ctx, \"hc_sa_bq_jobuser\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.jobUser\"),\n\t\t\tMember: hcSa.Member,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.ServiceIdentity;\nimport com.pulumi.gcp.projects.ServiceIdentityArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var hcSa = new ServiceIdentity(\"hcSa\", ServiceIdentityArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .service(\"healthcare.googleapis.com\")\n .build());\n\n var hcSaBqJobuser = new IAMMember(\"hcSaBqJobuser\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.jobUser\")\n .member(hcSa.member())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n hcSa:\n type: gcp:projects:ServiceIdentity\n name: hc_sa\n properties:\n project: ${project.projectId}\n service: healthcare.googleapis.com\n hcSaBqJobuser:\n type: gcp:projects:IAMMember\n name: hc_sa_bq_jobuser\n properties:\n project: ${project.projectId}\n role: roles/bigquery.jobUser\n member: ${hcSa.member}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nThis resource does not support import.\n\n", "properties": { "email": { "type": "string", "description": "The email address of the Google managed service account.\n" }, + "member": { + "type": "string", + "description": "The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.\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" @@ -227864,6 +229478,7 @@ }, "required": [ "email", + "member", "project", "service" ], @@ -227889,6 +229504,10 @@ "type": "string", "description": "The email address of the Google managed service account.\n" }, + "member": { + "type": "string", + "description": "The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.\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", @@ -228590,7 +230209,7 @@ } }, "gcp:pubsub/subscription:Subscription": { - "description": "A named resource representing the stream of messages from a single,\nspecific topic, to be delivered to the subscribing application.\n\n\nTo get more information about Subscription, see:\n\n* [API documentation](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions)\n* How-to Guides\n * [Managing Subscriptions](https://cloud.google.com/pubsub/docs/admin#managing_subscriptions)\n\n\u003e **Note:** You can retrieve the email of the Google Managed Pub/Sub Service Account used for forwarding\nby using the `gcp.projects.ServiceIdentity` resource.\n\n## Example Usage\n\n### Pubsub Subscription Push\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n ackDeadlineSeconds: 20,\n labels: {\n foo: \"bar\",\n },\n pushConfig: {\n pushEndpoint: \"https://example.com/push\",\n attributes: {\n \"x-goog-version\": \"v1\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n ack_deadline_seconds=20,\n labels={\n \"foo\": \"bar\",\n },\n push_config={\n \"push_endpoint\": \"https://example.com/push\",\n \"attributes\": {\n \"x_goog_version\": \"v1\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n AckDeadlineSeconds = 20,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n PushConfig = new Gcp.PubSub.Inputs.SubscriptionPushConfigArgs\n {\n PushEndpoint = \"https://example.com/push\",\n Attributes = \n {\n { \"x-goog-version\", \"v1\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tAckDeadlineSeconds: pulumi.Int(20),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tPushConfig: \u0026pubsub.SubscriptionPushConfigArgs{\n\t\t\t\tPushEndpoint: pulumi.String(\"https://example.com/push\"),\n\t\t\t\tAttributes: pulumi.StringMap{\n\t\t\t\t\t\"x-goog-version\": pulumi.String(\"v1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionPushConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .ackDeadlineSeconds(20)\n .labels(Map.of(\"foo\", \"bar\"))\n .pushConfig(SubscriptionPushConfigArgs.builder()\n .pushEndpoint(\"https://example.com/push\")\n .attributes(Map.of(\"x-goog-version\", \"v1\"))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n ackDeadlineSeconds: 20\n labels:\n foo: bar\n pushConfig:\n pushEndpoint: https://example.com/push\n attributes:\n x-goog-version: v1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Pull\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n labels: {\n foo: \"bar\",\n },\n messageRetentionDuration: \"1200s\",\n retainAckedMessages: true,\n ackDeadlineSeconds: 20,\n expirationPolicy: {\n ttl: \"300000.5s\",\n },\n retryPolicy: {\n minimumBackoff: \"10s\",\n },\n enableMessageOrdering: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n labels={\n \"foo\": \"bar\",\n },\n message_retention_duration=\"1200s\",\n retain_acked_messages=True,\n ack_deadline_seconds=20,\n expiration_policy={\n \"ttl\": \"300000.5s\",\n },\n retry_policy={\n \"minimum_backoff\": \"10s\",\n },\n enable_message_ordering=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n MessageRetentionDuration = \"1200s\",\n RetainAckedMessages = true,\n AckDeadlineSeconds = 20,\n ExpirationPolicy = new Gcp.PubSub.Inputs.SubscriptionExpirationPolicyArgs\n {\n Ttl = \"300000.5s\",\n },\n RetryPolicy = new Gcp.PubSub.Inputs.SubscriptionRetryPolicyArgs\n {\n MinimumBackoff = \"10s\",\n },\n EnableMessageOrdering = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tMessageRetentionDuration: pulumi.String(\"1200s\"),\n\t\t\tRetainAckedMessages: pulumi.Bool(true),\n\t\t\tAckDeadlineSeconds: pulumi.Int(20),\n\t\t\tExpirationPolicy: \u0026pubsub.SubscriptionExpirationPolicyArgs{\n\t\t\t\tTtl: pulumi.String(\"300000.5s\"),\n\t\t\t},\n\t\t\tRetryPolicy: \u0026pubsub.SubscriptionRetryPolicyArgs{\n\t\t\t\tMinimumBackoff: pulumi.String(\"10s\"),\n\t\t\t},\n\t\t\tEnableMessageOrdering: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionExpirationPolicyArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionRetryPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .labels(Map.of(\"foo\", \"bar\"))\n .messageRetentionDuration(\"1200s\")\n .retainAckedMessages(true)\n .ackDeadlineSeconds(20)\n .expirationPolicy(SubscriptionExpirationPolicyArgs.builder()\n .ttl(\"300000.5s\")\n .build())\n .retryPolicy(SubscriptionRetryPolicyArgs.builder()\n .minimumBackoff(\"10s\")\n .build())\n .enableMessageOrdering(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n labels:\n foo: bar\n messageRetentionDuration: 1200s\n retainAckedMessages: true\n ackDeadlineSeconds: 20\n expirationPolicy:\n ttl: 300000.5s\n retryPolicy:\n minimumBackoff: 10s\n enableMessageOrdering: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Dead Letter\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst exampleDeadLetter = new gcp.pubsub.Topic(\"example_dead_letter\", {name: \"example-topic-dead-letter\"});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n deadLetterPolicy: {\n deadLetterTopic: exampleDeadLetter.id,\n maxDeliveryAttempts: 10,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nexample_dead_letter = gcp.pubsub.Topic(\"example_dead_letter\", name=\"example-topic-dead-letter\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n dead_letter_policy={\n \"dead_letter_topic\": example_dead_letter.id,\n \"max_delivery_attempts\": 10,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var exampleDeadLetter = new Gcp.PubSub.Topic(\"example_dead_letter\", new()\n {\n Name = \"example-topic-dead-letter\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n DeadLetterPolicy = new Gcp.PubSub.Inputs.SubscriptionDeadLetterPolicyArgs\n {\n DeadLetterTopic = exampleDeadLetter.Id,\n MaxDeliveryAttempts = 10,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDeadLetter, err := pubsub.NewTopic(ctx, \"example_dead_letter\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic-dead-letter\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tDeadLetterPolicy: \u0026pubsub.SubscriptionDeadLetterPolicyArgs{\n\t\t\t\tDeadLetterTopic: exampleDeadLetter.ID(),\n\t\t\t\tMaxDeliveryAttempts: pulumi.Int(10),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionDeadLetterPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var exampleDeadLetter = new Topic(\"exampleDeadLetter\", TopicArgs.builder()\n .name(\"example-topic-dead-letter\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .deadLetterPolicy(SubscriptionDeadLetterPolicyArgs.builder()\n .deadLetterTopic(exampleDeadLetter.id())\n .maxDeliveryAttempts(10)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleDeadLetter:\n type: gcp:pubsub:Topic\n name: example_dead_letter\n properties:\n name: example-topic-dead-letter\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n deadLetterPolicy:\n deadLetterTopic: ${exampleDeadLetter.id}\n maxDeliveryAttempts: 10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Bq\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst viewer = new gcp.projects.IAMMember(\"viewer\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.metadataViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst editor = new gcp.projects.IAMMember(\"editor\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.dataEditor\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst test = new gcp.bigquery.Dataset(\"test\", {datasetId: \"example_dataset\"});\nconst testTable = new gcp.bigquery.Table(\"test\", {\n deletionProtection: false,\n tableId: \"example_table\",\n datasetId: test.datasetId,\n schema: `[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n bigqueryConfig: {\n table: pulumi.interpolate`${testTable.project}.${testTable.datasetId}.${testTable.tableId}`,\n },\n}, {\n dependsOn: [\n viewer,\n editor,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nviewer = gcp.projects.IAMMember(\"viewer\",\n project=project.project_id,\n role=\"roles/bigquery.metadataViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\neditor = gcp.projects.IAMMember(\"editor\",\n project=project.project_id,\n role=\"roles/bigquery.dataEditor\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\ntest = gcp.bigquery.Dataset(\"test\", dataset_id=\"example_dataset\")\ntest_table = gcp.bigquery.Table(\"test\",\n deletion_protection=False,\n table_id=\"example_table\",\n dataset_id=test.dataset_id,\n schema=\"\"\"[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n\"\"\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n bigquery_config={\n \"table\": pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f\"{project}.{dataset_id}.{table_id}\"),\n },\n opts = pulumi.ResourceOptions(depends_on=[\n viewer,\n editor,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var viewer = new Gcp.Projects.IAMMember(\"viewer\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.metadataViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var editor = new Gcp.Projects.IAMMember(\"editor\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.dataEditor\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var test = new Gcp.BigQuery.Dataset(\"test\", new()\n {\n DatasetId = \"example_dataset\",\n });\n\n var testTable = new Gcp.BigQuery.Table(\"test\", new()\n {\n DeletionProtection = false,\n TableId = \"example_table\",\n DatasetId = test.DatasetId,\n Schema = @\"[\n {\n \"\"name\"\": \"\"data\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"description\"\": \"\"The data\"\"\n }\n]\n\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n BigqueryConfig = new Gcp.PubSub.Inputs.SubscriptionBigqueryConfigArgs\n {\n Table = Output.Tuple(testTable.Project, testTable.DatasetId, testTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"{project}.{datasetId}.{tableId}\";\n }),\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n viewer,\n editor,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := projects.NewIAMMember(ctx, \"viewer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.metadataViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teditor, err := projects.NewIAMMember(ctx, \"editor\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataEditor\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := bigquery.NewDataset(ctx, \"test\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_dataset\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTable, err := bigquery.NewTable(ctx, \"test\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tTableId: pulumi.String(\"example_table\"),\n\t\t\tDatasetId: test.DatasetId,\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tBigqueryConfig: \u0026pubsub.SubscriptionBigqueryConfigArgs{\n\t\t\t\tTable: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tviewer,\n\t\t\teditor,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionBigqueryConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var viewer = new IAMMember(\"viewer\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.metadataViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var editor = new IAMMember(\"editor\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.dataEditor\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var test = new Dataset(\"test\", DatasetArgs.builder()\n .datasetId(\"example_dataset\")\n .build());\n\n var testTable = new Table(\"testTable\", TableArgs.builder()\n .deletionProtection(false)\n .tableId(\"example_table\")\n .datasetId(test.datasetId())\n .schema(\"\"\"\n[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n \"\"\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .bigqueryConfig(SubscriptionBigqueryConfigArgs.builder()\n .table(Output.tuple(testTable.project(), testTable.datasetId(), testTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"%s.%s.%s\", project.applyValue(getProjectResult -\u003e getProjectResult),datasetId,tableId);\n }))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n viewer,\n editor)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n bigqueryConfig:\n table: ${testTable.project}.${testTable.datasetId}.${testTable.tableId}\n options:\n dependson:\n - ${viewer}\n - ${editor}\n viewer:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.metadataViewer\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n editor:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.dataEditor\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n test:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_dataset\n testTable:\n type: gcp:bigquery:Table\n name: test\n properties:\n deletionProtection: false\n tableId: example_table\n datasetId: ${test.datasetId}\n schema: |\n [\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n ]\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Bq Table Schema\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst viewer = new gcp.projects.IAMMember(\"viewer\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.metadataViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst editor = new gcp.projects.IAMMember(\"editor\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.dataEditor\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst test = new gcp.bigquery.Dataset(\"test\", {datasetId: \"example_dataset\"});\nconst testTable = new gcp.bigquery.Table(\"test\", {\n deletionProtection: false,\n tableId: \"example_table\",\n datasetId: test.datasetId,\n schema: `[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n bigqueryConfig: {\n table: pulumi.interpolate`${testTable.project}.${testTable.datasetId}.${testTable.tableId}`,\n useTableSchema: true,\n },\n}, {\n dependsOn: [\n viewer,\n editor,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nviewer = gcp.projects.IAMMember(\"viewer\",\n project=project.project_id,\n role=\"roles/bigquery.metadataViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\neditor = gcp.projects.IAMMember(\"editor\",\n project=project.project_id,\n role=\"roles/bigquery.dataEditor\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\ntest = gcp.bigquery.Dataset(\"test\", dataset_id=\"example_dataset\")\ntest_table = gcp.bigquery.Table(\"test\",\n deletion_protection=False,\n table_id=\"example_table\",\n dataset_id=test.dataset_id,\n schema=\"\"\"[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n\"\"\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n bigquery_config={\n \"table\": pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f\"{project}.{dataset_id}.{table_id}\"),\n \"use_table_schema\": True,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n viewer,\n editor,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var viewer = new Gcp.Projects.IAMMember(\"viewer\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.metadataViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var editor = new Gcp.Projects.IAMMember(\"editor\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.dataEditor\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var test = new Gcp.BigQuery.Dataset(\"test\", new()\n {\n DatasetId = \"example_dataset\",\n });\n\n var testTable = new Gcp.BigQuery.Table(\"test\", new()\n {\n DeletionProtection = false,\n TableId = \"example_table\",\n DatasetId = test.DatasetId,\n Schema = @\"[\n {\n \"\"name\"\": \"\"data\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"description\"\": \"\"The data\"\"\n }\n]\n\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n BigqueryConfig = new Gcp.PubSub.Inputs.SubscriptionBigqueryConfigArgs\n {\n Table = Output.Tuple(testTable.Project, testTable.DatasetId, testTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"{project}.{datasetId}.{tableId}\";\n }),\n UseTableSchema = true,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n viewer,\n editor,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := projects.NewIAMMember(ctx, \"viewer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.metadataViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teditor, err := projects.NewIAMMember(ctx, \"editor\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataEditor\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := bigquery.NewDataset(ctx, \"test\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_dataset\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTable, err := bigquery.NewTable(ctx, \"test\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tTableId: pulumi.String(\"example_table\"),\n\t\t\tDatasetId: test.DatasetId,\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tBigqueryConfig: \u0026pubsub.SubscriptionBigqueryConfigArgs{\n\t\t\t\tTable: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tUseTableSchema: pulumi.Bool(true),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tviewer,\n\t\t\teditor,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionBigqueryConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var viewer = new IAMMember(\"viewer\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.metadataViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var editor = new IAMMember(\"editor\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.dataEditor\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var test = new Dataset(\"test\", DatasetArgs.builder()\n .datasetId(\"example_dataset\")\n .build());\n\n var testTable = new Table(\"testTable\", TableArgs.builder()\n .deletionProtection(false)\n .tableId(\"example_table\")\n .datasetId(test.datasetId())\n .schema(\"\"\"\n[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n \"\"\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .bigqueryConfig(SubscriptionBigqueryConfigArgs.builder()\n .table(Output.tuple(testTable.project(), testTable.datasetId(), testTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"%s.%s.%s\", project.applyValue(getProjectResult -\u003e getProjectResult),datasetId,tableId);\n }))\n .useTableSchema(true)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n viewer,\n editor)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n bigqueryConfig:\n table: ${testTable.project}.${testTable.datasetId}.${testTable.tableId}\n useTableSchema: true\n options:\n dependson:\n - ${viewer}\n - ${editor}\n viewer:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.metadataViewer\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n editor:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.dataEditor\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n test:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_dataset\n testTable:\n type: gcp:bigquery:Table\n name: test\n properties:\n deletionProtection: false\n tableId: example_table\n datasetId: ${test.datasetId}\n schema: |\n [\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n ]\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Bq Service Account\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst bqWriteServiceAccount = new gcp.serviceaccount.Account(\"bq_write_service_account\", {\n accountId: \"example-bqw\",\n displayName: \"BQ Write Service Account\",\n});\nconst project = gcp.organizations.getProject({});\nconst viewer = new gcp.projects.IAMMember(\"viewer\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.metadataViewer\",\n member: pulumi.interpolate`serviceAccount:${bqWriteServiceAccount.email}`,\n});\nconst editor = new gcp.projects.IAMMember(\"editor\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.dataEditor\",\n member: pulumi.interpolate`serviceAccount:${bqWriteServiceAccount.email}`,\n});\nconst test = new gcp.bigquery.Dataset(\"test\", {datasetId: \"example_dataset\"});\nconst testTable = new gcp.bigquery.Table(\"test\", {\n deletionProtection: false,\n tableId: \"example_table\",\n datasetId: test.datasetId,\n schema: `[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n bigqueryConfig: {\n table: pulumi.interpolate`${testTable.project}.${testTable.datasetId}.${testTable.tableId}`,\n serviceAccountEmail: bqWriteServiceAccount.email,\n },\n}, {\n dependsOn: [\n bqWriteServiceAccount,\n viewer,\n editor,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nbq_write_service_account = gcp.serviceaccount.Account(\"bq_write_service_account\",\n account_id=\"example-bqw\",\n display_name=\"BQ Write Service Account\")\nproject = gcp.organizations.get_project()\nviewer = gcp.projects.IAMMember(\"viewer\",\n project=project.project_id,\n role=\"roles/bigquery.metadataViewer\",\n member=bq_write_service_account.email.apply(lambda email: f\"serviceAccount:{email}\"))\neditor = gcp.projects.IAMMember(\"editor\",\n project=project.project_id,\n role=\"roles/bigquery.dataEditor\",\n member=bq_write_service_account.email.apply(lambda email: f\"serviceAccount:{email}\"))\ntest = gcp.bigquery.Dataset(\"test\", dataset_id=\"example_dataset\")\ntest_table = gcp.bigquery.Table(\"test\",\n deletion_protection=False,\n table_id=\"example_table\",\n dataset_id=test.dataset_id,\n schema=\"\"\"[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n\"\"\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n bigquery_config={\n \"table\": pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f\"{project}.{dataset_id}.{table_id}\"),\n \"service_account_email\": bq_write_service_account.email,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n bq_write_service_account,\n viewer,\n editor,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var bqWriteServiceAccount = new Gcp.ServiceAccount.Account(\"bq_write_service_account\", new()\n {\n AccountId = \"example-bqw\",\n DisplayName = \"BQ Write Service Account\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var viewer = new Gcp.Projects.IAMMember(\"viewer\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.metadataViewer\",\n Member = bqWriteServiceAccount.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var editor = new Gcp.Projects.IAMMember(\"editor\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.dataEditor\",\n Member = bqWriteServiceAccount.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var test = new Gcp.BigQuery.Dataset(\"test\", new()\n {\n DatasetId = \"example_dataset\",\n });\n\n var testTable = new Gcp.BigQuery.Table(\"test\", new()\n {\n DeletionProtection = false,\n TableId = \"example_table\",\n DatasetId = test.DatasetId,\n Schema = @\"[\n {\n \"\"name\"\": \"\"data\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"description\"\": \"\"The data\"\"\n }\n]\n\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n BigqueryConfig = new Gcp.PubSub.Inputs.SubscriptionBigqueryConfigArgs\n {\n Table = Output.Tuple(testTable.Project, testTable.DatasetId, testTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"{project}.{datasetId}.{tableId}\";\n }),\n ServiceAccountEmail = bqWriteServiceAccount.Email,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n bqWriteServiceAccount,\n viewer,\n editor,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbqWriteServiceAccount, err := serviceaccount.NewAccount(ctx, \"bq_write_service_account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"example-bqw\"),\n\t\t\tDisplayName: pulumi.String(\"BQ Write Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := projects.NewIAMMember(ctx, \"viewer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.metadataViewer\"),\n\t\t\tMember: bqWriteServiceAccount.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teditor, err := projects.NewIAMMember(ctx, \"editor\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataEditor\"),\n\t\t\tMember: bqWriteServiceAccount.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := bigquery.NewDataset(ctx, \"test\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_dataset\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTable, err := bigquery.NewTable(ctx, \"test\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tTableId: pulumi.String(\"example_table\"),\n\t\t\tDatasetId: test.DatasetId,\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tBigqueryConfig: \u0026pubsub.SubscriptionBigqueryConfigArgs{\n\t\t\t\tTable: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tServiceAccountEmail: bqWriteServiceAccount.Email,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbqWriteServiceAccount,\n\t\t\tviewer,\n\t\t\teditor,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionBigqueryConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var bqWriteServiceAccount = new Account(\"bqWriteServiceAccount\", AccountArgs.builder()\n .accountId(\"example-bqw\")\n .displayName(\"BQ Write Service Account\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var viewer = new IAMMember(\"viewer\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.metadataViewer\")\n .member(bqWriteServiceAccount.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var editor = new IAMMember(\"editor\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.dataEditor\")\n .member(bqWriteServiceAccount.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var test = new Dataset(\"test\", DatasetArgs.builder()\n .datasetId(\"example_dataset\")\n .build());\n\n var testTable = new Table(\"testTable\", TableArgs.builder()\n .deletionProtection(false)\n .tableId(\"example_table\")\n .datasetId(test.datasetId())\n .schema(\"\"\"\n[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n \"\"\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .bigqueryConfig(SubscriptionBigqueryConfigArgs.builder()\n .table(Output.tuple(testTable.project(), testTable.datasetId(), testTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"%s.%s.%s\", project.applyValue(getProjectResult -\u003e getProjectResult),datasetId,tableId);\n }))\n .serviceAccountEmail(bqWriteServiceAccount.email())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n bqWriteServiceAccount,\n viewer,\n editor)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n bigqueryConfig:\n table: ${testTable.project}.${testTable.datasetId}.${testTable.tableId}\n serviceAccountEmail: ${bqWriteServiceAccount.email}\n options:\n dependson:\n - ${bqWriteServiceAccount}\n - ${viewer}\n - ${editor}\n bqWriteServiceAccount:\n type: gcp:serviceaccount:Account\n name: bq_write_service_account\n properties:\n accountId: example-bqw\n displayName: BQ Write Service Account\n viewer:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.metadataViewer\n member: serviceAccount:${bqWriteServiceAccount.email}\n editor:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.dataEditor\n member: serviceAccount:${bqWriteServiceAccount.email}\n test:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_dataset\n testTable:\n type: gcp:bigquery:Table\n name: test\n properties:\n deletionProtection: false\n tableId: example_table\n datasetId: ${test.datasetId}\n schema: |\n [\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n ]\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Cloudstorage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.storage.Bucket(\"example\", {\n name: \"example-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst exampleTopic = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst admin = new gcp.storage.BucketIAMMember(\"admin\", {\n bucket: example.name,\n role: \"roles/storage.admin\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: exampleTopic.id,\n cloudStorageConfig: {\n bucket: example.name,\n filenamePrefix: \"pre-\",\n filenameSuffix: \"-_79169\",\n filenameDatetimeFormat: \"YYYY-MM-DD/hh_mm_ssZ\",\n maxBytes: 1000,\n maxDuration: \"300s\",\n },\n}, {\n dependsOn: [\n example,\n admin,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.storage.Bucket(\"example\",\n name=\"example-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nexample_topic = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nadmin = gcp.storage.BucketIAMMember(\"admin\",\n bucket=example.name,\n role=\"roles/storage.admin\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example_topic.id,\n cloud_storage_config={\n \"bucket\": example.name,\n \"filename_prefix\": \"pre-\",\n \"filename_suffix\": \"-_79169\",\n \"filename_datetime_format\": \"YYYY-MM-DD/hh_mm_ssZ\",\n \"max_bytes\": 1000,\n \"max_duration\": \"300s\",\n },\n opts = pulumi.ResourceOptions(depends_on=[\n example,\n admin,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.Storage.Bucket(\"example\", new()\n {\n Name = \"example-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var exampleTopic = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var admin = new Gcp.Storage.BucketIAMMember(\"admin\", new()\n {\n Bucket = example.Name,\n Role = \"roles/storage.admin\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = exampleTopic.Id,\n CloudStorageConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigArgs\n {\n Bucket = example.Name,\n FilenamePrefix = \"pre-\",\n FilenameSuffix = \"-_79169\",\n FilenameDatetimeFormat = \"YYYY-MM-DD/hh_mm_ssZ\",\n MaxBytes = 1000,\n MaxDuration = \"300s\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n example,\n admin,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.NewBucket(ctx, \"example\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"example-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := storage.NewBucketIAMMember(ctx, \"admin\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: example.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.admin\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: exampleTopic.ID(),\n\t\t\tCloudStorageConfig: \u0026pubsub.SubscriptionCloudStorageConfigArgs{\n\t\t\t\tBucket: example.Name,\n\t\t\t\tFilenamePrefix: pulumi.String(\"pre-\"),\n\t\t\t\tFilenameSuffix: pulumi.String(\"-_79169\"),\n\t\t\t\tFilenameDatetimeFormat: pulumi.String(\"YYYY-MM-DD/hh_mm_ssZ\"),\n\t\t\t\tMaxBytes: pulumi.Int(1000),\n\t\t\t\tMaxDuration: pulumi.String(\"300s\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\n\t\t\tadmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Bucket(\"example\", BucketArgs.builder()\n .name(\"example-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var admin = new BucketIAMMember(\"admin\", BucketIAMMemberArgs.builder()\n .bucket(example.name())\n .role(\"roles/storage.admin\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(exampleTopic.id())\n .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()\n .bucket(example.name())\n .filenamePrefix(\"pre-\")\n .filenameSuffix(\"-_79169\")\n .filenameDatetimeFormat(\"YYYY-MM-DD/hh_mm_ssZ\")\n .maxBytes(1000)\n .maxDuration(\"300s\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n example,\n admin)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:storage:Bucket\n properties:\n name: example-bucket\n location: US\n uniformBucketLevelAccess: true\n exampleTopic:\n type: gcp:pubsub:Topic\n name: example\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${exampleTopic.id}\n cloudStorageConfig:\n bucket: ${example.name}\n filenamePrefix: pre-\n filenameSuffix: -_79169\n filenameDatetimeFormat: YYYY-MM-DD/hh_mm_ssZ\n maxBytes: 1000\n maxDuration: 300s\n options:\n dependson:\n - ${example}\n - ${admin}\n admin:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${example.name}\n role: roles/storage.admin\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Cloudstorage Avro\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.storage.Bucket(\"example\", {\n name: \"example-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst exampleTopic = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst admin = new gcp.storage.BucketIAMMember(\"admin\", {\n bucket: example.name,\n role: \"roles/storage.admin\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: exampleTopic.id,\n cloudStorageConfig: {\n bucket: example.name,\n filenamePrefix: \"pre-\",\n filenameSuffix: \"-_56529\",\n filenameDatetimeFormat: \"YYYY-MM-DD/hh_mm_ssZ\",\n maxBytes: 1000,\n maxDuration: \"300s\",\n avroConfig: {\n writeMetadata: true,\n },\n },\n}, {\n dependsOn: [\n example,\n admin,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.storage.Bucket(\"example\",\n name=\"example-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nexample_topic = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nadmin = gcp.storage.BucketIAMMember(\"admin\",\n bucket=example.name,\n role=\"roles/storage.admin\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example_topic.id,\n cloud_storage_config={\n \"bucket\": example.name,\n \"filename_prefix\": \"pre-\",\n \"filename_suffix\": \"-_56529\",\n \"filename_datetime_format\": \"YYYY-MM-DD/hh_mm_ssZ\",\n \"max_bytes\": 1000,\n \"max_duration\": \"300s\",\n \"avro_config\": {\n \"write_metadata\": True,\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[\n example,\n admin,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.Storage.Bucket(\"example\", new()\n {\n Name = \"example-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var exampleTopic = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var admin = new Gcp.Storage.BucketIAMMember(\"admin\", new()\n {\n Bucket = example.Name,\n Role = \"roles/storage.admin\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = exampleTopic.Id,\n CloudStorageConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigArgs\n {\n Bucket = example.Name,\n FilenamePrefix = \"pre-\",\n FilenameSuffix = \"-_56529\",\n FilenameDatetimeFormat = \"YYYY-MM-DD/hh_mm_ssZ\",\n MaxBytes = 1000,\n MaxDuration = \"300s\",\n AvroConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigAvroConfigArgs\n {\n WriteMetadata = true,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n example,\n admin,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.NewBucket(ctx, \"example\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"example-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := storage.NewBucketIAMMember(ctx, \"admin\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: example.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.admin\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: exampleTopic.ID(),\n\t\t\tCloudStorageConfig: \u0026pubsub.SubscriptionCloudStorageConfigArgs{\n\t\t\t\tBucket: example.Name,\n\t\t\t\tFilenamePrefix: pulumi.String(\"pre-\"),\n\t\t\t\tFilenameSuffix: pulumi.String(\"-_56529\"),\n\t\t\t\tFilenameDatetimeFormat: pulumi.String(\"YYYY-MM-DD/hh_mm_ssZ\"),\n\t\t\t\tMaxBytes: pulumi.Int(1000),\n\t\t\t\tMaxDuration: pulumi.String(\"300s\"),\n\t\t\t\tAvroConfig: \u0026pubsub.SubscriptionCloudStorageConfigAvroConfigArgs{\n\t\t\t\t\tWriteMetadata: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\n\t\t\tadmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigAvroConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Bucket(\"example\", BucketArgs.builder()\n .name(\"example-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var admin = new BucketIAMMember(\"admin\", BucketIAMMemberArgs.builder()\n .bucket(example.name())\n .role(\"roles/storage.admin\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(exampleTopic.id())\n .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()\n .bucket(example.name())\n .filenamePrefix(\"pre-\")\n .filenameSuffix(\"-_56529\")\n .filenameDatetimeFormat(\"YYYY-MM-DD/hh_mm_ssZ\")\n .maxBytes(1000)\n .maxDuration(\"300s\")\n .avroConfig(SubscriptionCloudStorageConfigAvroConfigArgs.builder()\n .writeMetadata(true)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n example,\n admin)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:storage:Bucket\n properties:\n name: example-bucket\n location: US\n uniformBucketLevelAccess: true\n exampleTopic:\n type: gcp:pubsub:Topic\n name: example\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${exampleTopic.id}\n cloudStorageConfig:\n bucket: ${example.name}\n filenamePrefix: pre-\n filenameSuffix: -_56529\n filenameDatetimeFormat: YYYY-MM-DD/hh_mm_ssZ\n maxBytes: 1000\n maxDuration: 300s\n avroConfig:\n writeMetadata: true\n options:\n dependson:\n - ${example}\n - ${admin}\n admin:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${example.name}\n role: roles/storage.admin\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Cloudstorage Service Account\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.storage.Bucket(\"example\", {\n name: \"example-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst exampleTopic = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst storageWriteServiceAccount = new gcp.serviceaccount.Account(\"storage_write_service_account\", {\n accountId: \"example-stw\",\n displayName: \"Storage Write Service Account\",\n});\nconst admin = new gcp.storage.BucketIAMMember(\"admin\", {\n bucket: example.name,\n role: \"roles/storage.admin\",\n member: pulumi.interpolate`serviceAccount:${storageWriteServiceAccount.email}`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: exampleTopic.id,\n cloudStorageConfig: {\n bucket: example.name,\n filenamePrefix: \"pre-\",\n filenameSuffix: \"-_75413\",\n filenameDatetimeFormat: \"YYYY-MM-DD/hh_mm_ssZ\",\n maxBytes: 1000,\n maxDuration: \"300s\",\n serviceAccountEmail: storageWriteServiceAccount.email,\n },\n}, {\n dependsOn: [\n storageWriteServiceAccount,\n example,\n admin,\n ],\n});\nconst project = gcp.organizations.getProject({});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.storage.Bucket(\"example\",\n name=\"example-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nexample_topic = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nstorage_write_service_account = gcp.serviceaccount.Account(\"storage_write_service_account\",\n account_id=\"example-stw\",\n display_name=\"Storage Write Service Account\")\nadmin = gcp.storage.BucketIAMMember(\"admin\",\n bucket=example.name,\n role=\"roles/storage.admin\",\n member=storage_write_service_account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example_topic.id,\n cloud_storage_config={\n \"bucket\": example.name,\n \"filename_prefix\": \"pre-\",\n \"filename_suffix\": \"-_75413\",\n \"filename_datetime_format\": \"YYYY-MM-DD/hh_mm_ssZ\",\n \"max_bytes\": 1000,\n \"max_duration\": \"300s\",\n \"service_account_email\": storage_write_service_account.email,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n storage_write_service_account,\n example,\n admin,\n ]))\nproject = gcp.organizations.get_project()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.Storage.Bucket(\"example\", new()\n {\n Name = \"example-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var exampleTopic = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var storageWriteServiceAccount = new Gcp.ServiceAccount.Account(\"storage_write_service_account\", new()\n {\n AccountId = \"example-stw\",\n DisplayName = \"Storage Write Service Account\",\n });\n\n var admin = new Gcp.Storage.BucketIAMMember(\"admin\", new()\n {\n Bucket = example.Name,\n Role = \"roles/storage.admin\",\n Member = storageWriteServiceAccount.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = exampleTopic.Id,\n CloudStorageConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigArgs\n {\n Bucket = example.Name,\n FilenamePrefix = \"pre-\",\n FilenameSuffix = \"-_75413\",\n FilenameDatetimeFormat = \"YYYY-MM-DD/hh_mm_ssZ\",\n MaxBytes = 1000,\n MaxDuration = \"300s\",\n ServiceAccountEmail = storageWriteServiceAccount.Email,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n storageWriteServiceAccount,\n example,\n admin,\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.NewBucket(ctx, \"example\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"example-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstorageWriteServiceAccount, err := serviceaccount.NewAccount(ctx, \"storage_write_service_account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"example-stw\"),\n\t\t\tDisplayName: pulumi.String(\"Storage Write Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := storage.NewBucketIAMMember(ctx, \"admin\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: example.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.admin\"),\n\t\t\tMember: storageWriteServiceAccount.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: exampleTopic.ID(),\n\t\t\tCloudStorageConfig: \u0026pubsub.SubscriptionCloudStorageConfigArgs{\n\t\t\t\tBucket: example.Name,\n\t\t\t\tFilenamePrefix: pulumi.String(\"pre-\"),\n\t\t\t\tFilenameSuffix: pulumi.String(\"-_75413\"),\n\t\t\t\tFilenameDatetimeFormat: pulumi.String(\"YYYY-MM-DD/hh_mm_ssZ\"),\n\t\t\t\tMaxBytes: pulumi.Int(1000),\n\t\t\t\tMaxDuration: pulumi.String(\"300s\"),\n\t\t\t\tServiceAccountEmail: storageWriteServiceAccount.Email,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tstorageWriteServiceAccount,\n\t\t\texample,\n\t\t\tadmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Bucket(\"example\", BucketArgs.builder()\n .name(\"example-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var storageWriteServiceAccount = new Account(\"storageWriteServiceAccount\", AccountArgs.builder()\n .accountId(\"example-stw\")\n .displayName(\"Storage Write Service Account\")\n .build());\n\n var admin = new BucketIAMMember(\"admin\", BucketIAMMemberArgs.builder()\n .bucket(example.name())\n .role(\"roles/storage.admin\")\n .member(storageWriteServiceAccount.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(exampleTopic.id())\n .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()\n .bucket(example.name())\n .filenamePrefix(\"pre-\")\n .filenameSuffix(\"-_75413\")\n .filenameDatetimeFormat(\"YYYY-MM-DD/hh_mm_ssZ\")\n .maxBytes(1000)\n .maxDuration(\"300s\")\n .serviceAccountEmail(storageWriteServiceAccount.email())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n storageWriteServiceAccount,\n example,\n admin)\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:storage:Bucket\n properties:\n name: example-bucket\n location: US\n uniformBucketLevelAccess: true\n exampleTopic:\n type: gcp:pubsub:Topic\n name: example\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${exampleTopic.id}\n cloudStorageConfig:\n bucket: ${example.name}\n filenamePrefix: pre-\n filenameSuffix: -_75413\n filenameDatetimeFormat: YYYY-MM-DD/hh_mm_ssZ\n maxBytes: 1000\n maxDuration: 300s\n serviceAccountEmail: ${storageWriteServiceAccount.email}\n options:\n dependson:\n - ${storageWriteServiceAccount}\n - ${example}\n - ${admin}\n storageWriteServiceAccount:\n type: gcp:serviceaccount:Account\n name: storage_write_service_account\n properties:\n accountId: example-stw\n displayName: Storage Write Service Account\n admin:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${example.name}\n role: roles/storage.admin\n member: serviceAccount:${storageWriteServiceAccount.email}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubscription can be imported using any of these accepted formats:\n\n* `projects/{{project}}/subscriptions/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Subscription can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:pubsub/subscription:Subscription default projects/{{project}}/subscriptions/{{name}}\n```\n\n```sh\n$ pulumi import gcp:pubsub/subscription:Subscription default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:pubsub/subscription:Subscription default {{name}}\n```\n\n", + "description": "A named resource representing the stream of messages from a single,\nspecific topic, to be delivered to the subscribing application.\n\n\nTo get more information about Subscription, see:\n\n* [API documentation](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions)\n* How-to Guides\n * [Managing Subscriptions](https://cloud.google.com/pubsub/docs/admin#managing_subscriptions)\n\n\u003e **Note:** You can retrieve the email of the Google Managed Pub/Sub Service Account used for forwarding\nby using the `gcp.projects.ServiceIdentity` resource.\n\n## Example Usage\n\n### Pubsub Subscription Push\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n ackDeadlineSeconds: 20,\n labels: {\n foo: \"bar\",\n },\n pushConfig: {\n pushEndpoint: \"https://example.com/push\",\n attributes: {\n \"x-goog-version\": \"v1\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n ack_deadline_seconds=20,\n labels={\n \"foo\": \"bar\",\n },\n push_config={\n \"push_endpoint\": \"https://example.com/push\",\n \"attributes\": {\n \"x_goog_version\": \"v1\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n AckDeadlineSeconds = 20,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n PushConfig = new Gcp.PubSub.Inputs.SubscriptionPushConfigArgs\n {\n PushEndpoint = \"https://example.com/push\",\n Attributes = \n {\n { \"x-goog-version\", \"v1\" },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tAckDeadlineSeconds: pulumi.Int(20),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tPushConfig: \u0026pubsub.SubscriptionPushConfigArgs{\n\t\t\t\tPushEndpoint: pulumi.String(\"https://example.com/push\"),\n\t\t\t\tAttributes: pulumi.StringMap{\n\t\t\t\t\t\"x-goog-version\": pulumi.String(\"v1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionPushConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .ackDeadlineSeconds(20)\n .labels(Map.of(\"foo\", \"bar\"))\n .pushConfig(SubscriptionPushConfigArgs.builder()\n .pushEndpoint(\"https://example.com/push\")\n .attributes(Map.of(\"x-goog-version\", \"v1\"))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n ackDeadlineSeconds: 20\n labels:\n foo: bar\n pushConfig:\n pushEndpoint: https://example.com/push\n attributes:\n x-goog-version: v1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Pull\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n labels: {\n foo: \"bar\",\n },\n messageRetentionDuration: \"1200s\",\n retainAckedMessages: true,\n ackDeadlineSeconds: 20,\n expirationPolicy: {\n ttl: \"300000.5s\",\n },\n retryPolicy: {\n minimumBackoff: \"10s\",\n },\n enableMessageOrdering: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n labels={\n \"foo\": \"bar\",\n },\n message_retention_duration=\"1200s\",\n retain_acked_messages=True,\n ack_deadline_seconds=20,\n expiration_policy={\n \"ttl\": \"300000.5s\",\n },\n retry_policy={\n \"minimum_backoff\": \"10s\",\n },\n enable_message_ordering=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n MessageRetentionDuration = \"1200s\",\n RetainAckedMessages = true,\n AckDeadlineSeconds = 20,\n ExpirationPolicy = new Gcp.PubSub.Inputs.SubscriptionExpirationPolicyArgs\n {\n Ttl = \"300000.5s\",\n },\n RetryPolicy = new Gcp.PubSub.Inputs.SubscriptionRetryPolicyArgs\n {\n MinimumBackoff = \"10s\",\n },\n EnableMessageOrdering = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tMessageRetentionDuration: pulumi.String(\"1200s\"),\n\t\t\tRetainAckedMessages: pulumi.Bool(true),\n\t\t\tAckDeadlineSeconds: pulumi.Int(20),\n\t\t\tExpirationPolicy: \u0026pubsub.SubscriptionExpirationPolicyArgs{\n\t\t\t\tTtl: pulumi.String(\"300000.5s\"),\n\t\t\t},\n\t\t\tRetryPolicy: \u0026pubsub.SubscriptionRetryPolicyArgs{\n\t\t\t\tMinimumBackoff: pulumi.String(\"10s\"),\n\t\t\t},\n\t\t\tEnableMessageOrdering: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionExpirationPolicyArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionRetryPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .labels(Map.of(\"foo\", \"bar\"))\n .messageRetentionDuration(\"1200s\")\n .retainAckedMessages(true)\n .ackDeadlineSeconds(20)\n .expirationPolicy(SubscriptionExpirationPolicyArgs.builder()\n .ttl(\"300000.5s\")\n .build())\n .retryPolicy(SubscriptionRetryPolicyArgs.builder()\n .minimumBackoff(\"10s\")\n .build())\n .enableMessageOrdering(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n labels:\n foo: bar\n messageRetentionDuration: 1200s\n retainAckedMessages: true\n ackDeadlineSeconds: 20\n expirationPolicy:\n ttl: 300000.5s\n retryPolicy:\n minimumBackoff: 10s\n enableMessageOrdering: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Dead Letter\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst exampleDeadLetter = new gcp.pubsub.Topic(\"example_dead_letter\", {name: \"example-topic-dead-letter\"});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n deadLetterPolicy: {\n deadLetterTopic: exampleDeadLetter.id,\n maxDeliveryAttempts: 10,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nexample_dead_letter = gcp.pubsub.Topic(\"example_dead_letter\", name=\"example-topic-dead-letter\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n dead_letter_policy={\n \"dead_letter_topic\": example_dead_letter.id,\n \"max_delivery_attempts\": 10,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var exampleDeadLetter = new Gcp.PubSub.Topic(\"example_dead_letter\", new()\n {\n Name = \"example-topic-dead-letter\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n DeadLetterPolicy = new Gcp.PubSub.Inputs.SubscriptionDeadLetterPolicyArgs\n {\n DeadLetterTopic = exampleDeadLetter.Id,\n MaxDeliveryAttempts = 10,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDeadLetter, err := pubsub.NewTopic(ctx, \"example_dead_letter\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic-dead-letter\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tDeadLetterPolicy: \u0026pubsub.SubscriptionDeadLetterPolicyArgs{\n\t\t\t\tDeadLetterTopic: exampleDeadLetter.ID(),\n\t\t\t\tMaxDeliveryAttempts: pulumi.Int(10),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionDeadLetterPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var exampleDeadLetter = new Topic(\"exampleDeadLetter\", TopicArgs.builder()\n .name(\"example-topic-dead-letter\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .deadLetterPolicy(SubscriptionDeadLetterPolicyArgs.builder()\n .deadLetterTopic(exampleDeadLetter.id())\n .maxDeliveryAttempts(10)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleDeadLetter:\n type: gcp:pubsub:Topic\n name: example_dead_letter\n properties:\n name: example-topic-dead-letter\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n deadLetterPolicy:\n deadLetterTopic: ${exampleDeadLetter.id}\n maxDeliveryAttempts: 10\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Bq\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst viewer = new gcp.projects.IAMMember(\"viewer\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.metadataViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst editor = new gcp.projects.IAMMember(\"editor\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.dataEditor\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst test = new gcp.bigquery.Dataset(\"test\", {datasetId: \"example_dataset\"});\nconst testTable = new gcp.bigquery.Table(\"test\", {\n deletionProtection: false,\n tableId: \"example_table\",\n datasetId: test.datasetId,\n schema: `[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n bigqueryConfig: {\n table: pulumi.interpolate`${testTable.project}.${testTable.datasetId}.${testTable.tableId}`,\n },\n}, {\n dependsOn: [\n viewer,\n editor,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nviewer = gcp.projects.IAMMember(\"viewer\",\n project=project.project_id,\n role=\"roles/bigquery.metadataViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\neditor = gcp.projects.IAMMember(\"editor\",\n project=project.project_id,\n role=\"roles/bigquery.dataEditor\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\ntest = gcp.bigquery.Dataset(\"test\", dataset_id=\"example_dataset\")\ntest_table = gcp.bigquery.Table(\"test\",\n deletion_protection=False,\n table_id=\"example_table\",\n dataset_id=test.dataset_id,\n schema=\"\"\"[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n\"\"\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n bigquery_config={\n \"table\": pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f\"{project}.{dataset_id}.{table_id}\"),\n },\n opts = pulumi.ResourceOptions(depends_on=[\n viewer,\n editor,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var viewer = new Gcp.Projects.IAMMember(\"viewer\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.metadataViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var editor = new Gcp.Projects.IAMMember(\"editor\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.dataEditor\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var test = new Gcp.BigQuery.Dataset(\"test\", new()\n {\n DatasetId = \"example_dataset\",\n });\n\n var testTable = new Gcp.BigQuery.Table(\"test\", new()\n {\n DeletionProtection = false,\n TableId = \"example_table\",\n DatasetId = test.DatasetId,\n Schema = @\"[\n {\n \"\"name\"\": \"\"data\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"description\"\": \"\"The data\"\"\n }\n]\n\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n BigqueryConfig = new Gcp.PubSub.Inputs.SubscriptionBigqueryConfigArgs\n {\n Table = Output.Tuple(testTable.Project, testTable.DatasetId, testTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"{project}.{datasetId}.{tableId}\";\n }),\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n viewer,\n editor,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := projects.NewIAMMember(ctx, \"viewer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.metadataViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teditor, err := projects.NewIAMMember(ctx, \"editor\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataEditor\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := bigquery.NewDataset(ctx, \"test\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_dataset\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTable, err := bigquery.NewTable(ctx, \"test\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tTableId: pulumi.String(\"example_table\"),\n\t\t\tDatasetId: test.DatasetId,\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tBigqueryConfig: \u0026pubsub.SubscriptionBigqueryConfigArgs{\n\t\t\t\tTable: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tviewer,\n\t\t\teditor,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionBigqueryConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var viewer = new IAMMember(\"viewer\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.metadataViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var editor = new IAMMember(\"editor\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.dataEditor\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var test = new Dataset(\"test\", DatasetArgs.builder()\n .datasetId(\"example_dataset\")\n .build());\n\n var testTable = new Table(\"testTable\", TableArgs.builder()\n .deletionProtection(false)\n .tableId(\"example_table\")\n .datasetId(test.datasetId())\n .schema(\"\"\"\n[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n \"\"\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .bigqueryConfig(SubscriptionBigqueryConfigArgs.builder()\n .table(Output.tuple(testTable.project(), testTable.datasetId(), testTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"%s.%s.%s\", project.applyValue(getProjectResult -\u003e getProjectResult),datasetId,tableId);\n }))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n viewer,\n editor)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n bigqueryConfig:\n table: ${testTable.project}.${testTable.datasetId}.${testTable.tableId}\n options:\n dependson:\n - ${viewer}\n - ${editor}\n viewer:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.metadataViewer\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n editor:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.dataEditor\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n test:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_dataset\n testTable:\n type: gcp:bigquery:Table\n name: test\n properties:\n deletionProtection: false\n tableId: example_table\n datasetId: ${test.datasetId}\n schema: |\n [\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n ]\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Bq Table Schema\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst viewer = new gcp.projects.IAMMember(\"viewer\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.metadataViewer\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst editor = new gcp.projects.IAMMember(\"editor\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.dataEditor\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst test = new gcp.bigquery.Dataset(\"test\", {datasetId: \"example_dataset\"});\nconst testTable = new gcp.bigquery.Table(\"test\", {\n deletionProtection: false,\n tableId: \"example_table\",\n datasetId: test.datasetId,\n schema: `[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n bigqueryConfig: {\n table: pulumi.interpolate`${testTable.project}.${testTable.datasetId}.${testTable.tableId}`,\n useTableSchema: true,\n },\n}, {\n dependsOn: [\n viewer,\n editor,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nviewer = gcp.projects.IAMMember(\"viewer\",\n project=project.project_id,\n role=\"roles/bigquery.metadataViewer\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\neditor = gcp.projects.IAMMember(\"editor\",\n project=project.project_id,\n role=\"roles/bigquery.dataEditor\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\ntest = gcp.bigquery.Dataset(\"test\", dataset_id=\"example_dataset\")\ntest_table = gcp.bigquery.Table(\"test\",\n deletion_protection=False,\n table_id=\"example_table\",\n dataset_id=test.dataset_id,\n schema=\"\"\"[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n\"\"\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n bigquery_config={\n \"table\": pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f\"{project}.{dataset_id}.{table_id}\"),\n \"use_table_schema\": True,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n viewer,\n editor,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var viewer = new Gcp.Projects.IAMMember(\"viewer\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.metadataViewer\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var editor = new Gcp.Projects.IAMMember(\"editor\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.dataEditor\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var test = new Gcp.BigQuery.Dataset(\"test\", new()\n {\n DatasetId = \"example_dataset\",\n });\n\n var testTable = new Gcp.BigQuery.Table(\"test\", new()\n {\n DeletionProtection = false,\n TableId = \"example_table\",\n DatasetId = test.DatasetId,\n Schema = @\"[\n {\n \"\"name\"\": \"\"data\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"description\"\": \"\"The data\"\"\n }\n]\n\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n BigqueryConfig = new Gcp.PubSub.Inputs.SubscriptionBigqueryConfigArgs\n {\n Table = Output.Tuple(testTable.Project, testTable.DatasetId, testTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"{project}.{datasetId}.{tableId}\";\n }),\n UseTableSchema = true,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n viewer,\n editor,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := projects.NewIAMMember(ctx, \"viewer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.metadataViewer\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teditor, err := projects.NewIAMMember(ctx, \"editor\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataEditor\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := bigquery.NewDataset(ctx, \"test\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_dataset\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTable, err := bigquery.NewTable(ctx, \"test\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tTableId: pulumi.String(\"example_table\"),\n\t\t\tDatasetId: test.DatasetId,\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tBigqueryConfig: \u0026pubsub.SubscriptionBigqueryConfigArgs{\n\t\t\t\tTable: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tUseTableSchema: pulumi.Bool(true),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tviewer,\n\t\t\teditor,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionBigqueryConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var viewer = new IAMMember(\"viewer\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.metadataViewer\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var editor = new IAMMember(\"editor\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.dataEditor\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var test = new Dataset(\"test\", DatasetArgs.builder()\n .datasetId(\"example_dataset\")\n .build());\n\n var testTable = new Table(\"testTable\", TableArgs.builder()\n .deletionProtection(false)\n .tableId(\"example_table\")\n .datasetId(test.datasetId())\n .schema(\"\"\"\n[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n \"\"\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .bigqueryConfig(SubscriptionBigqueryConfigArgs.builder()\n .table(Output.tuple(testTable.project(), testTable.datasetId(), testTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"%s.%s.%s\", project.applyValue(getProjectResult -\u003e getProjectResult),datasetId,tableId);\n }))\n .useTableSchema(true)\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n viewer,\n editor)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n bigqueryConfig:\n table: ${testTable.project}.${testTable.datasetId}.${testTable.tableId}\n useTableSchema: true\n options:\n dependson:\n - ${viewer}\n - ${editor}\n viewer:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.metadataViewer\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n editor:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.dataEditor\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\n test:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_dataset\n testTable:\n type: gcp:bigquery:Table\n name: test\n properties:\n deletionProtection: false\n tableId: example_table\n datasetId: ${test.datasetId}\n schema: |\n [\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n ]\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Bq Service Account\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst bqWriteServiceAccount = new gcp.serviceaccount.Account(\"bq_write_service_account\", {\n accountId: \"example-bqw\",\n displayName: \"BQ Write Service Account\",\n});\nconst project = gcp.organizations.getProject({});\nconst viewer = new gcp.projects.IAMMember(\"viewer\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.metadataViewer\",\n member: pulumi.interpolate`serviceAccount:${bqWriteServiceAccount.email}`,\n});\nconst editor = new gcp.projects.IAMMember(\"editor\", {\n project: project.then(project =\u003e project.projectId),\n role: \"roles/bigquery.dataEditor\",\n member: pulumi.interpolate`serviceAccount:${bqWriteServiceAccount.email}`,\n});\nconst test = new gcp.bigquery.Dataset(\"test\", {datasetId: \"example_dataset\"});\nconst testTable = new gcp.bigquery.Table(\"test\", {\n deletionProtection: false,\n tableId: \"example_table\",\n datasetId: test.datasetId,\n schema: `[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: example.id,\n bigqueryConfig: {\n table: pulumi.interpolate`${testTable.project}.${testTable.datasetId}.${testTable.tableId}`,\n serviceAccountEmail: bqWriteServiceAccount.email,\n },\n}, {\n dependsOn: [\n bqWriteServiceAccount,\n viewer,\n editor,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nbq_write_service_account = gcp.serviceaccount.Account(\"bq_write_service_account\",\n account_id=\"example-bqw\",\n display_name=\"BQ Write Service Account\")\nproject = gcp.organizations.get_project()\nviewer = gcp.projects.IAMMember(\"viewer\",\n project=project.project_id,\n role=\"roles/bigquery.metadataViewer\",\n member=bq_write_service_account.email.apply(lambda email: f\"serviceAccount:{email}\"))\neditor = gcp.projects.IAMMember(\"editor\",\n project=project.project_id,\n role=\"roles/bigquery.dataEditor\",\n member=bq_write_service_account.email.apply(lambda email: f\"serviceAccount:{email}\"))\ntest = gcp.bigquery.Dataset(\"test\", dataset_id=\"example_dataset\")\ntest_table = gcp.bigquery.Table(\"test\",\n deletion_protection=False,\n table_id=\"example_table\",\n dataset_id=test.dataset_id,\n schema=\"\"\"[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n\"\"\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example.id,\n bigquery_config={\n \"table\": pulumi.Output.all(test_table.project, test_table.dataset_id, test_table.table_id).apply(lambda project, dataset_id, table_id: f\"{project}.{dataset_id}.{table_id}\"),\n \"service_account_email\": bq_write_service_account.email,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n bq_write_service_account,\n viewer,\n editor,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var bqWriteServiceAccount = new Gcp.ServiceAccount.Account(\"bq_write_service_account\", new()\n {\n AccountId = \"example-bqw\",\n DisplayName = \"BQ Write Service Account\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var viewer = new Gcp.Projects.IAMMember(\"viewer\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.metadataViewer\",\n Member = bqWriteServiceAccount.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var editor = new Gcp.Projects.IAMMember(\"editor\", new()\n {\n Project = project.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n Role = \"roles/bigquery.dataEditor\",\n Member = bqWriteServiceAccount.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var test = new Gcp.BigQuery.Dataset(\"test\", new()\n {\n DatasetId = \"example_dataset\",\n });\n\n var testTable = new Gcp.BigQuery.Table(\"test\", new()\n {\n DeletionProtection = false,\n TableId = \"example_table\",\n DatasetId = test.DatasetId,\n Schema = @\"[\n {\n \"\"name\"\": \"\"data\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"description\"\": \"\"The data\"\"\n }\n]\n\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = example.Id,\n BigqueryConfig = new Gcp.PubSub.Inputs.SubscriptionBigqueryConfigArgs\n {\n Table = Output.Tuple(testTable.Project, testTable.DatasetId, testTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"{project}.{datasetId}.{tableId}\";\n }),\n ServiceAccountEmail = bqWriteServiceAccount.Email,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n bqWriteServiceAccount,\n viewer,\n editor,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbqWriteServiceAccount, err := serviceaccount.NewAccount(ctx, \"bq_write_service_account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"example-bqw\"),\n\t\t\tDisplayName: pulumi.String(\"BQ Write Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := projects.NewIAMMember(ctx, \"viewer\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.metadataViewer\"),\n\t\t\tMember: bqWriteServiceAccount.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\teditor, err := projects.NewIAMMember(ctx, \"editor\", \u0026projects.IAMMemberArgs{\n\t\t\tProject: pulumi.String(project.ProjectId),\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataEditor\"),\n\t\t\tMember: bqWriteServiceAccount.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := bigquery.NewDataset(ctx, \"test\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_dataset\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestTable, err := bigquery.NewTable(ctx, \"test\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tTableId: pulumi.String(\"example_table\"),\n\t\t\tDatasetId: test.DatasetId,\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: example.ID(),\n\t\t\tBigqueryConfig: \u0026pubsub.SubscriptionBigqueryConfigArgs{\n\t\t\t\tTable: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tServiceAccountEmail: bqWriteServiceAccount.Email,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tbqWriteServiceAccount,\n\t\t\tviewer,\n\t\t\teditor,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.projects.IAMMember;\nimport com.pulumi.gcp.projects.IAMMemberArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionBigqueryConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Topic(\"example\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var bqWriteServiceAccount = new Account(\"bqWriteServiceAccount\", AccountArgs.builder()\n .accountId(\"example-bqw\")\n .displayName(\"BQ Write Service Account\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var viewer = new IAMMember(\"viewer\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.metadataViewer\")\n .member(bqWriteServiceAccount.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var editor = new IAMMember(\"editor\", IAMMemberArgs.builder()\n .project(project.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .role(\"roles/bigquery.dataEditor\")\n .member(bqWriteServiceAccount.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var test = new Dataset(\"test\", DatasetArgs.builder()\n .datasetId(\"example_dataset\")\n .build());\n\n var testTable = new Table(\"testTable\", TableArgs.builder()\n .deletionProtection(false)\n .tableId(\"example_table\")\n .datasetId(test.datasetId())\n .schema(\"\"\"\n[\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n]\n \"\"\")\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(example.id())\n .bigqueryConfig(SubscriptionBigqueryConfigArgs.builder()\n .table(Output.tuple(testTable.project(), testTable.datasetId(), testTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"%s.%s.%s\", project.applyValue(getProjectResult -\u003e getProjectResult),datasetId,tableId);\n }))\n .serviceAccountEmail(bqWriteServiceAccount.email())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n bqWriteServiceAccount,\n viewer,\n editor)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:pubsub:Topic\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${example.id}\n bigqueryConfig:\n table: ${testTable.project}.${testTable.datasetId}.${testTable.tableId}\n serviceAccountEmail: ${bqWriteServiceAccount.email}\n options:\n dependson:\n - ${bqWriteServiceAccount}\n - ${viewer}\n - ${editor}\n bqWriteServiceAccount:\n type: gcp:serviceaccount:Account\n name: bq_write_service_account\n properties:\n accountId: example-bqw\n displayName: BQ Write Service Account\n viewer:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.metadataViewer\n member: serviceAccount:${bqWriteServiceAccount.email}\n editor:\n type: gcp:projects:IAMMember\n properties:\n project: ${project.projectId}\n role: roles/bigquery.dataEditor\n member: serviceAccount:${bqWriteServiceAccount.email}\n test:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_dataset\n testTable:\n type: gcp:bigquery:Table\n name: test\n properties:\n deletionProtection: false\n tableId: example_table\n datasetId: ${test.datasetId}\n schema: |\n [\n {\n \"name\": \"data\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\",\n \"description\": \"The data\"\n }\n ]\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Cloudstorage\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.storage.Bucket(\"example\", {\n name: \"example-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst exampleTopic = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst admin = new gcp.storage.BucketIAMMember(\"admin\", {\n bucket: example.name,\n role: \"roles/storage.admin\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: exampleTopic.id,\n cloudStorageConfig: {\n bucket: example.name,\n filenamePrefix: \"pre-\",\n filenameSuffix: \"-_91980\",\n filenameDatetimeFormat: \"YYYY-MM-DD/hh_mm_ssZ\",\n maxBytes: 1000,\n maxDuration: \"300s\",\n },\n}, {\n dependsOn: [\n example,\n admin,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.storage.Bucket(\"example\",\n name=\"example-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nexample_topic = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nadmin = gcp.storage.BucketIAMMember(\"admin\",\n bucket=example.name,\n role=\"roles/storage.admin\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example_topic.id,\n cloud_storage_config={\n \"bucket\": example.name,\n \"filename_prefix\": \"pre-\",\n \"filename_suffix\": \"-_91980\",\n \"filename_datetime_format\": \"YYYY-MM-DD/hh_mm_ssZ\",\n \"max_bytes\": 1000,\n \"max_duration\": \"300s\",\n },\n opts = pulumi.ResourceOptions(depends_on=[\n example,\n admin,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.Storage.Bucket(\"example\", new()\n {\n Name = \"example-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var exampleTopic = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var admin = new Gcp.Storage.BucketIAMMember(\"admin\", new()\n {\n Bucket = example.Name,\n Role = \"roles/storage.admin\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = exampleTopic.Id,\n CloudStorageConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigArgs\n {\n Bucket = example.Name,\n FilenamePrefix = \"pre-\",\n FilenameSuffix = \"-_91980\",\n FilenameDatetimeFormat = \"YYYY-MM-DD/hh_mm_ssZ\",\n MaxBytes = 1000,\n MaxDuration = \"300s\",\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n example,\n admin,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.NewBucket(ctx, \"example\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"example-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := storage.NewBucketIAMMember(ctx, \"admin\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: example.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.admin\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: exampleTopic.ID(),\n\t\t\tCloudStorageConfig: \u0026pubsub.SubscriptionCloudStorageConfigArgs{\n\t\t\t\tBucket: example.Name,\n\t\t\t\tFilenamePrefix: pulumi.String(\"pre-\"),\n\t\t\t\tFilenameSuffix: pulumi.String(\"-_91980\"),\n\t\t\t\tFilenameDatetimeFormat: pulumi.String(\"YYYY-MM-DD/hh_mm_ssZ\"),\n\t\t\t\tMaxBytes: pulumi.Int(1000),\n\t\t\t\tMaxDuration: pulumi.String(\"300s\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\n\t\t\tadmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Bucket(\"example\", BucketArgs.builder()\n .name(\"example-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var admin = new BucketIAMMember(\"admin\", BucketIAMMemberArgs.builder()\n .bucket(example.name())\n .role(\"roles/storage.admin\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(exampleTopic.id())\n .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()\n .bucket(example.name())\n .filenamePrefix(\"pre-\")\n .filenameSuffix(\"-_91980\")\n .filenameDatetimeFormat(\"YYYY-MM-DD/hh_mm_ssZ\")\n .maxBytes(1000)\n .maxDuration(\"300s\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n example,\n admin)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:storage:Bucket\n properties:\n name: example-bucket\n location: US\n uniformBucketLevelAccess: true\n exampleTopic:\n type: gcp:pubsub:Topic\n name: example\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${exampleTopic.id}\n cloudStorageConfig:\n bucket: ${example.name}\n filenamePrefix: pre-\n filenameSuffix: -_91980\n filenameDatetimeFormat: YYYY-MM-DD/hh_mm_ssZ\n maxBytes: 1000\n maxDuration: 300s\n options:\n dependson:\n - ${example}\n - ${admin}\n admin:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${example.name}\n role: roles/storage.admin\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Cloudstorage Avro\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.storage.Bucket(\"example\", {\n name: \"example-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst exampleTopic = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst project = gcp.organizations.getProject({});\nconst admin = new gcp.storage.BucketIAMMember(\"admin\", {\n bucket: example.name,\n role: \"roles/storage.admin\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com`),\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: exampleTopic.id,\n cloudStorageConfig: {\n bucket: example.name,\n filenamePrefix: \"pre-\",\n filenameSuffix: \"-_37118\",\n filenameDatetimeFormat: \"YYYY-MM-DD/hh_mm_ssZ\",\n maxBytes: 1000,\n maxDuration: \"300s\",\n avroConfig: {\n writeMetadata: true,\n },\n },\n}, {\n dependsOn: [\n example,\n admin,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.storage.Bucket(\"example\",\n name=\"example-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nexample_topic = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nproject = gcp.organizations.get_project()\nadmin = gcp.storage.BucketIAMMember(\"admin\",\n bucket=example.name,\n role=\"roles/storage.admin\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\")\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example_topic.id,\n cloud_storage_config={\n \"bucket\": example.name,\n \"filename_prefix\": \"pre-\",\n \"filename_suffix\": \"-_37118\",\n \"filename_datetime_format\": \"YYYY-MM-DD/hh_mm_ssZ\",\n \"max_bytes\": 1000,\n \"max_duration\": \"300s\",\n \"avro_config\": {\n \"write_metadata\": True,\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[\n example,\n admin,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.Storage.Bucket(\"example\", new()\n {\n Name = \"example-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var exampleTopic = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var admin = new Gcp.Storage.BucketIAMMember(\"admin\", new()\n {\n Bucket = example.Name,\n Role = \"roles/storage.admin\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-pubsub.iam.gserviceaccount.com\",\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = exampleTopic.Id,\n CloudStorageConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigArgs\n {\n Bucket = example.Name,\n FilenamePrefix = \"pre-\",\n FilenameSuffix = \"-_37118\",\n FilenameDatetimeFormat = \"YYYY-MM-DD/hh_mm_ssZ\",\n MaxBytes = 1000,\n MaxDuration = \"300s\",\n AvroConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigAvroConfigArgs\n {\n WriteMetadata = true,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n example,\n admin,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.NewBucket(ctx, \"example\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"example-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := storage.NewBucketIAMMember(ctx, \"admin\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: example.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.admin\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: exampleTopic.ID(),\n\t\t\tCloudStorageConfig: \u0026pubsub.SubscriptionCloudStorageConfigArgs{\n\t\t\t\tBucket: example.Name,\n\t\t\t\tFilenamePrefix: pulumi.String(\"pre-\"),\n\t\t\t\tFilenameSuffix: pulumi.String(\"-_37118\"),\n\t\t\t\tFilenameDatetimeFormat: pulumi.String(\"YYYY-MM-DD/hh_mm_ssZ\"),\n\t\t\t\tMaxBytes: pulumi.Int(1000),\n\t\t\t\tMaxDuration: pulumi.String(\"300s\"),\n\t\t\t\tAvroConfig: \u0026pubsub.SubscriptionCloudStorageConfigAvroConfigArgs{\n\t\t\t\t\tWriteMetadata: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texample,\n\t\t\tadmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigAvroConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Bucket(\"example\", BucketArgs.builder()\n .name(\"example-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var admin = new BucketIAMMember(\"admin\", BucketIAMMemberArgs.builder()\n .bucket(example.name())\n .role(\"roles/storage.admin\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-pubsub.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(exampleTopic.id())\n .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()\n .bucket(example.name())\n .filenamePrefix(\"pre-\")\n .filenameSuffix(\"-_37118\")\n .filenameDatetimeFormat(\"YYYY-MM-DD/hh_mm_ssZ\")\n .maxBytes(1000)\n .maxDuration(\"300s\")\n .avroConfig(SubscriptionCloudStorageConfigAvroConfigArgs.builder()\n .writeMetadata(true)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n example,\n admin)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:storage:Bucket\n properties:\n name: example-bucket\n location: US\n uniformBucketLevelAccess: true\n exampleTopic:\n type: gcp:pubsub:Topic\n name: example\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${exampleTopic.id}\n cloudStorageConfig:\n bucket: ${example.name}\n filenamePrefix: pre-\n filenameSuffix: -_37118\n filenameDatetimeFormat: YYYY-MM-DD/hh_mm_ssZ\n maxBytes: 1000\n maxDuration: 300s\n avroConfig:\n writeMetadata: true\n options:\n dependson:\n - ${example}\n - ${admin}\n admin:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${example.name}\n role: roles/storage.admin\n member: serviceAccount:service-${project.number}@gcp-sa-pubsub.iam.gserviceaccount.com\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Pubsub Subscription Push Cloudstorage Service Account\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst example = new gcp.storage.Bucket(\"example\", {\n name: \"example-bucket\",\n location: \"US\",\n uniformBucketLevelAccess: true,\n});\nconst exampleTopic = new gcp.pubsub.Topic(\"example\", {name: \"example-topic\"});\nconst storageWriteServiceAccount = new gcp.serviceaccount.Account(\"storage_write_service_account\", {\n accountId: \"example-stw\",\n displayName: \"Storage Write Service Account\",\n});\nconst admin = new gcp.storage.BucketIAMMember(\"admin\", {\n bucket: example.name,\n role: \"roles/storage.admin\",\n member: pulumi.interpolate`serviceAccount:${storageWriteServiceAccount.email}`,\n});\nconst exampleSubscription = new gcp.pubsub.Subscription(\"example\", {\n name: \"example-subscription\",\n topic: exampleTopic.id,\n cloudStorageConfig: {\n bucket: example.name,\n filenamePrefix: \"pre-\",\n filenameSuffix: \"-_80332\",\n filenameDatetimeFormat: \"YYYY-MM-DD/hh_mm_ssZ\",\n maxBytes: 1000,\n maxDuration: \"300s\",\n serviceAccountEmail: storageWriteServiceAccount.email,\n },\n}, {\n dependsOn: [\n storageWriteServiceAccount,\n example,\n admin,\n ],\n});\nconst project = gcp.organizations.getProject({});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nexample = gcp.storage.Bucket(\"example\",\n name=\"example-bucket\",\n location=\"US\",\n uniform_bucket_level_access=True)\nexample_topic = gcp.pubsub.Topic(\"example\", name=\"example-topic\")\nstorage_write_service_account = gcp.serviceaccount.Account(\"storage_write_service_account\",\n account_id=\"example-stw\",\n display_name=\"Storage Write Service Account\")\nadmin = gcp.storage.BucketIAMMember(\"admin\",\n bucket=example.name,\n role=\"roles/storage.admin\",\n member=storage_write_service_account.email.apply(lambda email: f\"serviceAccount:{email}\"))\nexample_subscription = gcp.pubsub.Subscription(\"example\",\n name=\"example-subscription\",\n topic=example_topic.id,\n cloud_storage_config={\n \"bucket\": example.name,\n \"filename_prefix\": \"pre-\",\n \"filename_suffix\": \"-_80332\",\n \"filename_datetime_format\": \"YYYY-MM-DD/hh_mm_ssZ\",\n \"max_bytes\": 1000,\n \"max_duration\": \"300s\",\n \"service_account_email\": storage_write_service_account.email,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n storage_write_service_account,\n example,\n admin,\n ]))\nproject = gcp.organizations.get_project()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Gcp.Storage.Bucket(\"example\", new()\n {\n Name = \"example-bucket\",\n Location = \"US\",\n UniformBucketLevelAccess = true,\n });\n\n var exampleTopic = new Gcp.PubSub.Topic(\"example\", new()\n {\n Name = \"example-topic\",\n });\n\n var storageWriteServiceAccount = new Gcp.ServiceAccount.Account(\"storage_write_service_account\", new()\n {\n AccountId = \"example-stw\",\n DisplayName = \"Storage Write Service Account\",\n });\n\n var admin = new Gcp.Storage.BucketIAMMember(\"admin\", new()\n {\n Bucket = example.Name,\n Role = \"roles/storage.admin\",\n Member = storageWriteServiceAccount.Email.Apply(email =\u003e $\"serviceAccount:{email}\"),\n });\n\n var exampleSubscription = new Gcp.PubSub.Subscription(\"example\", new()\n {\n Name = \"example-subscription\",\n Topic = exampleTopic.Id,\n CloudStorageConfig = new Gcp.PubSub.Inputs.SubscriptionCloudStorageConfigArgs\n {\n Bucket = example.Name,\n FilenamePrefix = \"pre-\",\n FilenameSuffix = \"-_80332\",\n FilenameDatetimeFormat = \"YYYY-MM-DD/hh_mm_ssZ\",\n MaxBytes = 1000,\n MaxDuration = \"300s\",\n ServiceAccountEmail = storageWriteServiceAccount.Email,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n storageWriteServiceAccount,\n example,\n admin,\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := storage.NewBucket(ctx, \"example\", \u0026storage.BucketArgs{\n\t\t\tName: pulumi.String(\"example-bucket\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t\tUniformBucketLevelAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTopic, err := pubsub.NewTopic(ctx, \"example\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"example-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstorageWriteServiceAccount, err := serviceaccount.NewAccount(ctx, \"storage_write_service_account\", \u0026serviceaccount.AccountArgs{\n\t\t\tAccountId: pulumi.String(\"example-stw\"),\n\t\t\tDisplayName: pulumi.String(\"Storage Write Service Account\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tadmin, err := storage.NewBucketIAMMember(ctx, \"admin\", \u0026storage.BucketIAMMemberArgs{\n\t\t\tBucket: example.Name,\n\t\t\tRole: pulumi.String(\"roles/storage.admin\"),\n\t\t\tMember: storageWriteServiceAccount.Email.ApplyT(func(email string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:%v\", email), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pubsub.NewSubscription(ctx, \"example\", \u0026pubsub.SubscriptionArgs{\n\t\t\tName: pulumi.String(\"example-subscription\"),\n\t\t\tTopic: exampleTopic.ID(),\n\t\t\tCloudStorageConfig: \u0026pubsub.SubscriptionCloudStorageConfigArgs{\n\t\t\t\tBucket: example.Name,\n\t\t\t\tFilenamePrefix: pulumi.String(\"pre-\"),\n\t\t\t\tFilenameSuffix: pulumi.String(\"-_80332\"),\n\t\t\t\tFilenameDatetimeFormat: pulumi.String(\"YYYY-MM-DD/hh_mm_ssZ\"),\n\t\t\t\tMaxBytes: pulumi.Int(1000),\n\t\t\t\tMaxDuration: pulumi.String(\"300s\"),\n\t\t\t\tServiceAccountEmail: storageWriteServiceAccount.Email,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tstorageWriteServiceAccount,\n\t\t\texample,\n\t\t\tadmin,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.storage.Bucket;\nimport com.pulumi.gcp.storage.BucketArgs;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.serviceaccount.Account;\nimport com.pulumi.gcp.serviceaccount.AccountArgs;\nimport com.pulumi.gcp.storage.BucketIAMMember;\nimport com.pulumi.gcp.storage.BucketIAMMemberArgs;\nimport com.pulumi.gcp.pubsub.Subscription;\nimport com.pulumi.gcp.pubsub.SubscriptionArgs;\nimport com.pulumi.gcp.pubsub.inputs.SubscriptionCloudStorageConfigArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Bucket(\"example\", BucketArgs.builder()\n .name(\"example-bucket\")\n .location(\"US\")\n .uniformBucketLevelAccess(true)\n .build());\n\n var exampleTopic = new Topic(\"exampleTopic\", TopicArgs.builder()\n .name(\"example-topic\")\n .build());\n\n var storageWriteServiceAccount = new Account(\"storageWriteServiceAccount\", AccountArgs.builder()\n .accountId(\"example-stw\")\n .displayName(\"Storage Write Service Account\")\n .build());\n\n var admin = new BucketIAMMember(\"admin\", BucketIAMMemberArgs.builder()\n .bucket(example.name())\n .role(\"roles/storage.admin\")\n .member(storageWriteServiceAccount.email().applyValue(email -\u003e String.format(\"serviceAccount:%s\", email)))\n .build());\n\n var exampleSubscription = new Subscription(\"exampleSubscription\", SubscriptionArgs.builder()\n .name(\"example-subscription\")\n .topic(exampleTopic.id())\n .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()\n .bucket(example.name())\n .filenamePrefix(\"pre-\")\n .filenameSuffix(\"-_80332\")\n .filenameDatetimeFormat(\"YYYY-MM-DD/hh_mm_ssZ\")\n .maxBytes(1000)\n .maxDuration(\"300s\")\n .serviceAccountEmail(storageWriteServiceAccount.email())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n storageWriteServiceAccount,\n example,\n admin)\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: gcp:storage:Bucket\n properties:\n name: example-bucket\n location: US\n uniformBucketLevelAccess: true\n exampleTopic:\n type: gcp:pubsub:Topic\n name: example\n properties:\n name: example-topic\n exampleSubscription:\n type: gcp:pubsub:Subscription\n name: example\n properties:\n name: example-subscription\n topic: ${exampleTopic.id}\n cloudStorageConfig:\n bucket: ${example.name}\n filenamePrefix: pre-\n filenameSuffix: -_80332\n filenameDatetimeFormat: YYYY-MM-DD/hh_mm_ssZ\n maxBytes: 1000\n maxDuration: 300s\n serviceAccountEmail: ${storageWriteServiceAccount.email}\n options:\n dependson:\n - ${storageWriteServiceAccount}\n - ${example}\n - ${admin}\n storageWriteServiceAccount:\n type: gcp:serviceaccount:Account\n name: storage_write_service_account\n properties:\n accountId: example-stw\n displayName: Storage Write Service Account\n admin:\n type: gcp:storage:BucketIAMMember\n properties:\n bucket: ${example.name}\n role: roles/storage.admin\n member: serviceAccount:${storageWriteServiceAccount.email}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSubscription can be imported using any of these accepted formats:\n\n* `projects/{{project}}/subscriptions/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Subscription can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:pubsub/subscription:Subscription default projects/{{project}}/subscriptions/{{name}}\n```\n\n```sh\n$ pulumi import gcp:pubsub/subscription:Subscription default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:pubsub/subscription:Subscription default {{name}}\n```\n\n", "properties": { "ackDeadlineSeconds": { "type": "integer", @@ -231738,7 +233357,7 @@ } }, "gcp:securesourcemanager/instance:Instance": { - "description": "Instances are deployed to an available Google Cloud region and are accessible via their web interface.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/secure-source-manager/docs/create-instance)\n\n## Example Usage\n\n### Secure Source Manager Instance Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n location: \"us-central1\",\n instanceId: \"my-instance\",\n labels: {\n foo: \"bar\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.securesourcemanager.Instance(\"default\",\n location=\"us-central1\",\n instance_id=\"my-instance\",\n labels={\n \"foo\": \"bar\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n Location = \"us-central1\",\n InstanceId = \"my-instance\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .location(\"us-central1\")\n .instanceId(\"my-instance\")\n .labels(Map.of(\"foo\", \"bar\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n location: us-central1\n instanceId: my-instance\n labels:\n foo: bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Secure Source Manager Instance Cmek\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"key_ring\", {\n name: \"my-keyring\",\n location: \"us-central1\",\n});\nconst cryptoKey = new gcp.kms.CryptoKey(\"crypto_key\", {\n name: \"my-key\",\n keyRing: keyRing.id,\n});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMMember(\"crypto_key_binding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`),\n});\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n location: \"us-central1\",\n instanceId: \"my-instance\",\n kmsKey: cryptoKey.id,\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"key_ring\",\n name=\"my-keyring\",\n location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"crypto_key\",\n name=\"my-key\",\n key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMMember(\"crypto_key_binding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\")\ndefault = gcp.securesourcemanager.Instance(\"default\",\n location=\"us-central1\",\n instance_id=\"my-instance\",\n kms_key=crypto_key.id,\n opts = pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"key_ring\", new()\n {\n Name = \"my-keyring\",\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"crypto_key\", new()\n {\n Name = \"my-key\",\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMMember(\"crypto_key_binding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com\",\n });\n\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n Location = \"us-central1\",\n InstanceId = \"my-instance\",\n KmsKey = cryptoKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"key_ring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"my-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"crypto_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"my-key\"),\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMMember(ctx, \"crypto_key_binding\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tKmsKey: cryptoKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder()\n .name(\"my-keyring\")\n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder()\n .name(\"my-key\")\n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMMember(\"cryptoKeyBinding\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .location(\"us-central1\")\n .instanceId(\"my-instance\")\n .kmsKey(cryptoKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n keyRing:\n type: gcp:kms:KeyRing\n name: key_ring\n properties:\n name: my-keyring\n location: us-central1\n cryptoKey:\n type: gcp:kms:CryptoKey\n name: crypto_key\n properties:\n name: my-key\n keyRing: ${keyRing.id}\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMMember\n name: crypto_key_binding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n location: us-central1\n instanceId: my-instance\n kmsKey: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Secure Source Manager Instance Private\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst caPool = new gcp.certificateauthority.CaPool(\"ca_pool\", {\n name: \"ca-pool\",\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n publishingOptions: {\n publishCaCert: true,\n publishCrl: true,\n },\n});\nconst rootCa = new gcp.certificateauthority.Authority(\"root_ca\", {\n pool: caPool.name,\n certificateAuthorityId: \"root-ca\",\n location: \"us-central1\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"google\",\n commonName: \"my-certificate-authority\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n ignoreActiveCertificatesOnDeletion: true,\n skipGracePeriod: true,\n});\nconst project = gcp.organizations.getProject({});\nconst caPoolBinding = new gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\", {\n caPool: caPool.id,\n role: \"roles/privateca.certificateRequester\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`)],\n});\n// ca pool IAM permissions can take time to propagate\nconst wait60Seconds = new time.index.Sleep(\"wait_60_seconds\", {createDuration: \"60s\"}, {\n dependsOn: [caPoolBinding],\n});\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n instanceId: \"my-instance\",\n location: \"us-central1\",\n privateConfig: {\n isPrivate: true,\n caPool: caPool.id,\n },\n}, {\n dependsOn: [\n rootCa,\n wait60Seconds,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\nca_pool = gcp.certificateauthority.CaPool(\"ca_pool\",\n name=\"ca-pool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\",\n publishing_options={\n \"publish_ca_cert\": True,\n \"publish_crl\": True,\n })\nroot_ca = gcp.certificateauthority.Authority(\"root_ca\",\n pool=ca_pool.name,\n certificate_authority_id=\"root-ca\",\n location=\"us-central1\",\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"google\",\n \"common_name\": \"my-certificate-authority\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n deletion_protection=False,\n ignore_active_certificates_on_deletion=True,\n skip_grace_period=True)\nproject = gcp.organizations.get_project()\nca_pool_binding = gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\",\n ca_pool=ca_pool.id,\n role=\"roles/privateca.certificateRequester\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\"])\n# ca pool IAM permissions can take time to propagate\nwait60_seconds = time.index.Sleep(\"wait_60_seconds\", create_duration=60s,\nopts = pulumi.ResourceOptions(depends_on=[ca_pool_binding]))\ndefault = gcp.securesourcemanager.Instance(\"default\",\n instance_id=\"my-instance\",\n location=\"us-central1\",\n private_config={\n \"is_private\": True,\n \"ca_pool\": ca_pool.id,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n root_ca,\n wait60_seconds,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var caPool = new Gcp.CertificateAuthority.CaPool(\"ca_pool\", new()\n {\n Name = \"ca-pool\",\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = true,\n PublishCrl = true,\n },\n });\n\n var rootCa = new Gcp.CertificateAuthority.Authority(\"root_ca\", new()\n {\n Pool = caPool.Name,\n CertificateAuthorityId = \"root-ca\",\n Location = \"us-central1\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"google\",\n CommonName = \"my-certificate-authority\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n IgnoreActiveCertificatesOnDeletion = true,\n SkipGracePeriod = true,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var caPoolBinding = new Gcp.CertificateAuthority.CaPoolIamBinding(\"ca_pool_binding\", new()\n {\n CaPool = caPool.Id,\n Role = \"roles/privateca.certificateRequester\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com\",\n },\n });\n\n // ca pool IAM permissions can take time to propagate\n var wait60Seconds = new Time.Index.Sleep(\"wait_60_seconds\", new()\n {\n CreateDuration = \"60s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n caPoolBinding,\n },\n });\n\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n InstanceId = \"my-instance\",\n Location = \"us-central1\",\n PrivateConfig = new Gcp.SecureSourceManager.Inputs.InstancePrivateConfigArgs\n {\n IsPrivate = true,\n CaPool = caPool.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n rootCa,\n wait60Seconds,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcaPool, err := certificateauthority.NewCaPool(ctx, \"ca_pool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(true),\n\t\t\t\tPublishCrl: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trootCa, err := certificateauthority.NewAuthority(ctx, \"root_ca\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: caPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"root-ca\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"google\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcaPoolBinding, err := certificateauthority.NewCaPoolIamBinding(ctx, \"ca_pool_binding\", \u0026certificateauthority.CaPoolIamBindingArgs{\n\t\t\tCaPool: caPool.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateRequester\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ca pool IAM permissions can take time to propagate\n\t\twait60Seconds, err := time.NewSleep(ctx, \"wait_60_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"60s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcaPoolBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPrivateConfig: \u0026securesourcemanager.InstancePrivateConfigArgs{\n\t\t\t\tIsPrivate: pulumi.Bool(true),\n\t\t\t\tCaPool: caPool.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trootCa,\n\t\t\twait60Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBinding;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBindingArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport com.pulumi.gcp.securesourcemanager.inputs.InstancePrivateConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var caPool = new CaPool(\"caPool\", CaPoolArgs.builder()\n .name(\"ca-pool\")\n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(true)\n .publishCrl(true)\n .build())\n .build());\n\n var rootCa = new Authority(\"rootCa\", AuthorityArgs.builder()\n .pool(caPool.name())\n .certificateAuthorityId(\"root-ca\")\n .location(\"us-central1\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"google\")\n .commonName(\"my-certificate-authority\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .ignoreActiveCertificatesOnDeletion(true)\n .skipGracePeriod(true)\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var caPoolBinding = new CaPoolIamBinding(\"caPoolBinding\", CaPoolIamBindingArgs.builder()\n .caPool(caPool.id())\n .role(\"roles/privateca.certificateRequester\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n // ca pool IAM permissions can take time to propagate\n var wait60Seconds = new Sleep(\"wait60Seconds\", SleepArgs.builder()\n .createDuration(\"60s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(caPoolBinding)\n .build());\n\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .instanceId(\"my-instance\")\n .location(\"us-central1\")\n .privateConfig(InstancePrivateConfigArgs.builder()\n .isPrivate(true)\n .caPool(caPool.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n rootCa,\n wait60Seconds)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n caPool:\n type: gcp:certificateauthority:CaPool\n name: ca_pool\n properties:\n name: ca-pool\n location: us-central1\n tier: ENTERPRISE\n publishingOptions:\n publishCaCert: true\n publishCrl: true\n rootCa:\n type: gcp:certificateauthority:Authority\n name: root_ca\n properties:\n pool: ${caPool.name}\n certificateAuthorityId: root-ca\n location: us-central1\n config:\n subjectConfig:\n subject:\n organization: google\n commonName: my-certificate-authority\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: true\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n deletionProtection: false\n ignoreActiveCertificatesOnDeletion: true\n skipGracePeriod: true\n caPoolBinding:\n type: gcp:certificateauthority:CaPoolIamBinding\n name: ca_pool_binding\n properties:\n caPool: ${caPool.id}\n role: roles/privateca.certificateRequester\n members:\n - serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n instanceId: my-instance\n location: us-central1\n privateConfig:\n isPrivate: true\n caPool: ${caPool.id}\n options:\n dependson:\n - ${rootCa}\n - ${wait60Seconds}\n # ca pool IAM permissions can take time to propagate\n wait60Seconds:\n type: time:sleep\n name: wait_60_seconds\n properties:\n createDuration: 60s\n options:\n dependson:\n - ${caPoolBinding}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/instances/{{instance_id}}`\n\n* `{{project}}/{{location}}/{{instance_id}}`\n\n* `{{location}}/{{instance_id}}`\n\n* `{{instance_id}}`\n\nWhen using the `pulumi import` command, Instance can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{instance_id}}\n```\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default {{project}}/{{location}}/{{instance_id}}\n```\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default {{location}}/{{instance_id}}\n```\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default {{instance_id}}\n```\n\n", + "description": "Instances are deployed to an available Google Cloud region and are accessible via their web interface.\n\n\nTo get more information about Instance, see:\n\n* [API documentation](https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.instances)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/secure-source-manager/docs/create-instance)\n\n## Example Usage\n\n### Secure Source Manager Instance Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n location: \"us-central1\",\n instanceId: \"my-instance\",\n labels: {\n foo: \"bar\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.securesourcemanager.Instance(\"default\",\n location=\"us-central1\",\n instance_id=\"my-instance\",\n labels={\n \"foo\": \"bar\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n Location = \"us-central1\",\n InstanceId = \"my-instance\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .location(\"us-central1\")\n .instanceId(\"my-instance\")\n .labels(Map.of(\"foo\", \"bar\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n location: us-central1\n instanceId: my-instance\n labels:\n foo: bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Secure Source Manager Instance Cmek\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst keyRing = new gcp.kms.KeyRing(\"key_ring\", {\n name: \"my-keyring\",\n location: \"us-central1\",\n});\nconst cryptoKey = new gcp.kms.CryptoKey(\"crypto_key\", {\n name: \"my-key\",\n keyRing: keyRing.id,\n});\nconst project = gcp.organizations.getProject({});\nconst cryptoKeyBinding = new gcp.kms.CryptoKeyIAMMember(\"crypto_key_binding\", {\n cryptoKeyId: cryptoKey.id,\n role: \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member: project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`),\n});\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n location: \"us-central1\",\n instanceId: \"my-instance\",\n kmsKey: cryptoKey.id,\n}, {\n dependsOn: [cryptoKeyBinding],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nkey_ring = gcp.kms.KeyRing(\"key_ring\",\n name=\"my-keyring\",\n location=\"us-central1\")\ncrypto_key = gcp.kms.CryptoKey(\"crypto_key\",\n name=\"my-key\",\n key_ring=key_ring.id)\nproject = gcp.organizations.get_project()\ncrypto_key_binding = gcp.kms.CryptoKeyIAMMember(\"crypto_key_binding\",\n crypto_key_id=crypto_key.id,\n role=\"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n member=f\"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\")\ndefault = gcp.securesourcemanager.Instance(\"default\",\n location=\"us-central1\",\n instance_id=\"my-instance\",\n kms_key=crypto_key.id,\n opts = pulumi.ResourceOptions(depends_on=[crypto_key_binding]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var keyRing = new Gcp.Kms.KeyRing(\"key_ring\", new()\n {\n Name = \"my-keyring\",\n Location = \"us-central1\",\n });\n\n var cryptoKey = new Gcp.Kms.CryptoKey(\"crypto_key\", new()\n {\n Name = \"my-key\",\n KeyRing = keyRing.Id,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var cryptoKeyBinding = new Gcp.Kms.CryptoKeyIAMMember(\"crypto_key_binding\", new()\n {\n CryptoKeyId = cryptoKey.Id,\n Role = \"roles/cloudkms.cryptoKeyEncrypterDecrypter\",\n Member = $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com\",\n });\n\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n Location = \"us-central1\",\n InstanceId = \"my-instance\",\n KmsKey = cryptoKey.Id,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n cryptoKeyBinding,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tkeyRing, err := kms.NewKeyRing(ctx, \"key_ring\", \u0026kms.KeyRingArgs{\n\t\t\tName: pulumi.String(\"my-keyring\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKey, err := kms.NewCryptoKey(ctx, \"crypto_key\", \u0026kms.CryptoKeyArgs{\n\t\t\tName: pulumi.String(\"my-key\"),\n\t\t\tKeyRing: keyRing.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcryptoKeyBinding, err := kms.NewCryptoKeyIAMMember(ctx, \"crypto_key_binding\", \u0026kms.CryptoKeyIAMMemberArgs{\n\t\t\tCryptoKeyId: cryptoKey.ID(),\n\t\t\tRole: pulumi.String(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\"),\n\t\t\tMember: pulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.Number)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tKmsKey: cryptoKey.ID(),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcryptoKeyBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.kms.KeyRing;\nimport com.pulumi.gcp.kms.KeyRingArgs;\nimport com.pulumi.gcp.kms.CryptoKey;\nimport com.pulumi.gcp.kms.CryptoKeyArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMember;\nimport com.pulumi.gcp.kms.CryptoKeyIAMMemberArgs;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var keyRing = new KeyRing(\"keyRing\", KeyRingArgs.builder()\n .name(\"my-keyring\")\n .location(\"us-central1\")\n .build());\n\n var cryptoKey = new CryptoKey(\"cryptoKey\", CryptoKeyArgs.builder()\n .name(\"my-key\")\n .keyRing(keyRing.id())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var cryptoKeyBinding = new CryptoKeyIAMMember(\"cryptoKeyBinding\", CryptoKeyIAMMemberArgs.builder()\n .cryptoKeyId(cryptoKey.id())\n .role(\"roles/cloudkms.cryptoKeyEncrypterDecrypter\")\n .member(String.format(\"serviceAccount:service-%s@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .location(\"us-central1\")\n .instanceId(\"my-instance\")\n .kmsKey(cryptoKey.id())\n .build(), CustomResourceOptions.builder()\n .dependsOn(cryptoKeyBinding)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n keyRing:\n type: gcp:kms:KeyRing\n name: key_ring\n properties:\n name: my-keyring\n location: us-central1\n cryptoKey:\n type: gcp:kms:CryptoKey\n name: crypto_key\n properties:\n name: my-key\n keyRing: ${keyRing.id}\n cryptoKeyBinding:\n type: gcp:kms:CryptoKeyIAMMember\n name: crypto_key_binding\n properties:\n cryptoKeyId: ${cryptoKey.id}\n role: roles/cloudkms.cryptoKeyEncrypterDecrypter\n member: serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n location: us-central1\n instanceId: my-instance\n kmsKey: ${cryptoKey.id}\n options:\n dependson:\n - ${cryptoKeyBinding}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Secure Source Manager Instance Private\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst caPool = new gcp.certificateauthority.CaPool(\"ca_pool\", {\n name: \"ca-pool\",\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n publishingOptions: {\n publishCaCert: true,\n publishCrl: true,\n },\n});\nconst rootCa = new gcp.certificateauthority.Authority(\"root_ca\", {\n pool: caPool.name,\n certificateAuthorityId: \"root-ca\",\n location: \"us-central1\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"google\",\n commonName: \"my-certificate-authority\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n ignoreActiveCertificatesOnDeletion: true,\n skipGracePeriod: true,\n});\nconst project = gcp.organizations.getProject({});\nconst caPoolBinding = new gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\", {\n caPool: caPool.id,\n role: \"roles/privateca.certificateRequester\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`)],\n});\n// ca pool IAM permissions can take time to propagate\nconst wait120Seconds = new time.index.Sleep(\"wait_120_seconds\", {createDuration: \"120s\"}, {\n dependsOn: [caPoolBinding],\n});\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n instanceId: \"my-instance\",\n location: \"us-central1\",\n privateConfig: {\n isPrivate: true,\n caPool: caPool.id,\n },\n}, {\n dependsOn: [\n rootCa,\n wait120Seconds,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\nca_pool = gcp.certificateauthority.CaPool(\"ca_pool\",\n name=\"ca-pool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\",\n publishing_options={\n \"publish_ca_cert\": True,\n \"publish_crl\": True,\n })\nroot_ca = gcp.certificateauthority.Authority(\"root_ca\",\n pool=ca_pool.name,\n certificate_authority_id=\"root-ca\",\n location=\"us-central1\",\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"google\",\n \"common_name\": \"my-certificate-authority\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n deletion_protection=False,\n ignore_active_certificates_on_deletion=True,\n skip_grace_period=True)\nproject = gcp.organizations.get_project()\nca_pool_binding = gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\",\n ca_pool=ca_pool.id,\n role=\"roles/privateca.certificateRequester\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\"])\n# ca pool IAM permissions can take time to propagate\nwait120_seconds = time.index.Sleep(\"wait_120_seconds\", create_duration=120s,\nopts = pulumi.ResourceOptions(depends_on=[ca_pool_binding]))\ndefault = gcp.securesourcemanager.Instance(\"default\",\n instance_id=\"my-instance\",\n location=\"us-central1\",\n private_config={\n \"is_private\": True,\n \"ca_pool\": ca_pool.id,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n root_ca,\n wait120_seconds,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var caPool = new Gcp.CertificateAuthority.CaPool(\"ca_pool\", new()\n {\n Name = \"ca-pool\",\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = true,\n PublishCrl = true,\n },\n });\n\n var rootCa = new Gcp.CertificateAuthority.Authority(\"root_ca\", new()\n {\n Pool = caPool.Name,\n CertificateAuthorityId = \"root-ca\",\n Location = \"us-central1\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"google\",\n CommonName = \"my-certificate-authority\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n IgnoreActiveCertificatesOnDeletion = true,\n SkipGracePeriod = true,\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var caPoolBinding = new Gcp.CertificateAuthority.CaPoolIamBinding(\"ca_pool_binding\", new()\n {\n CaPool = caPool.Id,\n Role = \"roles/privateca.certificateRequester\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com\",\n },\n });\n\n // ca pool IAM permissions can take time to propagate\n var wait120Seconds = new Time.Index.Sleep(\"wait_120_seconds\", new()\n {\n CreateDuration = \"120s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n caPoolBinding,\n },\n });\n\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n InstanceId = \"my-instance\",\n Location = \"us-central1\",\n PrivateConfig = new Gcp.SecureSourceManager.Inputs.InstancePrivateConfigArgs\n {\n IsPrivate = true,\n CaPool = caPool.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n rootCa,\n wait120Seconds,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcaPool, err := certificateauthority.NewCaPool(ctx, \"ca_pool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(true),\n\t\t\t\tPublishCrl: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trootCa, err := certificateauthority.NewAuthority(ctx, \"root_ca\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: caPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"root-ca\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"google\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcaPoolBinding, err := certificateauthority.NewCaPoolIamBinding(ctx, \"ca_pool_binding\", \u0026certificateauthority.CaPoolIamBindingArgs{\n\t\t\tCaPool: caPool.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateRequester\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ca pool IAM permissions can take time to propagate\n\t\twait120Seconds, err := time.NewSleep(ctx, \"wait_120_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcaPoolBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPrivateConfig: \u0026securesourcemanager.InstancePrivateConfigArgs{\n\t\t\t\tIsPrivate: pulumi.Bool(true),\n\t\t\t\tCaPool: caPool.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trootCa,\n\t\t\twait120Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBinding;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBindingArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport com.pulumi.gcp.securesourcemanager.inputs.InstancePrivateConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var caPool = new CaPool(\"caPool\", CaPoolArgs.builder()\n .name(\"ca-pool\")\n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(true)\n .publishCrl(true)\n .build())\n .build());\n\n var rootCa = new Authority(\"rootCa\", AuthorityArgs.builder()\n .pool(caPool.name())\n .certificateAuthorityId(\"root-ca\")\n .location(\"us-central1\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"google\")\n .commonName(\"my-certificate-authority\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .ignoreActiveCertificatesOnDeletion(true)\n .skipGracePeriod(true)\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n var caPoolBinding = new CaPoolIamBinding(\"caPoolBinding\", CaPoolIamBindingArgs.builder()\n .caPool(caPool.id())\n .role(\"roles/privateca.certificateRequester\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n // ca pool IAM permissions can take time to propagate\n var wait120Seconds = new Sleep(\"wait120Seconds\", SleepArgs.builder()\n .createDuration(\"120s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(caPoolBinding)\n .build());\n\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .instanceId(\"my-instance\")\n .location(\"us-central1\")\n .privateConfig(InstancePrivateConfigArgs.builder()\n .isPrivate(true)\n .caPool(caPool.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n rootCa,\n wait120Seconds)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n caPool:\n type: gcp:certificateauthority:CaPool\n name: ca_pool\n properties:\n name: ca-pool\n location: us-central1\n tier: ENTERPRISE\n publishingOptions:\n publishCaCert: true\n publishCrl: true\n rootCa:\n type: gcp:certificateauthority:Authority\n name: root_ca\n properties:\n pool: ${caPool.name}\n certificateAuthorityId: root-ca\n location: us-central1\n config:\n subjectConfig:\n subject:\n organization: google\n commonName: my-certificate-authority\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: true\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n deletionProtection: false\n ignoreActiveCertificatesOnDeletion: true\n skipGracePeriod: true\n caPoolBinding:\n type: gcp:certificateauthority:CaPoolIamBinding\n name: ca_pool_binding\n properties:\n caPool: ${caPool.id}\n role: roles/privateca.certificateRequester\n members:\n - serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n instanceId: my-instance\n location: us-central1\n privateConfig:\n isPrivate: true\n caPool: ${caPool.id}\n options:\n dependson:\n - ${rootCa}\n - ${wait120Seconds}\n # ca pool IAM permissions can take time to propagate\n wait120Seconds:\n type: time:sleep\n name: wait_120_seconds\n properties:\n createDuration: 120s\n options:\n dependson:\n - ${caPoolBinding}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Secure Source Manager Instance Private Psc Backend\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst project = gcp.organizations.getProject({});\nconst caPool = new gcp.certificateauthority.CaPool(\"ca_pool\", {\n name: \"ca-pool\",\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n publishingOptions: {\n publishCaCert: true,\n publishCrl: true,\n },\n});\nconst rootCa = new gcp.certificateauthority.Authority(\"root_ca\", {\n pool: caPool.name,\n certificateAuthorityId: \"root-ca\",\n location: \"us-central1\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"google\",\n commonName: \"my-certificate-authority\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n ignoreActiveCertificatesOnDeletion: true,\n skipGracePeriod: true,\n});\nconst caPoolBinding = new gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\", {\n caPool: caPool.id,\n role: \"roles/privateca.certificateRequester\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`)],\n});\n// ca pool IAM permissions can take time to propagate\nconst wait120Seconds = new time.index.Sleep(\"wait_120_seconds\", {createDuration: \"120s\"}, {\n dependsOn: [caPoolBinding],\n});\n// See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n instanceId: \"my-instance\",\n location: \"us-central1\",\n privateConfig: {\n isPrivate: true,\n caPool: caPool.id,\n },\n}, {\n dependsOn: [\n rootCa,\n wait120Seconds,\n ],\n});\n// Connect SSM private instance with L4 proxy ILB.\nconst network = new gcp.compute.Network(\"network\", {\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst subnet = new gcp.compute.Subnetwork(\"subnet\", {\n name: \"my-subnet\",\n region: \"us-central1\",\n network: network.id,\n ipCidrRange: \"10.0.1.0/24\",\n privateIpGoogleAccess: true,\n});\nconst pscNeg = new gcp.compute.RegionNetworkEndpointGroup(\"psc_neg\", {\n name: \"my-neg\",\n region: \"us-central1\",\n networkEndpointType: \"PRIVATE_SERVICE_CONNECT\",\n pscTargetService: _default.privateConfig.apply(privateConfig =\u003e privateConfig?.httpServiceAttachment),\n network: network.id,\n subnetwork: subnet.id,\n});\nconst backendService = new gcp.compute.RegionBackendService(\"backend_service\", {\n name: \"my-backend-service\",\n region: \"us-central1\",\n protocol: \"TCP\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n backends: [{\n group: pscNeg.id,\n balancingMode: \"UTILIZATION\",\n capacityScaler: 1,\n }],\n});\nconst proxySubnet = new gcp.compute.Subnetwork(\"proxy_subnet\", {\n name: \"my-proxy-subnet\",\n region: \"us-central1\",\n network: network.id,\n ipCidrRange: \"10.0.2.0/24\",\n purpose: \"REGIONAL_MANAGED_PROXY\",\n role: \"ACTIVE\",\n});\nconst targetProxy = new gcp.compute.RegionTargetTcpProxy(\"target_proxy\", {\n name: \"my-target-proxy\",\n region: \"us-central1\",\n backendService: backendService.id,\n});\nconst fwRuleTargetProxy = new gcp.compute.ForwardingRule(\"fw_rule_target_proxy\", {\n name: \"fw-rule-target-proxy\",\n region: \"us-central1\",\n loadBalancingScheme: \"INTERNAL_MANAGED\",\n ipProtocol: \"TCP\",\n portRange: \"443\",\n target: targetProxy.id,\n network: network.id,\n subnetwork: subnet.id,\n networkTier: \"PREMIUM\",\n}, {\n dependsOn: [proxySubnet],\n});\nconst privateZone = new gcp.dns.ManagedZone(\"private_zone\", {\n name: \"my-dns-zone\",\n dnsName: \"p.sourcemanager.dev.\",\n visibility: \"private\",\n privateVisibilityConfig: {\n networks: [{\n networkUrl: network.id,\n }],\n },\n});\nconst ssmInstanceHtmlRecord = new gcp.dns.RecordSet(\"ssm_instance_html_record\", {\n name: _default.hostConfigs.apply(hostConfigs =\u003e `${hostConfigs[0].html}.`),\n type: \"A\",\n ttl: 300,\n managedZone: privateZone.name,\n rrdatas: [fwRuleTargetProxy.ipAddress],\n});\nconst ssmInstanceApiRecord = new gcp.dns.RecordSet(\"ssm_instance_api_record\", {\n name: _default.hostConfigs.apply(hostConfigs =\u003e `${hostConfigs[0].api}.`),\n type: \"A\",\n ttl: 300,\n managedZone: privateZone.name,\n rrdatas: [fwRuleTargetProxy.ipAddress],\n});\nconst ssmInstanceGitRecord = new gcp.dns.RecordSet(\"ssm_instance_git_record\", {\n name: _default.hostConfigs.apply(hostConfigs =\u003e `${hostConfigs[0].gitHttp}.`),\n type: \"A\",\n ttl: 300,\n managedZone: privateZone.name,\n rrdatas: [fwRuleTargetProxy.ipAddress],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\nproject = gcp.organizations.get_project()\nca_pool = gcp.certificateauthority.CaPool(\"ca_pool\",\n name=\"ca-pool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\",\n publishing_options={\n \"publish_ca_cert\": True,\n \"publish_crl\": True,\n })\nroot_ca = gcp.certificateauthority.Authority(\"root_ca\",\n pool=ca_pool.name,\n certificate_authority_id=\"root-ca\",\n location=\"us-central1\",\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"google\",\n \"common_name\": \"my-certificate-authority\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n deletion_protection=False,\n ignore_active_certificates_on_deletion=True,\n skip_grace_period=True)\nca_pool_binding = gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\",\n ca_pool=ca_pool.id,\n role=\"roles/privateca.certificateRequester\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\"])\n# ca pool IAM permissions can take time to propagate\nwait120_seconds = time.index.Sleep(\"wait_120_seconds\", create_duration=120s,\nopts = pulumi.ResourceOptions(depends_on=[ca_pool_binding]))\n# See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\ndefault = gcp.securesourcemanager.Instance(\"default\",\n instance_id=\"my-instance\",\n location=\"us-central1\",\n private_config={\n \"is_private\": True,\n \"ca_pool\": ca_pool.id,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n root_ca,\n wait120_seconds,\n ]))\n# Connect SSM private instance with L4 proxy ILB.\nnetwork = gcp.compute.Network(\"network\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nsubnet = gcp.compute.Subnetwork(\"subnet\",\n name=\"my-subnet\",\n region=\"us-central1\",\n network=network.id,\n ip_cidr_range=\"10.0.1.0/24\",\n private_ip_google_access=True)\npsc_neg = gcp.compute.RegionNetworkEndpointGroup(\"psc_neg\",\n name=\"my-neg\",\n region=\"us-central1\",\n network_endpoint_type=\"PRIVATE_SERVICE_CONNECT\",\n psc_target_service=default.private_config.http_service_attachment,\n network=network.id,\n subnetwork=subnet.id)\nbackend_service = gcp.compute.RegionBackendService(\"backend_service\",\n name=\"my-backend-service\",\n region=\"us-central1\",\n protocol=\"TCP\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n backends=[{\n \"group\": psc_neg.id,\n \"balancing_mode\": \"UTILIZATION\",\n \"capacity_scaler\": 1,\n }])\nproxy_subnet = gcp.compute.Subnetwork(\"proxy_subnet\",\n name=\"my-proxy-subnet\",\n region=\"us-central1\",\n network=network.id,\n ip_cidr_range=\"10.0.2.0/24\",\n purpose=\"REGIONAL_MANAGED_PROXY\",\n role=\"ACTIVE\")\ntarget_proxy = gcp.compute.RegionTargetTcpProxy(\"target_proxy\",\n name=\"my-target-proxy\",\n region=\"us-central1\",\n backend_service=backend_service.id)\nfw_rule_target_proxy = gcp.compute.ForwardingRule(\"fw_rule_target_proxy\",\n name=\"fw-rule-target-proxy\",\n region=\"us-central1\",\n load_balancing_scheme=\"INTERNAL_MANAGED\",\n ip_protocol=\"TCP\",\n port_range=\"443\",\n target=target_proxy.id,\n network=network.id,\n subnetwork=subnet.id,\n network_tier=\"PREMIUM\",\n opts = pulumi.ResourceOptions(depends_on=[proxy_subnet]))\nprivate_zone = gcp.dns.ManagedZone(\"private_zone\",\n name=\"my-dns-zone\",\n dns_name=\"p.sourcemanager.dev.\",\n visibility=\"private\",\n private_visibility_config={\n \"networks\": [{\n \"network_url\": network.id,\n }],\n })\nssm_instance_html_record = gcp.dns.RecordSet(\"ssm_instance_html_record\",\n name=default.host_configs.apply(lambda host_configs: f\"{host_configs[0].html}.\"),\n type=\"A\",\n ttl=300,\n managed_zone=private_zone.name,\n rrdatas=[fw_rule_target_proxy.ip_address])\nssm_instance_api_record = gcp.dns.RecordSet(\"ssm_instance_api_record\",\n name=default.host_configs.apply(lambda host_configs: f\"{host_configs[0].api}.\"),\n type=\"A\",\n ttl=300,\n managed_zone=private_zone.name,\n rrdatas=[fw_rule_target_proxy.ip_address])\nssm_instance_git_record = gcp.dns.RecordSet(\"ssm_instance_git_record\",\n name=default.host_configs.apply(lambda host_configs: f\"{host_configs[0].git_http}.\"),\n type=\"A\",\n ttl=300,\n managed_zone=private_zone.name,\n rrdatas=[fw_rule_target_proxy.ip_address])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var caPool = new Gcp.CertificateAuthority.CaPool(\"ca_pool\", new()\n {\n Name = \"ca-pool\",\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = true,\n PublishCrl = true,\n },\n });\n\n var rootCa = new Gcp.CertificateAuthority.Authority(\"root_ca\", new()\n {\n Pool = caPool.Name,\n CertificateAuthorityId = \"root-ca\",\n Location = \"us-central1\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"google\",\n CommonName = \"my-certificate-authority\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n IgnoreActiveCertificatesOnDeletion = true,\n SkipGracePeriod = true,\n });\n\n var caPoolBinding = new Gcp.CertificateAuthority.CaPoolIamBinding(\"ca_pool_binding\", new()\n {\n CaPool = caPool.Id,\n Role = \"roles/privateca.certificateRequester\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com\",\n },\n });\n\n // ca pool IAM permissions can take time to propagate\n var wait120Seconds = new Time.Index.Sleep(\"wait_120_seconds\", new()\n {\n CreateDuration = \"120s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n caPoolBinding,\n },\n });\n\n // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n InstanceId = \"my-instance\",\n Location = \"us-central1\",\n PrivateConfig = new Gcp.SecureSourceManager.Inputs.InstancePrivateConfigArgs\n {\n IsPrivate = true,\n CaPool = caPool.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n rootCa,\n wait120Seconds,\n },\n });\n\n // Connect SSM private instance with L4 proxy ILB.\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var subnet = new Gcp.Compute.Subnetwork(\"subnet\", new()\n {\n Name = \"my-subnet\",\n Region = \"us-central1\",\n Network = network.Id,\n IpCidrRange = \"10.0.1.0/24\",\n PrivateIpGoogleAccess = true,\n });\n\n var pscNeg = new Gcp.Compute.RegionNetworkEndpointGroup(\"psc_neg\", new()\n {\n Name = \"my-neg\",\n Region = \"us-central1\",\n NetworkEndpointType = \"PRIVATE_SERVICE_CONNECT\",\n PscTargetService = @default.PrivateConfig.Apply(privateConfig =\u003e privateConfig?.HttpServiceAttachment),\n Network = network.Id,\n Subnetwork = subnet.Id,\n });\n\n var backendService = new Gcp.Compute.RegionBackendService(\"backend_service\", new()\n {\n Name = \"my-backend-service\",\n Region = \"us-central1\",\n Protocol = \"TCP\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n Backends = new[]\n {\n new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs\n {\n Group = pscNeg.Id,\n BalancingMode = \"UTILIZATION\",\n CapacityScaler = 1,\n },\n },\n });\n\n var proxySubnet = new Gcp.Compute.Subnetwork(\"proxy_subnet\", new()\n {\n Name = \"my-proxy-subnet\",\n Region = \"us-central1\",\n Network = network.Id,\n IpCidrRange = \"10.0.2.0/24\",\n Purpose = \"REGIONAL_MANAGED_PROXY\",\n Role = \"ACTIVE\",\n });\n\n var targetProxy = new Gcp.Compute.RegionTargetTcpProxy(\"target_proxy\", new()\n {\n Name = \"my-target-proxy\",\n Region = \"us-central1\",\n BackendService = backendService.Id,\n });\n\n var fwRuleTargetProxy = new Gcp.Compute.ForwardingRule(\"fw_rule_target_proxy\", new()\n {\n Name = \"fw-rule-target-proxy\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"INTERNAL_MANAGED\",\n IpProtocol = \"TCP\",\n PortRange = \"443\",\n Target = targetProxy.Id,\n Network = network.Id,\n Subnetwork = subnet.Id,\n NetworkTier = \"PREMIUM\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n proxySubnet,\n },\n });\n\n var privateZone = new Gcp.Dns.ManagedZone(\"private_zone\", new()\n {\n Name = \"my-dns-zone\",\n DnsName = \"p.sourcemanager.dev.\",\n Visibility = \"private\",\n PrivateVisibilityConfig = new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigArgs\n {\n Networks = new[]\n {\n new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigNetworkArgs\n {\n NetworkUrl = network.Id,\n },\n },\n },\n });\n\n var ssmInstanceHtmlRecord = new Gcp.Dns.RecordSet(\"ssm_instance_html_record\", new()\n {\n Name = @default.HostConfigs.Apply(hostConfigs =\u003e $\"{hostConfigs[0].Html}.\"),\n Type = \"A\",\n Ttl = 300,\n ManagedZone = privateZone.Name,\n Rrdatas = new[]\n {\n fwRuleTargetProxy.IpAddress,\n },\n });\n\n var ssmInstanceApiRecord = new Gcp.Dns.RecordSet(\"ssm_instance_api_record\", new()\n {\n Name = @default.HostConfigs.Apply(hostConfigs =\u003e $\"{hostConfigs[0].Api}.\"),\n Type = \"A\",\n Ttl = 300,\n ManagedZone = privateZone.Name,\n Rrdatas = new[]\n {\n fwRuleTargetProxy.IpAddress,\n },\n });\n\n var ssmInstanceGitRecord = new Gcp.Dns.RecordSet(\"ssm_instance_git_record\", new()\n {\n Name = @default.HostConfigs.Apply(hostConfigs =\u003e $\"{hostConfigs[0].GitHttp}.\"),\n Type = \"A\",\n Ttl = 300,\n ManagedZone = privateZone.Name,\n Rrdatas = new[]\n {\n fwRuleTargetProxy.IpAddress,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/dns\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcaPool, err := certificateauthority.NewCaPool(ctx, \"ca_pool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(true),\n\t\t\t\tPublishCrl: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trootCa, err := certificateauthority.NewAuthority(ctx, \"root_ca\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: caPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"root-ca\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"google\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcaPoolBinding, err := certificateauthority.NewCaPoolIamBinding(ctx, \"ca_pool_binding\", \u0026certificateauthority.CaPoolIamBindingArgs{\n\t\t\tCaPool: caPool.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateRequester\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ca pool IAM permissions can take time to propagate\n\t\twait120Seconds, err := time.NewSleep(ctx, \"wait_120_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcaPoolBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n\t\t_, err = securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPrivateConfig: \u0026securesourcemanager.InstancePrivateConfigArgs{\n\t\t\t\tIsPrivate: pulumi.Bool(true),\n\t\t\t\tCaPool: caPool.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trootCa,\n\t\t\twait120Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Connect SSM private instance with L4 proxy ILB.\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := compute.NewSubnetwork(ctx, \"subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-subnet\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tpscNeg, err := compute.NewRegionNetworkEndpointGroup(ctx, \"psc_neg\", \u0026compute.RegionNetworkEndpointGroupArgs{\n\t\t\tName: pulumi.String(\"my-neg\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetworkEndpointType: pulumi.String(\"PRIVATE_SERVICE_CONNECT\"),\n\t\t\tPscTargetService: pulumi.String(_default.PrivateConfig.ApplyT(func(privateConfig securesourcemanager.InstancePrivateConfig) (*string, error) {\n\t\t\t\treturn \u0026privateConfig.HttpServiceAttachment, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tNetwork: network.ID(),\n\t\t\tSubnetwork: subnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbackendService, err := compute.NewRegionBackendService(ctx, \"backend_service\", \u0026compute.RegionBackendServiceArgs{\n\t\t\tName: pulumi.String(\"my-backend-service\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tBackends: compute.RegionBackendServiceBackendArray{\n\t\t\t\t\u0026compute.RegionBackendServiceBackendArgs{\n\t\t\t\t\tGroup: pscNeg.ID(),\n\t\t\t\t\tBalancingMode: pulumi.String(\"UTILIZATION\"),\n\t\t\t\t\tCapacityScaler: pulumi.Float64(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproxySubnet, err := compute.NewSubnetwork(ctx, \"proxy_subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-proxy-subnet\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.2.0/24\"),\n\t\t\tPurpose: pulumi.String(\"REGIONAL_MANAGED_PROXY\"),\n\t\t\tRole: pulumi.String(\"ACTIVE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttargetProxy, err := compute.NewRegionTargetTcpProxy(ctx, \"target_proxy\", \u0026compute.RegionTargetTcpProxyArgs{\n\t\t\tName: pulumi.String(\"my-target-proxy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBackendService: backendService.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfwRuleTargetProxy, err := compute.NewForwardingRule(ctx, \"fw_rule_target_proxy\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"fw-rule-target-proxy\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"INTERNAL_MANAGED\"),\n\t\t\tIpProtocol: pulumi.String(\"TCP\"),\n\t\t\tPortRange: pulumi.String(\"443\"),\n\t\t\tTarget: targetProxy.ID(),\n\t\t\tNetwork: network.ID(),\n\t\t\tSubnetwork: subnet.ID(),\n\t\t\tNetworkTier: pulumi.String(\"PREMIUM\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproxySubnet,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateZone, err := dns.NewManagedZone(ctx, \"private_zone\", \u0026dns.ManagedZoneArgs{\n\t\t\tName: pulumi.String(\"my-dns-zone\"),\n\t\t\tDnsName: pulumi.String(\"p.sourcemanager.dev.\"),\n\t\t\tVisibility: pulumi.String(\"private\"),\n\t\t\tPrivateVisibilityConfig: \u0026dns.ManagedZonePrivateVisibilityConfigArgs{\n\t\t\t\tNetworks: dns.ManagedZonePrivateVisibilityConfigNetworkArray{\n\t\t\t\t\t\u0026dns.ManagedZonePrivateVisibilityConfigNetworkArgs{\n\t\t\t\t\t\tNetworkUrl: network.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"ssm_instance_html_record\", \u0026dns.RecordSetArgs{\n\t\t\tName: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", hostConfigs[0].Html), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tManagedZone: privateZone.Name,\n\t\t\tRrdatas: pulumi.StringArray{\n\t\t\t\tfwRuleTargetProxy.IpAddress,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"ssm_instance_api_record\", \u0026dns.RecordSetArgs{\n\t\t\tName: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", hostConfigs[0].Api), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tManagedZone: privateZone.Name,\n\t\t\tRrdatas: pulumi.StringArray{\n\t\t\t\tfwRuleTargetProxy.IpAddress,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"ssm_instance_git_record\", \u0026dns.RecordSetArgs{\n\t\t\tName: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", hostConfigs[0].GitHttp), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tManagedZone: privateZone.Name,\n\t\t\tRrdatas: pulumi.StringArray{\n\t\t\t\tfwRuleTargetProxy.IpAddress,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBinding;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBindingArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport com.pulumi.gcp.securesourcemanager.inputs.InstancePrivateConfigArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.RegionNetworkEndpointGroup;\nimport com.pulumi.gcp.compute.RegionNetworkEndpointGroupArgs;\nimport com.pulumi.gcp.compute.RegionBackendService;\nimport com.pulumi.gcp.compute.RegionBackendServiceArgs;\nimport com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;\nimport com.pulumi.gcp.compute.RegionTargetTcpProxy;\nimport com.pulumi.gcp.compute.RegionTargetTcpProxyArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.dns.ManagedZone;\nimport com.pulumi.gcp.dns.ManagedZoneArgs;\nimport com.pulumi.gcp.dns.inputs.ManagedZonePrivateVisibilityConfigArgs;\nimport com.pulumi.gcp.dns.RecordSet;\nimport com.pulumi.gcp.dns.RecordSetArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var caPool = new CaPool(\"caPool\", CaPoolArgs.builder()\n .name(\"ca-pool\")\n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(true)\n .publishCrl(true)\n .build())\n .build());\n\n var rootCa = new Authority(\"rootCa\", AuthorityArgs.builder()\n .pool(caPool.name())\n .certificateAuthorityId(\"root-ca\")\n .location(\"us-central1\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"google\")\n .commonName(\"my-certificate-authority\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .ignoreActiveCertificatesOnDeletion(true)\n .skipGracePeriod(true)\n .build());\n\n var caPoolBinding = new CaPoolIamBinding(\"caPoolBinding\", CaPoolIamBindingArgs.builder()\n .caPool(caPool.id())\n .role(\"roles/privateca.certificateRequester\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n // ca pool IAM permissions can take time to propagate\n var wait120Seconds = new Sleep(\"wait120Seconds\", SleepArgs.builder()\n .createDuration(\"120s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(caPoolBinding)\n .build());\n\n // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .instanceId(\"my-instance\")\n .location(\"us-central1\")\n .privateConfig(InstancePrivateConfigArgs.builder()\n .isPrivate(true)\n .caPool(caPool.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n rootCa,\n wait120Seconds)\n .build());\n\n // Connect SSM private instance with L4 proxy ILB.\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnet = new Subnetwork(\"subnet\", SubnetworkArgs.builder()\n .name(\"my-subnet\")\n .region(\"us-central1\")\n .network(network.id())\n .ipCidrRange(\"10.0.1.0/24\")\n .privateIpGoogleAccess(true)\n .build());\n\n var pscNeg = new RegionNetworkEndpointGroup(\"pscNeg\", RegionNetworkEndpointGroupArgs.builder()\n .name(\"my-neg\")\n .region(\"us-central1\")\n .networkEndpointType(\"PRIVATE_SERVICE_CONNECT\")\n .pscTargetService(default_.privateConfig().applyValue(privateConfig -\u003e privateConfig.httpServiceAttachment()))\n .network(network.id())\n .subnetwork(subnet.id())\n .build());\n\n var backendService = new RegionBackendService(\"backendService\", RegionBackendServiceArgs.builder()\n .name(\"my-backend-service\")\n .region(\"us-central1\")\n .protocol(\"TCP\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .backends(RegionBackendServiceBackendArgs.builder()\n .group(pscNeg.id())\n .balancingMode(\"UTILIZATION\")\n .capacityScaler(1)\n .build())\n .build());\n\n var proxySubnet = new Subnetwork(\"proxySubnet\", SubnetworkArgs.builder()\n .name(\"my-proxy-subnet\")\n .region(\"us-central1\")\n .network(network.id())\n .ipCidrRange(\"10.0.2.0/24\")\n .purpose(\"REGIONAL_MANAGED_PROXY\")\n .role(\"ACTIVE\")\n .build());\n\n var targetProxy = new RegionTargetTcpProxy(\"targetProxy\", RegionTargetTcpProxyArgs.builder()\n .name(\"my-target-proxy\")\n .region(\"us-central1\")\n .backendService(backendService.id())\n .build());\n\n var fwRuleTargetProxy = new ForwardingRule(\"fwRuleTargetProxy\", ForwardingRuleArgs.builder()\n .name(\"fw-rule-target-proxy\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"INTERNAL_MANAGED\")\n .ipProtocol(\"TCP\")\n .portRange(\"443\")\n .target(targetProxy.id())\n .network(network.id())\n .subnetwork(subnet.id())\n .networkTier(\"PREMIUM\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(proxySubnet)\n .build());\n\n var privateZone = new ManagedZone(\"privateZone\", ManagedZoneArgs.builder()\n .name(\"my-dns-zone\")\n .dnsName(\"p.sourcemanager.dev.\")\n .visibility(\"private\")\n .privateVisibilityConfig(ManagedZonePrivateVisibilityConfigArgs.builder()\n .networks(ManagedZonePrivateVisibilityConfigNetworkArgs.builder()\n .networkUrl(network.id())\n .build())\n .build())\n .build());\n\n var ssmInstanceHtmlRecord = new RecordSet(\"ssmInstanceHtmlRecord\", RecordSetArgs.builder()\n .name(default_.hostConfigs().applyValue(hostConfigs -\u003e String.format(\"%s.\", hostConfigs[0].html())))\n .type(\"A\")\n .ttl(300)\n .managedZone(privateZone.name())\n .rrdatas(fwRuleTargetProxy.ipAddress())\n .build());\n\n var ssmInstanceApiRecord = new RecordSet(\"ssmInstanceApiRecord\", RecordSetArgs.builder()\n .name(default_.hostConfigs().applyValue(hostConfigs -\u003e String.format(\"%s.\", hostConfigs[0].api())))\n .type(\"A\")\n .ttl(300)\n .managedZone(privateZone.name())\n .rrdatas(fwRuleTargetProxy.ipAddress())\n .build());\n\n var ssmInstanceGitRecord = new RecordSet(\"ssmInstanceGitRecord\", RecordSetArgs.builder()\n .name(default_.hostConfigs().applyValue(hostConfigs -\u003e String.format(\"%s.\", hostConfigs[0].gitHttp())))\n .type(\"A\")\n .ttl(300)\n .managedZone(privateZone.name())\n .rrdatas(fwRuleTargetProxy.ipAddress())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n caPool:\n type: gcp:certificateauthority:CaPool\n name: ca_pool\n properties:\n name: ca-pool\n location: us-central1\n tier: ENTERPRISE\n publishingOptions:\n publishCaCert: true\n publishCrl: true\n rootCa:\n type: gcp:certificateauthority:Authority\n name: root_ca\n properties:\n pool: ${caPool.name}\n certificateAuthorityId: root-ca\n location: us-central1\n config:\n subjectConfig:\n subject:\n organization: google\n commonName: my-certificate-authority\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: true\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n deletionProtection: false\n ignoreActiveCertificatesOnDeletion: true\n skipGracePeriod: true\n caPoolBinding:\n type: gcp:certificateauthority:CaPoolIamBinding\n name: ca_pool_binding\n properties:\n caPool: ${caPool.id}\n role: roles/privateca.certificateRequester\n members:\n - serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\n # See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n instanceId: my-instance\n location: us-central1\n privateConfig:\n isPrivate: true\n caPool: ${caPool.id}\n options:\n dependson:\n - ${rootCa}\n - ${wait120Seconds}\n # ca pool IAM permissions can take time to propagate\n wait120Seconds:\n type: time:sleep\n name: wait_120_seconds\n properties:\n createDuration: 120s\n options:\n dependson:\n - ${caPoolBinding}\n # Connect SSM private instance with L4 proxy ILB.\n network:\n type: gcp:compute:Network\n properties:\n name: my-network\n autoCreateSubnetworks: false\n subnet:\n type: gcp:compute:Subnetwork\n properties:\n name: my-subnet\n region: us-central1\n network: ${network.id}\n ipCidrRange: 10.0.1.0/24\n privateIpGoogleAccess: true\n pscNeg:\n type: gcp:compute:RegionNetworkEndpointGroup\n name: psc_neg\n properties:\n name: my-neg\n region: us-central1\n networkEndpointType: PRIVATE_SERVICE_CONNECT\n pscTargetService: ${default.privateConfig.httpServiceAttachment}\n network: ${network.id}\n subnetwork: ${subnet.id}\n backendService:\n type: gcp:compute:RegionBackendService\n name: backend_service\n properties:\n name: my-backend-service\n region: us-central1\n protocol: TCP\n loadBalancingScheme: INTERNAL_MANAGED\n backends:\n - group: ${pscNeg.id}\n balancingMode: UTILIZATION\n capacityScaler: 1\n proxySubnet:\n type: gcp:compute:Subnetwork\n name: proxy_subnet\n properties:\n name: my-proxy-subnet\n region: us-central1\n network: ${network.id}\n ipCidrRange: 10.0.2.0/24\n purpose: REGIONAL_MANAGED_PROXY\n role: ACTIVE\n targetProxy:\n type: gcp:compute:RegionTargetTcpProxy\n name: target_proxy\n properties:\n name: my-target-proxy\n region: us-central1\n backendService: ${backendService.id}\n fwRuleTargetProxy:\n type: gcp:compute:ForwardingRule\n name: fw_rule_target_proxy\n properties:\n name: fw-rule-target-proxy\n region: us-central1\n loadBalancingScheme: INTERNAL_MANAGED\n ipProtocol: TCP\n portRange: '443'\n target: ${targetProxy.id}\n network: ${network.id}\n subnetwork: ${subnet.id}\n networkTier: PREMIUM\n options:\n dependson:\n - ${proxySubnet}\n privateZone:\n type: gcp:dns:ManagedZone\n name: private_zone\n properties:\n name: my-dns-zone\n dnsName: p.sourcemanager.dev.\n visibility: private\n privateVisibilityConfig:\n networks:\n - networkUrl: ${network.id}\n ssmInstanceHtmlRecord:\n type: gcp:dns:RecordSet\n name: ssm_instance_html_record\n properties:\n name: ${default.hostConfigs[0].html}.\n type: A\n ttl: 300\n managedZone: ${privateZone.name}\n rrdatas:\n - ${fwRuleTargetProxy.ipAddress}\n ssmInstanceApiRecord:\n type: gcp:dns:RecordSet\n name: ssm_instance_api_record\n properties:\n name: ${default.hostConfigs[0].api}.\n type: A\n ttl: 300\n managedZone: ${privateZone.name}\n rrdatas:\n - ${fwRuleTargetProxy.ipAddress}\n ssmInstanceGitRecord:\n type: gcp:dns:RecordSet\n name: ssm_instance_git_record\n properties:\n name: ${default.hostConfigs[0].gitHttp}.\n type: A\n ttl: 300\n managedZone: ${privateZone.name}\n rrdatas:\n - ${fwRuleTargetProxy.ipAddress}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Secure Source Manager Instance Private Psc Endpoint\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst project = gcp.organizations.getProject({});\nconst caPool = new gcp.certificateauthority.CaPool(\"ca_pool\", {\n name: \"ca-pool\",\n location: \"us-central1\",\n tier: \"ENTERPRISE\",\n publishingOptions: {\n publishCaCert: true,\n publishCrl: true,\n },\n});\nconst rootCa = new gcp.certificateauthority.Authority(\"root_ca\", {\n pool: caPool.name,\n certificateAuthorityId: \"root-ca\",\n location: \"us-central1\",\n config: {\n subjectConfig: {\n subject: {\n organization: \"google\",\n commonName: \"my-certificate-authority\",\n },\n },\n x509Config: {\n caOptions: {\n isCa: true,\n },\n keyUsage: {\n baseKeyUsage: {\n certSign: true,\n crlSign: true,\n },\n extendedKeyUsage: {\n serverAuth: true,\n },\n },\n },\n },\n keySpec: {\n algorithm: \"RSA_PKCS1_4096_SHA256\",\n },\n deletionProtection: false,\n ignoreActiveCertificatesOnDeletion: true,\n skipGracePeriod: true,\n});\nconst caPoolBinding = new gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\", {\n caPool: caPool.id,\n role: \"roles/privateca.certificateRequester\",\n members: [project.then(project =\u003e `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`)],\n});\n// ca pool IAM permissions can take time to propagate\nconst wait120Seconds = new time.index.Sleep(\"wait_120_seconds\", {createDuration: \"120s\"}, {\n dependsOn: [caPoolBinding],\n});\n// See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\nconst _default = new gcp.securesourcemanager.Instance(\"default\", {\n instanceId: \"my-instance\",\n location: \"us-central1\",\n privateConfig: {\n isPrivate: true,\n caPool: caPool.id,\n },\n}, {\n dependsOn: [\n rootCa,\n wait120Seconds,\n ],\n});\n// Connect SSM private instance with endpoint.\nconst network = new gcp.compute.Network(\"network\", {\n name: \"my-network\",\n autoCreateSubnetworks: false,\n});\nconst subnet = new gcp.compute.Subnetwork(\"subnet\", {\n name: \"my-subnet\",\n region: \"us-central1\",\n network: network.id,\n ipCidrRange: \"10.0.60.0/24\",\n privateIpGoogleAccess: true,\n});\nconst address = new gcp.compute.Address(\"address\", {\n name: \"my-address\",\n region: \"us-central1\",\n address: \"10.0.60.100\",\n addressType: \"INTERNAL\",\n subnetwork: subnet.id,\n});\nconst fwRuleServiceAttachment = new gcp.compute.ForwardingRule(\"fw_rule_service_attachment\", {\n name: \"fw-rule-service-attachment\",\n region: \"us-central1\",\n loadBalancingScheme: \"\",\n ipAddress: address.id,\n network: network.id,\n target: _default.privateConfig.apply(privateConfig =\u003e privateConfig?.httpServiceAttachment),\n});\nconst privateZone = new gcp.dns.ManagedZone(\"private_zone\", {\n name: \"my-dns-zone\",\n dnsName: \"p.sourcemanager.dev.\",\n visibility: \"private\",\n privateVisibilityConfig: {\n networks: [{\n networkUrl: network.id,\n }],\n },\n});\nconst ssmInstanceHtmlRecord = new gcp.dns.RecordSet(\"ssm_instance_html_record\", {\n name: _default.hostConfigs.apply(hostConfigs =\u003e `${hostConfigs[0].html}.`),\n type: \"A\",\n ttl: 300,\n managedZone: privateZone.name,\n rrdatas: [fwRuleServiceAttachment.ipAddress],\n});\nconst ssmInstanceApiRecord = new gcp.dns.RecordSet(\"ssm_instance_api_record\", {\n name: _default.hostConfigs.apply(hostConfigs =\u003e `${hostConfigs[0].api}.`),\n type: \"A\",\n ttl: 300,\n managedZone: privateZone.name,\n rrdatas: [fwRuleServiceAttachment.ipAddress],\n});\nconst ssmInstanceGitRecord = new gcp.dns.RecordSet(\"ssm_instance_git_record\", {\n name: _default.hostConfigs.apply(hostConfigs =\u003e `${hostConfigs[0].gitHttp}.`),\n type: \"A\",\n ttl: 300,\n managedZone: privateZone.name,\n rrdatas: [fwRuleServiceAttachment.ipAddress],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\nproject = gcp.organizations.get_project()\nca_pool = gcp.certificateauthority.CaPool(\"ca_pool\",\n name=\"ca-pool\",\n location=\"us-central1\",\n tier=\"ENTERPRISE\",\n publishing_options={\n \"publish_ca_cert\": True,\n \"publish_crl\": True,\n })\nroot_ca = gcp.certificateauthority.Authority(\"root_ca\",\n pool=ca_pool.name,\n certificate_authority_id=\"root-ca\",\n location=\"us-central1\",\n config={\n \"subject_config\": {\n \"subject\": {\n \"organization\": \"google\",\n \"common_name\": \"my-certificate-authority\",\n },\n },\n \"x509_config\": {\n \"ca_options\": {\n \"is_ca\": True,\n },\n \"key_usage\": {\n \"base_key_usage\": {\n \"cert_sign\": True,\n \"crl_sign\": True,\n },\n \"extended_key_usage\": {\n \"server_auth\": True,\n },\n },\n },\n },\n key_spec={\n \"algorithm\": \"RSA_PKCS1_4096_SHA256\",\n },\n deletion_protection=False,\n ignore_active_certificates_on_deletion=True,\n skip_grace_period=True)\nca_pool_binding = gcp.certificateauthority.CaPoolIamBinding(\"ca_pool_binding\",\n ca_pool=ca_pool.id,\n role=\"roles/privateca.certificateRequester\",\n members=[f\"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\"])\n# ca pool IAM permissions can take time to propagate\nwait120_seconds = time.index.Sleep(\"wait_120_seconds\", create_duration=120s,\nopts = pulumi.ResourceOptions(depends_on=[ca_pool_binding]))\n# See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\ndefault = gcp.securesourcemanager.Instance(\"default\",\n instance_id=\"my-instance\",\n location=\"us-central1\",\n private_config={\n \"is_private\": True,\n \"ca_pool\": ca_pool.id,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n root_ca,\n wait120_seconds,\n ]))\n# Connect SSM private instance with endpoint.\nnetwork = gcp.compute.Network(\"network\",\n name=\"my-network\",\n auto_create_subnetworks=False)\nsubnet = gcp.compute.Subnetwork(\"subnet\",\n name=\"my-subnet\",\n region=\"us-central1\",\n network=network.id,\n ip_cidr_range=\"10.0.60.0/24\",\n private_ip_google_access=True)\naddress = gcp.compute.Address(\"address\",\n name=\"my-address\",\n region=\"us-central1\",\n address=\"10.0.60.100\",\n address_type=\"INTERNAL\",\n subnetwork=subnet.id)\nfw_rule_service_attachment = gcp.compute.ForwardingRule(\"fw_rule_service_attachment\",\n name=\"fw-rule-service-attachment\",\n region=\"us-central1\",\n load_balancing_scheme=\"\",\n ip_address=address.id,\n network=network.id,\n target=default.private_config.http_service_attachment)\nprivate_zone = gcp.dns.ManagedZone(\"private_zone\",\n name=\"my-dns-zone\",\n dns_name=\"p.sourcemanager.dev.\",\n visibility=\"private\",\n private_visibility_config={\n \"networks\": [{\n \"network_url\": network.id,\n }],\n })\nssm_instance_html_record = gcp.dns.RecordSet(\"ssm_instance_html_record\",\n name=default.host_configs.apply(lambda host_configs: f\"{host_configs[0].html}.\"),\n type=\"A\",\n ttl=300,\n managed_zone=private_zone.name,\n rrdatas=[fw_rule_service_attachment.ip_address])\nssm_instance_api_record = gcp.dns.RecordSet(\"ssm_instance_api_record\",\n name=default.host_configs.apply(lambda host_configs: f\"{host_configs[0].api}.\"),\n type=\"A\",\n ttl=300,\n managed_zone=private_zone.name,\n rrdatas=[fw_rule_service_attachment.ip_address])\nssm_instance_git_record = gcp.dns.RecordSet(\"ssm_instance_git_record\",\n name=default.host_configs.apply(lambda host_configs: f\"{host_configs[0].git_http}.\"),\n type=\"A\",\n ttl=300,\n managed_zone=private_zone.name,\n rrdatas=[fw_rule_service_attachment.ip_address])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var project = Gcp.Organizations.GetProject.Invoke();\n\n var caPool = new Gcp.CertificateAuthority.CaPool(\"ca_pool\", new()\n {\n Name = \"ca-pool\",\n Location = \"us-central1\",\n Tier = \"ENTERPRISE\",\n PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs\n {\n PublishCaCert = true,\n PublishCrl = true,\n },\n });\n\n var rootCa = new Gcp.CertificateAuthority.Authority(\"root_ca\", new()\n {\n Pool = caPool.Name,\n CertificateAuthorityId = \"root-ca\",\n Location = \"us-central1\",\n Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs\n {\n SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs\n {\n Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs\n {\n Organization = \"google\",\n CommonName = \"my-certificate-authority\",\n },\n },\n X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs\n {\n CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs\n {\n IsCa = true,\n },\n KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs\n {\n BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs\n {\n CertSign = true,\n CrlSign = true,\n },\n ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs\n {\n ServerAuth = true,\n },\n },\n },\n },\n KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs\n {\n Algorithm = \"RSA_PKCS1_4096_SHA256\",\n },\n DeletionProtection = false,\n IgnoreActiveCertificatesOnDeletion = true,\n SkipGracePeriod = true,\n });\n\n var caPoolBinding = new Gcp.CertificateAuthority.CaPoolIamBinding(\"ca_pool_binding\", new()\n {\n CaPool = caPool.Id,\n Role = \"roles/privateca.certificateRequester\",\n Members = new[]\n {\n $\"serviceAccount:service-{project.Apply(getProjectResult =\u003e getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com\",\n },\n });\n\n // ca pool IAM permissions can take time to propagate\n var wait120Seconds = new Time.Index.Sleep(\"wait_120_seconds\", new()\n {\n CreateDuration = \"120s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n caPoolBinding,\n },\n });\n\n // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n var @default = new Gcp.SecureSourceManager.Instance(\"default\", new()\n {\n InstanceId = \"my-instance\",\n Location = \"us-central1\",\n PrivateConfig = new Gcp.SecureSourceManager.Inputs.InstancePrivateConfigArgs\n {\n IsPrivate = true,\n CaPool = caPool.Id,\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n rootCa,\n wait120Seconds,\n },\n });\n\n // Connect SSM private instance with endpoint.\n var network = new Gcp.Compute.Network(\"network\", new()\n {\n Name = \"my-network\",\n AutoCreateSubnetworks = false,\n });\n\n var subnet = new Gcp.Compute.Subnetwork(\"subnet\", new()\n {\n Name = \"my-subnet\",\n Region = \"us-central1\",\n Network = network.Id,\n IpCidrRange = \"10.0.60.0/24\",\n PrivateIpGoogleAccess = true,\n });\n\n var address = new Gcp.Compute.Address(\"address\", new()\n {\n Name = \"my-address\",\n Region = \"us-central1\",\n IPAddress = \"10.0.60.100\",\n AddressType = \"INTERNAL\",\n Subnetwork = subnet.Id,\n });\n\n var fwRuleServiceAttachment = new Gcp.Compute.ForwardingRule(\"fw_rule_service_attachment\", new()\n {\n Name = \"fw-rule-service-attachment\",\n Region = \"us-central1\",\n LoadBalancingScheme = \"\",\n IpAddress = address.Id,\n Network = network.Id,\n Target = @default.PrivateConfig.Apply(privateConfig =\u003e privateConfig?.HttpServiceAttachment),\n });\n\n var privateZone = new Gcp.Dns.ManagedZone(\"private_zone\", new()\n {\n Name = \"my-dns-zone\",\n DnsName = \"p.sourcemanager.dev.\",\n Visibility = \"private\",\n PrivateVisibilityConfig = new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigArgs\n {\n Networks = new[]\n {\n new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigNetworkArgs\n {\n NetworkUrl = network.Id,\n },\n },\n },\n });\n\n var ssmInstanceHtmlRecord = new Gcp.Dns.RecordSet(\"ssm_instance_html_record\", new()\n {\n Name = @default.HostConfigs.Apply(hostConfigs =\u003e $\"{hostConfigs[0].Html}.\"),\n Type = \"A\",\n Ttl = 300,\n ManagedZone = privateZone.Name,\n Rrdatas = new[]\n {\n fwRuleServiceAttachment.IpAddress,\n },\n });\n\n var ssmInstanceApiRecord = new Gcp.Dns.RecordSet(\"ssm_instance_api_record\", new()\n {\n Name = @default.HostConfigs.Apply(hostConfigs =\u003e $\"{hostConfigs[0].Api}.\"),\n Type = \"A\",\n Ttl = 300,\n ManagedZone = privateZone.Name,\n Rrdatas = new[]\n {\n fwRuleServiceAttachment.IpAddress,\n },\n });\n\n var ssmInstanceGitRecord = new Gcp.Dns.RecordSet(\"ssm_instance_git_record\", new()\n {\n Name = @default.HostConfigs.Apply(hostConfigs =\u003e $\"{hostConfigs[0].GitHttp}.\"),\n Type = \"A\",\n Ttl = 300,\n ManagedZone = privateZone.Name,\n Rrdatas = new[]\n {\n fwRuleServiceAttachment.IpAddress,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/dns\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcaPool, err := certificateauthority.NewCaPool(ctx, \"ca_pool\", \u0026certificateauthority.CaPoolArgs{\n\t\t\tName: pulumi.String(\"ca-pool\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tTier: pulumi.String(\"ENTERPRISE\"),\n\t\t\tPublishingOptions: \u0026certificateauthority.CaPoolPublishingOptionsArgs{\n\t\t\t\tPublishCaCert: pulumi.Bool(true),\n\t\t\t\tPublishCrl: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trootCa, err := certificateauthority.NewAuthority(ctx, \"root_ca\", \u0026certificateauthority.AuthorityArgs{\n\t\t\tPool: caPool.Name,\n\t\t\tCertificateAuthorityId: pulumi.String(\"root-ca\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tConfig: \u0026certificateauthority.AuthorityConfigArgs{\n\t\t\t\tSubjectConfig: \u0026certificateauthority.AuthorityConfigSubjectConfigArgs{\n\t\t\t\t\tSubject: \u0026certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{\n\t\t\t\t\t\tOrganization: pulumi.String(\"google\"),\n\t\t\t\t\t\tCommonName: pulumi.String(\"my-certificate-authority\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tX509Config: \u0026certificateauthority.AuthorityConfigX509ConfigArgs{\n\t\t\t\t\tCaOptions: \u0026certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{\n\t\t\t\t\t\tIsCa: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{\n\t\t\t\t\t\tBaseKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{\n\t\t\t\t\t\t\tCertSign: pulumi.Bool(true),\n\t\t\t\t\t\t\tCrlSign: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExtendedKeyUsage: \u0026certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{\n\t\t\t\t\t\t\tServerAuth: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tKeySpec: \u0026certificateauthority.AuthorityKeySpecArgs{\n\t\t\t\tAlgorithm: pulumi.String(\"RSA_PKCS1_4096_SHA256\"),\n\t\t\t},\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tIgnoreActiveCertificatesOnDeletion: pulumi.Bool(true),\n\t\t\tSkipGracePeriod: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcaPoolBinding, err := certificateauthority.NewCaPoolIamBinding(ctx, \"ca_pool_binding\", \u0026certificateauthority.CaPoolIamBindingArgs{\n\t\t\tCaPool: caPool.ID(),\n\t\t\tRole: pulumi.String(\"roles/privateca.certificateRequester\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.Number)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// ca pool IAM permissions can take time to propagate\n\t\twait120Seconds, err := time.NewSleep(ctx, \"wait_120_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"120s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tcaPoolBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n\t\t_, err = securesourcemanager.NewInstance(ctx, \"default\", \u0026securesourcemanager.InstanceArgs{\n\t\t\tInstanceId: pulumi.String(\"my-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1\"),\n\t\t\tPrivateConfig: \u0026securesourcemanager.InstancePrivateConfigArgs{\n\t\t\t\tIsPrivate: pulumi.Bool(true),\n\t\t\t\tCaPool: caPool.ID(),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\trootCa,\n\t\t\twait120Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Connect SSM private instance with endpoint.\n\t\tnetwork, err := compute.NewNetwork(ctx, \"network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"my-network\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsubnet, err := compute.NewSubnetwork(ctx, \"subnet\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"my-subnet\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tNetwork: network.ID(),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.60.0/24\"),\n\t\t\tPrivateIpGoogleAccess: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\taddress, err := compute.NewAddress(ctx, \"address\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"my-address\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tAddress: pulumi.String(\"10.0.60.100\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tSubnetwork: subnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfwRuleServiceAttachment, err := compute.NewForwardingRule(ctx, \"fw_rule_service_attachment\", \u0026compute.ForwardingRuleArgs{\n\t\t\tName: pulumi.String(\"fw-rule-service-attachment\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLoadBalancingScheme: pulumi.String(\"\"),\n\t\t\tIpAddress: address.ID(),\n\t\t\tNetwork: network.ID(),\n\t\t\tTarget: pulumi.String(_default.PrivateConfig.ApplyT(func(privateConfig securesourcemanager.InstancePrivateConfig) (*string, error) {\n\t\t\t\treturn \u0026privateConfig.HttpServiceAttachment, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateZone, err := dns.NewManagedZone(ctx, \"private_zone\", \u0026dns.ManagedZoneArgs{\n\t\t\tName: pulumi.String(\"my-dns-zone\"),\n\t\t\tDnsName: pulumi.String(\"p.sourcemanager.dev.\"),\n\t\t\tVisibility: pulumi.String(\"private\"),\n\t\t\tPrivateVisibilityConfig: \u0026dns.ManagedZonePrivateVisibilityConfigArgs{\n\t\t\t\tNetworks: dns.ManagedZonePrivateVisibilityConfigNetworkArray{\n\t\t\t\t\t\u0026dns.ManagedZonePrivateVisibilityConfigNetworkArgs{\n\t\t\t\t\t\tNetworkUrl: network.ID(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"ssm_instance_html_record\", \u0026dns.RecordSetArgs{\n\t\t\tName: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", hostConfigs[0].Html), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tManagedZone: privateZone.Name,\n\t\t\tRrdatas: pulumi.StringArray{\n\t\t\t\tfwRuleServiceAttachment.IpAddress,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"ssm_instance_api_record\", \u0026dns.RecordSetArgs{\n\t\t\tName: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", hostConfigs[0].Api), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tManagedZone: privateZone.Name,\n\t\t\tRrdatas: pulumi.StringArray{\n\t\t\t\tfwRuleServiceAttachment.IpAddress,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dns.NewRecordSet(ctx, \"ssm_instance_git_record\", \u0026dns.RecordSetArgs{\n\t\t\tName: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v.\", hostConfigs[0].GitHttp), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tManagedZone: privateZone.Name,\n\t\t\tRrdatas: pulumi.StringArray{\n\t\t\t\tfwRuleServiceAttachment.IpAddress,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.certificateauthority.CaPool;\nimport com.pulumi.gcp.certificateauthority.CaPoolArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.Authority;\nimport com.pulumi.gcp.certificateauthority.AuthorityArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;\nimport com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBinding;\nimport com.pulumi.gcp.certificateauthority.CaPoolIamBindingArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.securesourcemanager.Instance;\nimport com.pulumi.gcp.securesourcemanager.InstanceArgs;\nimport com.pulumi.gcp.securesourcemanager.inputs.InstancePrivateConfigArgs;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.compute.ForwardingRule;\nimport com.pulumi.gcp.compute.ForwardingRuleArgs;\nimport com.pulumi.gcp.dns.ManagedZone;\nimport com.pulumi.gcp.dns.ManagedZoneArgs;\nimport com.pulumi.gcp.dns.inputs.ManagedZonePrivateVisibilityConfigArgs;\nimport com.pulumi.gcp.dns.RecordSet;\nimport com.pulumi.gcp.dns.RecordSetArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var project = OrganizationsFunctions.getProject();\n\n var caPool = new CaPool(\"caPool\", CaPoolArgs.builder()\n .name(\"ca-pool\")\n .location(\"us-central1\")\n .tier(\"ENTERPRISE\")\n .publishingOptions(CaPoolPublishingOptionsArgs.builder()\n .publishCaCert(true)\n .publishCrl(true)\n .build())\n .build());\n\n var rootCa = new Authority(\"rootCa\", AuthorityArgs.builder()\n .pool(caPool.name())\n .certificateAuthorityId(\"root-ca\")\n .location(\"us-central1\")\n .config(AuthorityConfigArgs.builder()\n .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()\n .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()\n .organization(\"google\")\n .commonName(\"my-certificate-authority\")\n .build())\n .build())\n .x509Config(AuthorityConfigX509ConfigArgs.builder()\n .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()\n .isCa(true)\n .build())\n .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()\n .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()\n .certSign(true)\n .crlSign(true)\n .build())\n .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()\n .serverAuth(true)\n .build())\n .build())\n .build())\n .build())\n .keySpec(AuthorityKeySpecArgs.builder()\n .algorithm(\"RSA_PKCS1_4096_SHA256\")\n .build())\n .deletionProtection(false)\n .ignoreActiveCertificatesOnDeletion(true)\n .skipGracePeriod(true)\n .build());\n\n var caPoolBinding = new CaPoolIamBinding(\"caPoolBinding\", CaPoolIamBindingArgs.builder()\n .caPool(caPool.id())\n .role(\"roles/privateca.certificateRequester\")\n .members(String.format(\"serviceAccount:service-%s@gcp-sa-sourcemanager.iam.gserviceaccount.com\", project.applyValue(getProjectResult -\u003e getProjectResult.number())))\n .build());\n\n // ca pool IAM permissions can take time to propagate\n var wait120Seconds = new Sleep(\"wait120Seconds\", SleepArgs.builder()\n .createDuration(\"120s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(caPoolBinding)\n .build());\n\n // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n var default_ = new Instance(\"default\", InstanceArgs.builder()\n .instanceId(\"my-instance\")\n .location(\"us-central1\")\n .privateConfig(InstancePrivateConfigArgs.builder()\n .isPrivate(true)\n .caPool(caPool.id())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n rootCa,\n wait120Seconds)\n .build());\n\n // Connect SSM private instance with endpoint.\n var network = new Network(\"network\", NetworkArgs.builder()\n .name(\"my-network\")\n .autoCreateSubnetworks(false)\n .build());\n\n var subnet = new Subnetwork(\"subnet\", SubnetworkArgs.builder()\n .name(\"my-subnet\")\n .region(\"us-central1\")\n .network(network.id())\n .ipCidrRange(\"10.0.60.0/24\")\n .privateIpGoogleAccess(true)\n .build());\n\n var address = new Address(\"address\", AddressArgs.builder()\n .name(\"my-address\")\n .region(\"us-central1\")\n .address(\"10.0.60.100\")\n .addressType(\"INTERNAL\")\n .subnetwork(subnet.id())\n .build());\n\n var fwRuleServiceAttachment = new ForwardingRule(\"fwRuleServiceAttachment\", ForwardingRuleArgs.builder()\n .name(\"fw-rule-service-attachment\")\n .region(\"us-central1\")\n .loadBalancingScheme(\"\")\n .ipAddress(address.id())\n .network(network.id())\n .target(default_.privateConfig().applyValue(privateConfig -\u003e privateConfig.httpServiceAttachment()))\n .build());\n\n var privateZone = new ManagedZone(\"privateZone\", ManagedZoneArgs.builder()\n .name(\"my-dns-zone\")\n .dnsName(\"p.sourcemanager.dev.\")\n .visibility(\"private\")\n .privateVisibilityConfig(ManagedZonePrivateVisibilityConfigArgs.builder()\n .networks(ManagedZonePrivateVisibilityConfigNetworkArgs.builder()\n .networkUrl(network.id())\n .build())\n .build())\n .build());\n\n var ssmInstanceHtmlRecord = new RecordSet(\"ssmInstanceHtmlRecord\", RecordSetArgs.builder()\n .name(default_.hostConfigs().applyValue(hostConfigs -\u003e String.format(\"%s.\", hostConfigs[0].html())))\n .type(\"A\")\n .ttl(300)\n .managedZone(privateZone.name())\n .rrdatas(fwRuleServiceAttachment.ipAddress())\n .build());\n\n var ssmInstanceApiRecord = new RecordSet(\"ssmInstanceApiRecord\", RecordSetArgs.builder()\n .name(default_.hostConfigs().applyValue(hostConfigs -\u003e String.format(\"%s.\", hostConfigs[0].api())))\n .type(\"A\")\n .ttl(300)\n .managedZone(privateZone.name())\n .rrdatas(fwRuleServiceAttachment.ipAddress())\n .build());\n\n var ssmInstanceGitRecord = new RecordSet(\"ssmInstanceGitRecord\", RecordSetArgs.builder()\n .name(default_.hostConfigs().applyValue(hostConfigs -\u003e String.format(\"%s.\", hostConfigs[0].gitHttp())))\n .type(\"A\")\n .ttl(300)\n .managedZone(privateZone.name())\n .rrdatas(fwRuleServiceAttachment.ipAddress())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n caPool:\n type: gcp:certificateauthority:CaPool\n name: ca_pool\n properties:\n name: ca-pool\n location: us-central1\n tier: ENTERPRISE\n publishingOptions:\n publishCaCert: true\n publishCrl: true\n rootCa:\n type: gcp:certificateauthority:Authority\n name: root_ca\n properties:\n pool: ${caPool.name}\n certificateAuthorityId: root-ca\n location: us-central1\n config:\n subjectConfig:\n subject:\n organization: google\n commonName: my-certificate-authority\n x509Config:\n caOptions:\n isCa: true\n keyUsage:\n baseKeyUsage:\n certSign: true\n crlSign: true\n extendedKeyUsage:\n serverAuth: true\n keySpec:\n algorithm: RSA_PKCS1_4096_SHA256\n deletionProtection: false\n ignoreActiveCertificatesOnDeletion: true\n skipGracePeriod: true\n caPoolBinding:\n type: gcp:certificateauthority:CaPoolIamBinding\n name: ca_pool_binding\n properties:\n caPool: ${caPool.id}\n role: roles/privateca.certificateRequester\n members:\n - serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com\n # See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api\n default:\n type: gcp:securesourcemanager:Instance\n properties:\n instanceId: my-instance\n location: us-central1\n privateConfig:\n isPrivate: true\n caPool: ${caPool.id}\n options:\n dependson:\n - ${rootCa}\n - ${wait120Seconds}\n # ca pool IAM permissions can take time to propagate\n wait120Seconds:\n type: time:sleep\n name: wait_120_seconds\n properties:\n createDuration: 120s\n options:\n dependson:\n - ${caPoolBinding}\n # Connect SSM private instance with endpoint.\n network:\n type: gcp:compute:Network\n properties:\n name: my-network\n autoCreateSubnetworks: false\n subnet:\n type: gcp:compute:Subnetwork\n properties:\n name: my-subnet\n region: us-central1\n network: ${network.id}\n ipCidrRange: 10.0.60.0/24\n privateIpGoogleAccess: true\n address:\n type: gcp:compute:Address\n properties:\n name: my-address\n region: us-central1\n address: 10.0.60.100\n addressType: INTERNAL\n subnetwork: ${subnet.id}\n fwRuleServiceAttachment:\n type: gcp:compute:ForwardingRule\n name: fw_rule_service_attachment\n properties:\n name: fw-rule-service-attachment\n region: us-central1\n loadBalancingScheme:\n ipAddress: ${address.id}\n network: ${network.id}\n target: ${default.privateConfig.httpServiceAttachment}\n privateZone:\n type: gcp:dns:ManagedZone\n name: private_zone\n properties:\n name: my-dns-zone\n dnsName: p.sourcemanager.dev.\n visibility: private\n privateVisibilityConfig:\n networks:\n - networkUrl: ${network.id}\n ssmInstanceHtmlRecord:\n type: gcp:dns:RecordSet\n name: ssm_instance_html_record\n properties:\n name: ${default.hostConfigs[0].html}.\n type: A\n ttl: 300\n managedZone: ${privateZone.name}\n rrdatas:\n - ${fwRuleServiceAttachment.ipAddress}\n ssmInstanceApiRecord:\n type: gcp:dns:RecordSet\n name: ssm_instance_api_record\n properties:\n name: ${default.hostConfigs[0].api}.\n type: A\n ttl: 300\n managedZone: ${privateZone.name}\n rrdatas:\n - ${fwRuleServiceAttachment.ipAddress}\n ssmInstanceGitRecord:\n type: gcp:dns:RecordSet\n name: ssm_instance_git_record\n properties:\n name: ${default.hostConfigs[0].gitHttp}.\n type: A\n ttl: 300\n managedZone: ${privateZone.name}\n rrdatas:\n - ${fwRuleServiceAttachment.ipAddress}\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/instances/{{instance_id}}`\n\n* `{{project}}/{{location}}/{{instance_id}}`\n\n* `{{location}}/{{instance_id}}`\n\n* `{{instance_id}}`\n\nWhen using the `pulumi import` command, Instance can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{instance_id}}\n```\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default {{project}}/{{location}}/{{instance_id}}\n```\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default {{location}}/{{instance_id}}\n```\n\n```sh\n$ pulumi import gcp:securesourcemanager/instance:Instance default {{instance_id}}\n```\n\n", "properties": { "createTime": { "type": "string", @@ -234573,6 +236192,145 @@ "type": "object" } }, + "gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig": { + "description": "Mute Findings is a volume management feature in Security Command Center\nthat lets you manually or programmatically hide irrelevant findings,\nand create filters to automatically silence existing and future\nfindings based on criteria you specify.\n\n\nTo get more information about OrganizationMuteConfig, see:\n\n* [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.muteConfigs)\n\n## Example Usage\n\n### Scc V2 Organization Mute Config Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst _default = new gcp.securitycenter.V2OrganizationMuteConfig(\"default\", {\n muteConfigId: \"my-config\",\n organization: \"123456789\",\n location: \"global\",\n description: \"My custom Cloud Security Command Center Finding Organization mute Configuration\",\n filter: \"severity = \\\"HIGH\\\"\",\n type: \"STATIC\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ndefault = gcp.securitycenter.V2OrganizationMuteConfig(\"default\",\n mute_config_id=\"my-config\",\n organization=\"123456789\",\n location=\"global\",\n description=\"My custom Cloud Security Command Center Finding Organization mute Configuration\",\n filter=\"severity = \\\"HIGH\\\"\",\n type=\"STATIC\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Gcp.SecurityCenter.V2OrganizationMuteConfig(\"default\", new()\n {\n MuteConfigId = \"my-config\",\n Organization = \"123456789\",\n Location = \"global\",\n Description = \"My custom Cloud Security Command Center Finding Organization mute Configuration\",\n Filter = \"severity = \\\"HIGH\\\"\",\n Type = \"STATIC\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := securitycenter.NewV2OrganizationMuteConfig(ctx, \"default\", \u0026securitycenter.V2OrganizationMuteConfigArgs{\n\t\t\tMuteConfigId: pulumi.String(\"my-config\"),\n\t\t\tOrganization: pulumi.String(\"123456789\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tDescription: pulumi.String(\"My custom Cloud Security Command Center Finding Organization mute Configuration\"),\n\t\t\tFilter: pulumi.String(\"severity = \\\"HIGH\\\"\"),\n\t\t\tType: pulumi.String(\"STATIC\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.securitycenter.V2OrganizationMuteConfig;\nimport com.pulumi.gcp.securitycenter.V2OrganizationMuteConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new V2OrganizationMuteConfig(\"default\", V2OrganizationMuteConfigArgs.builder()\n .muteConfigId(\"my-config\")\n .organization(\"123456789\")\n .location(\"global\")\n .description(\"My custom Cloud Security Command Center Finding Organization mute Configuration\")\n .filter(\"severity = \\\"HIGH\\\"\")\n .type(\"STATIC\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: gcp:securitycenter:V2OrganizationMuteConfig\n properties:\n muteConfigId: my-config\n organization: '123456789'\n location: global\n description: My custom Cloud Security Command Center Finding Organization mute Configuration\n filter: severity = \"HIGH\"\n type: STATIC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOrganizationMuteConfig can be imported using any of these accepted formats:\n\n* `organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}`\n\n* `{{organization}}/{{location}}/{{mute_config_id}}`\n\nWhen using the `pulumi import` command, OrganizationMuteConfig can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}\n```\n\n```sh\n$ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default {{organization}}/{{location}}/{{mute_config_id}}\n```\n\n", + "properties": { + "createTime": { + "type": "string", + "description": "The time at which the mute config was created. This field is set by\nthe server and will be ignored if provided on config creation.\n" + }, + "description": { + "type": "string", + "description": "A description of the mute config.\n" + }, + "filter": { + "type": "string", + "description": "An expression that defines the filter to apply across create/update\nevents of findings. While creating a filter string, be mindful of\nthe scope in which the mute configuration is being created. E.g.,\nIf a filter contains project = X but is created under the\nproject = Y scope, it might not match any findings.\n" + }, + "location": { + "type": "string", + "description": "location Id is provided by organization. If not provided, Use global as default.\n" + }, + "mostRecentEditor": { + "type": "string", + "description": "Email address of the user who last edited the mute config. This\nfield is set by the server and will be ignored if provided on\nconfig creation or update.\n" + }, + "muteConfigId": { + "type": "string", + "description": "Unique identifier provided by the client within the parent scope.\n\n\n- - -\n" + }, + "name": { + "type": "string", + "description": "Name of the mute config. Its format is\norganizations/{organization}/locations/global/muteConfigs/{configId},\nfolders/{folder}/locations/global/muteConfigs/{configId},\nor projects/{project}/locations/global/muteConfigs/{configId}\n" + }, + "organization": { + "type": "string", + "description": "The organization whose Cloud Security Command Center the Mute\nConfig lives in.\n" + }, + "type": { + "type": "string", + "description": "The type of the mute config.\n" + }, + "updateTime": { + "type": "string", + "description": "Output only. The most recent time at which the mute config was\nupdated. This field is set by the server and will be ignored if\nprovided on config creation or update.\n" + } + }, + "required": [ + "createTime", + "filter", + "mostRecentEditor", + "muteConfigId", + "name", + "organization", + "type", + "updateTime" + ], + "inputProperties": { + "description": { + "type": "string", + "description": "A description of the mute config.\n" + }, + "filter": { + "type": "string", + "description": "An expression that defines the filter to apply across create/update\nevents of findings. While creating a filter string, be mindful of\nthe scope in which the mute configuration is being created. E.g.,\nIf a filter contains project = X but is created under the\nproject = Y scope, it might not match any findings.\n" + }, + "location": { + "type": "string", + "description": "location Id is provided by organization. If not provided, Use global as default.\n", + "willReplaceOnChanges": true + }, + "muteConfigId": { + "type": "string", + "description": "Unique identifier provided by the client within the parent scope.\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "organization": { + "type": "string", + "description": "The organization whose Cloud Security Command Center the Mute\nConfig lives in.\n", + "willReplaceOnChanges": true + }, + "type": { + "type": "string", + "description": "The type of the mute config.\n" + } + }, + "requiredInputs": [ + "filter", + "muteConfigId", + "organization", + "type" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering V2OrganizationMuteConfig resources.\n", + "properties": { + "createTime": { + "type": "string", + "description": "The time at which the mute config was created. This field is set by\nthe server and will be ignored if provided on config creation.\n" + }, + "description": { + "type": "string", + "description": "A description of the mute config.\n" + }, + "filter": { + "type": "string", + "description": "An expression that defines the filter to apply across create/update\nevents of findings. While creating a filter string, be mindful of\nthe scope in which the mute configuration is being created. E.g.,\nIf a filter contains project = X but is created under the\nproject = Y scope, it might not match any findings.\n" + }, + "location": { + "type": "string", + "description": "location Id is provided by organization. If not provided, Use global as default.\n", + "willReplaceOnChanges": true + }, + "mostRecentEditor": { + "type": "string", + "description": "Email address of the user who last edited the mute config. This\nfield is set by the server and will be ignored if provided on\nconfig creation or update.\n" + }, + "muteConfigId": { + "type": "string", + "description": "Unique identifier provided by the client within the parent scope.\n\n\n- - -\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Name of the mute config. Its format is\norganizations/{organization}/locations/global/muteConfigs/{configId},\nfolders/{folder}/locations/global/muteConfigs/{configId},\nor projects/{project}/locations/global/muteConfigs/{configId}\n" + }, + "organization": { + "type": "string", + "description": "The organization whose Cloud Security Command Center the Mute\nConfig lives in.\n", + "willReplaceOnChanges": true + }, + "type": { + "type": "string", + "description": "The type of the mute config.\n" + }, + "updateTime": { + "type": "string", + "description": "Output only. The most recent time at which the mute config was\nupdated. This field is set by the server and will be ignored if\nprovided on config creation or update.\n" + } + }, + "type": "object" + } + }, "gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig": { "description": "A Cloud Security Command Center (Cloud SCC) notification configs. A\nnotification config is a Cloud SCC resource that contains the\nconfiguration to send notifications for create/update events of\nfindings, assets and etc.\n\u003e **Note:** In order to use Cloud SCC resources, your organization must be enrolled\nin [SCC Standard/Premium](https://cloud.google.com/security-command-center/docs/quickstart-security-command-center).\nWithout doing so, you may run into errors during resource creation.\n\n\nTo get more information about OrganizationNotificationConfig, see:\n\n* [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.locations.notificationConfigs)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/security-command-center/docs)\n\n## Example Usage\n\n### Scc V2 Organization Notification Config Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst sccV2OrganizationNotificationConfig = new gcp.pubsub.Topic(\"scc_v2_organization_notification_config\", {name: \"my-topic\"});\nconst customOrganizationNotificationConfig = new gcp.securitycenter.V2OrganizationNotificationConfig(\"custom_organization_notification_config\", {\n configId: \"my-config\",\n organization: \"123456789\",\n location: \"global\",\n description: \"My custom Cloud Security Command Center Finding Organization Notification Configuration\",\n pubsubTopic: sccV2OrganizationNotificationConfig.id,\n streamingConfig: {\n filter: \"category = \\\"OPEN_FIREWALL\\\" AND state = \\\"ACTIVE\\\"\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nscc_v2_organization_notification_config = gcp.pubsub.Topic(\"scc_v2_organization_notification_config\", name=\"my-topic\")\ncustom_organization_notification_config = gcp.securitycenter.V2OrganizationNotificationConfig(\"custom_organization_notification_config\",\n config_id=\"my-config\",\n organization=\"123456789\",\n location=\"global\",\n description=\"My custom Cloud Security Command Center Finding Organization Notification Configuration\",\n pubsub_topic=scc_v2_organization_notification_config.id,\n streaming_config={\n \"filter\": \"category = \\\"OPEN_FIREWALL\\\" AND state = \\\"ACTIVE\\\"\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var sccV2OrganizationNotificationConfig = new Gcp.PubSub.Topic(\"scc_v2_organization_notification_config\", new()\n {\n Name = \"my-topic\",\n });\n\n var customOrganizationNotificationConfig = new Gcp.SecurityCenter.V2OrganizationNotificationConfig(\"custom_organization_notification_config\", new()\n {\n ConfigId = \"my-config\",\n Organization = \"123456789\",\n Location = \"global\",\n Description = \"My custom Cloud Security Command Center Finding Organization Notification Configuration\",\n PubsubTopic = sccV2OrganizationNotificationConfig.Id,\n StreamingConfig = new Gcp.SecurityCenter.Inputs.V2OrganizationNotificationConfigStreamingConfigArgs\n {\n Filter = \"category = \\\"OPEN_FIREWALL\\\" AND state = \\\"ACTIVE\\\"\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securitycenter\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsccV2OrganizationNotificationConfig, err := pubsub.NewTopic(ctx, \"scc_v2_organization_notification_config\", \u0026pubsub.TopicArgs{\n\t\t\tName: pulumi.String(\"my-topic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = securitycenter.NewV2OrganizationNotificationConfig(ctx, \"custom_organization_notification_config\", \u0026securitycenter.V2OrganizationNotificationConfigArgs{\n\t\t\tConfigId: pulumi.String(\"my-config\"),\n\t\t\tOrganization: pulumi.String(\"123456789\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tDescription: pulumi.String(\"My custom Cloud Security Command Center Finding Organization Notification Configuration\"),\n\t\t\tPubsubTopic: sccV2OrganizationNotificationConfig.ID(),\n\t\t\tStreamingConfig: \u0026securitycenter.V2OrganizationNotificationConfigStreamingConfigArgs{\n\t\t\t\tFilter: pulumi.String(\"category = \\\"OPEN_FIREWALL\\\" AND state = \\\"ACTIVE\\\"\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.pubsub.Topic;\nimport com.pulumi.gcp.pubsub.TopicArgs;\nimport com.pulumi.gcp.securitycenter.V2OrganizationNotificationConfig;\nimport com.pulumi.gcp.securitycenter.V2OrganizationNotificationConfigArgs;\nimport com.pulumi.gcp.securitycenter.inputs.V2OrganizationNotificationConfigStreamingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var sccV2OrganizationNotificationConfig = new Topic(\"sccV2OrganizationNotificationConfig\", TopicArgs.builder()\n .name(\"my-topic\")\n .build());\n\n var customOrganizationNotificationConfig = new V2OrganizationNotificationConfig(\"customOrganizationNotificationConfig\", V2OrganizationNotificationConfigArgs.builder()\n .configId(\"my-config\")\n .organization(\"123456789\")\n .location(\"global\")\n .description(\"My custom Cloud Security Command Center Finding Organization Notification Configuration\")\n .pubsubTopic(sccV2OrganizationNotificationConfig.id())\n .streamingConfig(V2OrganizationNotificationConfigStreamingConfigArgs.builder()\n .filter(\"category = \\\"OPEN_FIREWALL\\\" AND state = \\\"ACTIVE\\\"\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n sccV2OrganizationNotificationConfig:\n type: gcp:pubsub:Topic\n name: scc_v2_organization_notification_config\n properties:\n name: my-topic\n customOrganizationNotificationConfig:\n type: gcp:securitycenter:V2OrganizationNotificationConfig\n name: custom_organization_notification_config\n properties:\n configId: my-config\n organization: '123456789'\n location: global\n description: My custom Cloud Security Command Center Finding Organization Notification Configuration\n pubsubTopic: ${sccV2OrganizationNotificationConfig.id}\n streamingConfig:\n filter: category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\"\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOrganizationNotificationConfig can be imported using any of these accepted formats:\n\n* `organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}`\n\n* `{{organization}}/{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, OrganizationNotificationConfig can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default organizations/{{organization}}/locations/{{location}}/notificationConfigs/{{name}}\n```\n\n```sh\n$ pulumi import gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig default {{organization}}/{{location}}/{{name}}\n```\n\n", "properties": { @@ -238396,7 +240154,7 @@ } }, "gcp:sql/databaseInstance:DatabaseInstance": { - "description": "Creates a new Google SQL Database Instance. For more information, see the [official documentation](https://cloud.google.com/sql/),\nor the [JSON API](https://cloud.google.com/sql/docs/admin-api/v1beta4/instances).\n\n\u003e **NOTE on `gcp.sql.DatabaseInstance`:** - Second-generation instances include a\ndefault 'root'@'%' user with no password. This user will be deleted by the provider on\ninstance creation. You should use `gcp.sql.User` to define a custom user with\na restricted host and strong password.\n\n\u003e **Note**: On newer versions of the provider, you must explicitly set `deletion_protection=false`\n(and run `pulumi update` to write the field to state) in order to destroy an instance.\nIt is recommended to not set this field (or set it to true) until you're ready to destroy the instance and its databases.\n\n## Example Usage\n\n### SQL Second Generation Instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n name: \"main-instance\",\n databaseVersion: \"POSTGRES_15\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n name=\"main-instance\",\n database_version=\"POSTGRES_15\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n Name = \"main-instance\",\n DatabaseVersion = \"POSTGRES_15\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"main-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"POSTGRES_15\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder()\n .name(\"main-instance\")\n .databaseVersion(\"POSTGRES_15\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n name: main-instance\n databaseVersion: POSTGRES_15\n region: us-central1\n settings:\n tier: db-f1-micro\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private IP Instance\n\u003e **NOTE:** For private IP instance setup, note that the `gcp.sql.DatabaseInstance` does not actually interpolate values from `gcp.servicenetworking.Connection`. You must explicitly add a `depends_on`reference as shown below.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst privateNetwork = new gcp.compute.Network(\"private_network\", {name: \"private-network\"});\nconst privateIpAddress = new gcp.compute.GlobalAddress(\"private_ip_address\", {\n name: \"private-ip-address\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: privateNetwork.id,\n});\nconst privateVpcConnection = new gcp.servicenetworking.Connection(\"private_vpc_connection\", {\n network: privateNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAddress.name],\n});\nconst dbNameSuffix = new random.RandomId(\"db_name_suffix\", {byteLength: 4});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: pulumi.interpolate`private-instance-${dbNameSuffix.hex}`,\n region: \"us-central1\",\n databaseVersion: \"MYSQL_5_7\",\n settings: {\n tier: \"db-f1-micro\",\n ipConfiguration: {\n ipv4Enabled: false,\n privateNetwork: privateNetwork.id,\n enablePrivatePathForGoogleCloudServices: true,\n },\n },\n}, {\n dependsOn: [privateVpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nprivate_network = gcp.compute.Network(\"private_network\", name=\"private-network\")\nprivate_ip_address = gcp.compute.GlobalAddress(\"private_ip_address\",\n name=\"private-ip-address\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=private_network.id)\nprivate_vpc_connection = gcp.servicenetworking.Connection(\"private_vpc_connection\",\n network=private_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_address.name])\ndb_name_suffix = random.RandomId(\"db_name_suffix\", byte_length=4)\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=db_name_suffix.hex.apply(lambda hex: f\"private-instance-{hex}\"),\n region=\"us-central1\",\n database_version=\"MYSQL_5_7\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"ip_configuration\": {\n \"ipv4_enabled\": False,\n \"private_network\": private_network.id,\n \"enable_private_path_for_google_cloud_services\": True,\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[private_vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var privateNetwork = new Gcp.Compute.Network(\"private_network\", new()\n {\n Name = \"private-network\",\n });\n\n var privateIpAddress = new Gcp.Compute.GlobalAddress(\"private_ip_address\", new()\n {\n Name = \"private-ip-address\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = privateNetwork.Id,\n });\n\n var privateVpcConnection = new Gcp.ServiceNetworking.Connection(\"private_vpc_connection\", new()\n {\n Network = privateNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAddress.Name,\n },\n });\n\n var dbNameSuffix = new Random.RandomId(\"db_name_suffix\", new()\n {\n ByteLength = 4,\n });\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = dbNameSuffix.Hex.Apply(hex =\u003e $\"private-instance-{hex}\"),\n Region = \"us-central1\",\n DatabaseVersion = \"MYSQL_5_7\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n Ipv4Enabled = false,\n PrivateNetwork = privateNetwork.Id,\n EnablePrivatePathForGoogleCloudServices = true,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n privateVpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivateNetwork, err := compute.NewNetwork(ctx, \"private_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"private-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAddress, err := compute.NewGlobalAddress(ctx, \"private_ip_address\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"private-ip-address\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateVpcConnection, err := servicenetworking.NewConnection(ctx, \"private_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAddress.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbNameSuffix, err := random.NewRandomId(ctx, \"db_name_suffix\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: dbNameSuffix.Hex.ApplyT(func(hex string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"private-instance-%v\", hex), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_5_7\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tIpv4Enabled: pulumi.Bool(false),\n\t\t\t\t\tPrivateNetwork: privateNetwork.ID(),\n\t\t\t\t\tEnablePrivatePathForGoogleCloudServices: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprivateVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var privateNetwork = new Network(\"privateNetwork\", NetworkArgs.builder()\n .name(\"private-network\")\n .build());\n\n var privateIpAddress = new GlobalAddress(\"privateIpAddress\", GlobalAddressArgs.builder()\n .name(\"private-ip-address\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(privateNetwork.id())\n .build());\n\n var privateVpcConnection = new Connection(\"privateVpcConnection\", ConnectionArgs.builder()\n .network(privateNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAddress.name())\n .build());\n\n var dbNameSuffix = new RandomId(\"dbNameSuffix\", RandomIdArgs.builder()\n .byteLength(4)\n .build());\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(dbNameSuffix.hex().applyValue(hex -\u003e String.format(\"private-instance-%s\", hex)))\n .region(\"us-central1\")\n .databaseVersion(\"MYSQL_5_7\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .ipv4Enabled(false)\n .privateNetwork(privateNetwork.id())\n .enablePrivatePathForGoogleCloudServices(true)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(privateVpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n privateNetwork:\n type: gcp:compute:Network\n name: private_network\n properties:\n name: private-network\n privateIpAddress:\n type: gcp:compute:GlobalAddress\n name: private_ip_address\n properties:\n name: private-ip-address\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${privateNetwork.id}\n privateVpcConnection:\n type: gcp:servicenetworking:Connection\n name: private_vpc_connection\n properties:\n network: ${privateNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAddress.name}\n dbNameSuffix:\n type: random:RandomId\n name: db_name_suffix\n properties:\n byteLength: 4\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: private-instance-${dbNameSuffix.hex}\n region: us-central1\n databaseVersion: MYSQL_5_7\n settings:\n tier: db-f1-micro\n ipConfiguration:\n ipv4Enabled: false\n privateNetwork: ${privateNetwork.id}\n enablePrivatePathForGoogleCloudServices: true\n options:\n dependson:\n - ${privateVpcConnection}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ENTERPRISE_PLUS Instance with data_cache_config\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n name: \"enterprise-plus-main-instance\",\n databaseVersion: \"MYSQL_8_0_31\",\n settings: {\n tier: \"db-perf-optimized-N-2\",\n edition: \"ENTERPRISE_PLUS\",\n dataCacheConfig: {\n dataCacheEnabled: true,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n name=\"enterprise-plus-main-instance\",\n database_version=\"MYSQL_8_0_31\",\n settings={\n \"tier\": \"db-perf-optimized-N-2\",\n \"edition\": \"ENTERPRISE_PLUS\",\n \"data_cache_config\": {\n \"data_cache_enabled\": True,\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n Name = \"enterprise-plus-main-instance\",\n DatabaseVersion = \"MYSQL_8_0_31\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-perf-optimized-N-2\",\n Edition = \"ENTERPRISE_PLUS\",\n DataCacheConfig = new Gcp.Sql.Inputs.DatabaseInstanceSettingsDataCacheConfigArgs\n {\n DataCacheEnabled = true,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"enterprise-plus-main-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0_31\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-perf-optimized-N-2\"),\n\t\t\t\tEdition: pulumi.String(\"ENTERPRISE_PLUS\"),\n\t\t\t\tDataCacheConfig: \u0026sql.DatabaseInstanceSettingsDataCacheConfigArgs{\n\t\t\t\t\tDataCacheEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsDataCacheConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder()\n .name(\"enterprise-plus-main-instance\")\n .databaseVersion(\"MYSQL_8_0_31\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-perf-optimized-N-2\")\n .edition(\"ENTERPRISE_PLUS\")\n .dataCacheConfig(DatabaseInstanceSettingsDataCacheConfigArgs.builder()\n .dataCacheEnabled(true)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n name: enterprise-plus-main-instance\n databaseVersion: MYSQL_8_0_31\n settings:\n tier: db-perf-optimized-N-2\n edition: ENTERPRISE_PLUS\n dataCacheConfig:\n dataCacheEnabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Cloud SQL Instance with PSC connectivity\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n name: \"psc-enabled-main-instance\",\n databaseVersion: \"MYSQL_8_0\",\n settings: {\n tier: \"db-f1-micro\",\n ipConfiguration: {\n pscConfigs: [{\n pscEnabled: true,\n allowedConsumerProjects: [\"allowed-consumer-project-name\"],\n }],\n ipv4Enabled: false,\n },\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n availabilityType: \"REGIONAL\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n name=\"psc-enabled-main-instance\",\n database_version=\"MYSQL_8_0\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"ip_configuration\": {\n \"psc_configs\": [{\n \"psc_enabled\": True,\n \"allowed_consumer_projects\": [\"allowed-consumer-project-name\"],\n }],\n \"ipv4_enabled\": False,\n },\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"availability_type\": \"REGIONAL\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n Name = \"psc-enabled-main-instance\",\n DatabaseVersion = \"MYSQL_8_0\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n PscConfigs = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationPscConfigArgs\n {\n PscEnabled = true,\n AllowedConsumerProjects = new[]\n {\n \"allowed-consumer-project-name\",\n },\n },\n },\n Ipv4Enabled = false,\n },\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n AvailabilityType = \"REGIONAL\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"psc-enabled-main-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tPscConfigs: sql.DatabaseInstanceSettingsIpConfigurationPscConfigArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationPscConfigArgs{\n\t\t\t\t\t\t\tPscEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t\tAllowedConsumerProjects: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"allowed-consumer-project-name\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tIpv4Enabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tAvailabilityType: pulumi.String(\"REGIONAL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder()\n .name(\"psc-enabled-main-instance\")\n .databaseVersion(\"MYSQL_8_0\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .pscConfigs(DatabaseInstanceSettingsIpConfigurationPscConfigArgs.builder()\n .pscEnabled(true)\n .allowedConsumerProjects(\"allowed-consumer-project-name\")\n .build())\n .ipv4Enabled(false)\n .build())\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .availabilityType(\"REGIONAL\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n name: psc-enabled-main-instance\n databaseVersion: MYSQL_8_0\n settings:\n tier: db-f1-micro\n ipConfiguration:\n pscConfigs:\n - pscEnabled: true\n allowedConsumerProjects:\n - allowed-consumer-project-name\n ipv4Enabled: false\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n availabilityType: REGIONAL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase instances can be imported using one of any of these accepted formats:\n\n* `projects/{{project}}/instances/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Database instances can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:sql/databaseInstance:DatabaseInstance default projects/{{project}}/instances/{{name}}\n```\n\n```sh\n$ pulumi import gcp:sql/databaseInstance:DatabaseInstance default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:sql/databaseInstance:DatabaseInstance default {{name}}\n```\n\nconfig and set on the server.\n\nWhen importing, double-check that your config has all the fields set that you expect- just seeing\n\nno diff isn't sufficient to know that your config could reproduce the imported resource.\n\n", + "description": "Creates a new Google SQL Database Instance. For more information, see the [official documentation](https://cloud.google.com/sql/),\nor the [JSON API](https://cloud.google.com/sql/docs/admin-api/v1beta4/instances).\n\n\u003e **NOTE on `gcp.sql.DatabaseInstance`:** - Second-generation instances include a\ndefault 'root'@'%' user with no password. This user will be deleted by the provider on\ninstance creation. You should use `gcp.sql.User` to define a custom user with\na restricted host and strong password.\n\n\u003e **Note**: On newer versions of the provider, you must explicitly set `deletion_protection=false`\n(and run `pulumi update` to write the field to state) in order to destroy an instance.\nIt is recommended to not set this field (or set it to true) until you're ready to destroy the instance and its databases.\n\n## Example Usage\n\n### SQL Second Generation Instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n name: \"main-instance\",\n databaseVersion: \"POSTGRES_15\",\n region: \"us-central1\",\n settings: {\n tier: \"db-f1-micro\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n name=\"main-instance\",\n database_version=\"POSTGRES_15\",\n region=\"us-central1\",\n settings={\n \"tier\": \"db-f1-micro\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n Name = \"main-instance\",\n DatabaseVersion = \"POSTGRES_15\",\n Region = \"us-central1\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"main-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"POSTGRES_15\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder()\n .name(\"main-instance\")\n .databaseVersion(\"POSTGRES_15\")\n .region(\"us-central1\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n name: main-instance\n databaseVersion: POSTGRES_15\n region: us-central1\n settings:\n tier: db-f1-micro\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Private IP Instance\n\u003e **NOTE:** For private IP instance setup, note that the `gcp.sql.DatabaseInstance` does not actually interpolate values from `gcp.servicenetworking.Connection`. You must explicitly add a `depends_on`reference as shown below.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as random from \"@pulumi/random\";\n\nconst privateNetwork = new gcp.compute.Network(\"private_network\", {name: \"private-network\"});\nconst privateIpAddress = new gcp.compute.GlobalAddress(\"private_ip_address\", {\n name: \"private-ip-address\",\n purpose: \"VPC_PEERING\",\n addressType: \"INTERNAL\",\n prefixLength: 16,\n network: privateNetwork.id,\n});\nconst privateVpcConnection = new gcp.servicenetworking.Connection(\"private_vpc_connection\", {\n network: privateNetwork.id,\n service: \"servicenetworking.googleapis.com\",\n reservedPeeringRanges: [privateIpAddress.name],\n});\nconst dbNameSuffix = new random.RandomId(\"db_name_suffix\", {byteLength: 4});\nconst instance = new gcp.sql.DatabaseInstance(\"instance\", {\n name: pulumi.interpolate`private-instance-${dbNameSuffix.hex}`,\n region: \"us-central1\",\n databaseVersion: \"MYSQL_5_7\",\n settings: {\n tier: \"db-f1-micro\",\n ipConfiguration: {\n ipv4Enabled: false,\n privateNetwork: privateNetwork.selfLink,\n enablePrivatePathForGoogleCloudServices: true,\n },\n },\n}, {\n dependsOn: [privateVpcConnection],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_random as random\n\nprivate_network = gcp.compute.Network(\"private_network\", name=\"private-network\")\nprivate_ip_address = gcp.compute.GlobalAddress(\"private_ip_address\",\n name=\"private-ip-address\",\n purpose=\"VPC_PEERING\",\n address_type=\"INTERNAL\",\n prefix_length=16,\n network=private_network.id)\nprivate_vpc_connection = gcp.servicenetworking.Connection(\"private_vpc_connection\",\n network=private_network.id,\n service=\"servicenetworking.googleapis.com\",\n reserved_peering_ranges=[private_ip_address.name])\ndb_name_suffix = random.RandomId(\"db_name_suffix\", byte_length=4)\ninstance = gcp.sql.DatabaseInstance(\"instance\",\n name=db_name_suffix.hex.apply(lambda hex: f\"private-instance-{hex}\"),\n region=\"us-central1\",\n database_version=\"MYSQL_5_7\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"ip_configuration\": {\n \"ipv4_enabled\": False,\n \"private_network\": private_network.self_link,\n \"enable_private_path_for_google_cloud_services\": True,\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[private_vpc_connection]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Random = Pulumi.Random;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var privateNetwork = new Gcp.Compute.Network(\"private_network\", new()\n {\n Name = \"private-network\",\n });\n\n var privateIpAddress = new Gcp.Compute.GlobalAddress(\"private_ip_address\", new()\n {\n Name = \"private-ip-address\",\n Purpose = \"VPC_PEERING\",\n AddressType = \"INTERNAL\",\n PrefixLength = 16,\n Network = privateNetwork.Id,\n });\n\n var privateVpcConnection = new Gcp.ServiceNetworking.Connection(\"private_vpc_connection\", new()\n {\n Network = privateNetwork.Id,\n Service = \"servicenetworking.googleapis.com\",\n ReservedPeeringRanges = new[]\n {\n privateIpAddress.Name,\n },\n });\n\n var dbNameSuffix = new Random.RandomId(\"db_name_suffix\", new()\n {\n ByteLength = 4,\n });\n\n var instance = new Gcp.Sql.DatabaseInstance(\"instance\", new()\n {\n Name = dbNameSuffix.Hex.Apply(hex =\u003e $\"private-instance-{hex}\"),\n Region = \"us-central1\",\n DatabaseVersion = \"MYSQL_5_7\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n Ipv4Enabled = false,\n PrivateNetwork = privateNetwork.SelfLink,\n EnablePrivatePathForGoogleCloudServices = true,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n privateVpcConnection,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi-random/sdk/v4/go/random\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprivateNetwork, err := compute.NewNetwork(ctx, \"private_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"private-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateIpAddress, err := compute.NewGlobalAddress(ctx, \"private_ip_address\", \u0026compute.GlobalAddressArgs{\n\t\t\tName: pulumi.String(\"private-ip-address\"),\n\t\t\tPurpose: pulumi.String(\"VPC_PEERING\"),\n\t\t\tAddressType: pulumi.String(\"INTERNAL\"),\n\t\t\tPrefixLength: pulumi.Int(16),\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprivateVpcConnection, err := servicenetworking.NewConnection(ctx, \"private_vpc_connection\", \u0026servicenetworking.ConnectionArgs{\n\t\t\tNetwork: privateNetwork.ID(),\n\t\t\tService: pulumi.String(\"servicenetworking.googleapis.com\"),\n\t\t\tReservedPeeringRanges: pulumi.StringArray{\n\t\t\t\tprivateIpAddress.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdbNameSuffix, err := random.NewRandomId(ctx, \"db_name_suffix\", \u0026random.RandomIdArgs{\n\t\t\tByteLength: pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewDatabaseInstance(ctx, \"instance\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: dbNameSuffix.Hex.ApplyT(func(hex string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"private-instance-%v\", hex), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_5_7\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tIpv4Enabled: pulumi.Bool(false),\n\t\t\t\t\tPrivateNetwork: privateNetwork.SelfLink,\n\t\t\t\t\tEnablePrivatePathForGoogleCloudServices: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tprivateVpcConnection,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.GlobalAddress;\nimport com.pulumi.gcp.compute.GlobalAddressArgs;\nimport com.pulumi.gcp.servicenetworking.Connection;\nimport com.pulumi.gcp.servicenetworking.ConnectionArgs;\nimport com.pulumi.random.RandomId;\nimport com.pulumi.random.RandomIdArgs;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var privateNetwork = new Network(\"privateNetwork\", NetworkArgs.builder()\n .name(\"private-network\")\n .build());\n\n var privateIpAddress = new GlobalAddress(\"privateIpAddress\", GlobalAddressArgs.builder()\n .name(\"private-ip-address\")\n .purpose(\"VPC_PEERING\")\n .addressType(\"INTERNAL\")\n .prefixLength(16)\n .network(privateNetwork.id())\n .build());\n\n var privateVpcConnection = new Connection(\"privateVpcConnection\", ConnectionArgs.builder()\n .network(privateNetwork.id())\n .service(\"servicenetworking.googleapis.com\")\n .reservedPeeringRanges(privateIpAddress.name())\n .build());\n\n var dbNameSuffix = new RandomId(\"dbNameSuffix\", RandomIdArgs.builder()\n .byteLength(4)\n .build());\n\n var instance = new DatabaseInstance(\"instance\", DatabaseInstanceArgs.builder()\n .name(dbNameSuffix.hex().applyValue(hex -\u003e String.format(\"private-instance-%s\", hex)))\n .region(\"us-central1\")\n .databaseVersion(\"MYSQL_5_7\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .ipv4Enabled(false)\n .privateNetwork(privateNetwork.selfLink())\n .enablePrivatePathForGoogleCloudServices(true)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(privateVpcConnection)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n privateNetwork:\n type: gcp:compute:Network\n name: private_network\n properties:\n name: private-network\n privateIpAddress:\n type: gcp:compute:GlobalAddress\n name: private_ip_address\n properties:\n name: private-ip-address\n purpose: VPC_PEERING\n addressType: INTERNAL\n prefixLength: 16\n network: ${privateNetwork.id}\n privateVpcConnection:\n type: gcp:servicenetworking:Connection\n name: private_vpc_connection\n properties:\n network: ${privateNetwork.id}\n service: servicenetworking.googleapis.com\n reservedPeeringRanges:\n - ${privateIpAddress.name}\n dbNameSuffix:\n type: random:RandomId\n name: db_name_suffix\n properties:\n byteLength: 4\n instance:\n type: gcp:sql:DatabaseInstance\n properties:\n name: private-instance-${dbNameSuffix.hex}\n region: us-central1\n databaseVersion: MYSQL_5_7\n settings:\n tier: db-f1-micro\n ipConfiguration:\n ipv4Enabled: false\n privateNetwork: ${privateNetwork.selfLink}\n enablePrivatePathForGoogleCloudServices: true\n options:\n dependson:\n - ${privateVpcConnection}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### ENTERPRISE_PLUS Instance with data_cache_config\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n name: \"enterprise-plus-main-instance\",\n databaseVersion: \"MYSQL_8_0_31\",\n settings: {\n tier: \"db-perf-optimized-N-2\",\n edition: \"ENTERPRISE_PLUS\",\n dataCacheConfig: {\n dataCacheEnabled: true,\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n name=\"enterprise-plus-main-instance\",\n database_version=\"MYSQL_8_0_31\",\n settings={\n \"tier\": \"db-perf-optimized-N-2\",\n \"edition\": \"ENTERPRISE_PLUS\",\n \"data_cache_config\": {\n \"data_cache_enabled\": True,\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n Name = \"enterprise-plus-main-instance\",\n DatabaseVersion = \"MYSQL_8_0_31\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-perf-optimized-N-2\",\n Edition = \"ENTERPRISE_PLUS\",\n DataCacheConfig = new Gcp.Sql.Inputs.DatabaseInstanceSettingsDataCacheConfigArgs\n {\n DataCacheEnabled = true,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"enterprise-plus-main-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0_31\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-perf-optimized-N-2\"),\n\t\t\t\tEdition: pulumi.String(\"ENTERPRISE_PLUS\"),\n\t\t\t\tDataCacheConfig: \u0026sql.DatabaseInstanceSettingsDataCacheConfigArgs{\n\t\t\t\t\tDataCacheEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsDataCacheConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder()\n .name(\"enterprise-plus-main-instance\")\n .databaseVersion(\"MYSQL_8_0_31\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-perf-optimized-N-2\")\n .edition(\"ENTERPRISE_PLUS\")\n .dataCacheConfig(DatabaseInstanceSettingsDataCacheConfigArgs.builder()\n .dataCacheEnabled(true)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n name: enterprise-plus-main-instance\n databaseVersion: MYSQL_8_0_31\n settings:\n tier: db-perf-optimized-N-2\n edition: ENTERPRISE_PLUS\n dataCacheConfig:\n dataCacheEnabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Cloud SQL Instance with PSC connectivity\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst main = new gcp.sql.DatabaseInstance(\"main\", {\n name: \"psc-enabled-main-instance\",\n databaseVersion: \"MYSQL_8_0\",\n settings: {\n tier: \"db-f1-micro\",\n ipConfiguration: {\n pscConfigs: [{\n pscEnabled: true,\n allowedConsumerProjects: [\"allowed-consumer-project-name\"],\n }],\n ipv4Enabled: false,\n },\n backupConfiguration: {\n enabled: true,\n binaryLogEnabled: true,\n },\n availabilityType: \"REGIONAL\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmain = gcp.sql.DatabaseInstance(\"main\",\n name=\"psc-enabled-main-instance\",\n database_version=\"MYSQL_8_0\",\n settings={\n \"tier\": \"db-f1-micro\",\n \"ip_configuration\": {\n \"psc_configs\": [{\n \"psc_enabled\": True,\n \"allowed_consumer_projects\": [\"allowed-consumer-project-name\"],\n }],\n \"ipv4_enabled\": False,\n },\n \"backup_configuration\": {\n \"enabled\": True,\n \"binary_log_enabled\": True,\n },\n \"availability_type\": \"REGIONAL\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Gcp.Sql.DatabaseInstance(\"main\", new()\n {\n Name = \"psc-enabled-main-instance\",\n DatabaseVersion = \"MYSQL_8_0\",\n Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs\n {\n Tier = \"db-f1-micro\",\n IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs\n {\n PscConfigs = new[]\n {\n new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationPscConfigArgs\n {\n PscEnabled = true,\n AllowedConsumerProjects = new[]\n {\n \"allowed-consumer-project-name\",\n },\n },\n },\n Ipv4Enabled = false,\n },\n BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs\n {\n Enabled = true,\n BinaryLogEnabled = true,\n },\n AvailabilityType = \"REGIONAL\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sql.NewDatabaseInstance(ctx, \"main\", \u0026sql.DatabaseInstanceArgs{\n\t\t\tName: pulumi.String(\"psc-enabled-main-instance\"),\n\t\t\tDatabaseVersion: pulumi.String(\"MYSQL_8_0\"),\n\t\t\tSettings: \u0026sql.DatabaseInstanceSettingsArgs{\n\t\t\t\tTier: pulumi.String(\"db-f1-micro\"),\n\t\t\t\tIpConfiguration: \u0026sql.DatabaseInstanceSettingsIpConfigurationArgs{\n\t\t\t\t\tPscConfigs: sql.DatabaseInstanceSettingsIpConfigurationPscConfigArray{\n\t\t\t\t\t\t\u0026sql.DatabaseInstanceSettingsIpConfigurationPscConfigArgs{\n\t\t\t\t\t\t\tPscEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t\tAllowedConsumerProjects: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"allowed-consumer-project-name\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tIpv4Enabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tBackupConfiguration: \u0026sql.DatabaseInstanceSettingsBackupConfigurationArgs{\n\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\tBinaryLogEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tAvailabilityType: pulumi.String(\"REGIONAL\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.sql.DatabaseInstance;\nimport com.pulumi.gcp.sql.DatabaseInstanceArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;\nimport com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new DatabaseInstance(\"main\", DatabaseInstanceArgs.builder()\n .name(\"psc-enabled-main-instance\")\n .databaseVersion(\"MYSQL_8_0\")\n .settings(DatabaseInstanceSettingsArgs.builder()\n .tier(\"db-f1-micro\")\n .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()\n .pscConfigs(DatabaseInstanceSettingsIpConfigurationPscConfigArgs.builder()\n .pscEnabled(true)\n .allowedConsumerProjects(\"allowed-consumer-project-name\")\n .build())\n .ipv4Enabled(false)\n .build())\n .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()\n .enabled(true)\n .binaryLogEnabled(true)\n .build())\n .availabilityType(\"REGIONAL\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n main:\n type: gcp:sql:DatabaseInstance\n properties:\n name: psc-enabled-main-instance\n databaseVersion: MYSQL_8_0\n settings:\n tier: db-f1-micro\n ipConfiguration:\n pscConfigs:\n - pscEnabled: true\n allowedConsumerProjects:\n - allowed-consumer-project-name\n ipv4Enabled: false\n backupConfiguration:\n enabled: true\n binaryLogEnabled: true\n availabilityType: REGIONAL\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase instances can be imported using one of any of these accepted formats:\n\n* `projects/{{project}}/instances/{{name}}`\n\n* `{{project}}/{{name}}`\n\n* `{{name}}`\n\nWhen using the `pulumi import` command, Database instances can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:sql/databaseInstance:DatabaseInstance default projects/{{project}}/instances/{{name}}\n```\n\n```sh\n$ pulumi import gcp:sql/databaseInstance:DatabaseInstance default {{project}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:sql/databaseInstance:DatabaseInstance default {{name}}\n```\n\nconfig and set on the server.\n\nWhen importing, double-check that your config has all the fields set that you expect- just seeing\n\nno diff isn't sufficient to know that your config could reproduce the imported resource.\n\n", "properties": { "availableMaintenanceVersions": { "type": "array", @@ -244393,7 +246151,7 @@ } }, "gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview": { - "description": "FeatureView is representation of values that the FeatureOnlineStore will serve based on its syncConfig.\n\n\nTo get more information about FeatureOnlineStoreFeatureview, see:\n\n* [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featureOnlineStores.featureViews)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/vertex-ai/docs)\n\n## Example Usage\n\n### Vertex Ai Featureonlinestore Featureview\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_feature_view\",\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n});\nconst tf_test_dataset = new gcp.bigquery.Dataset(\"tf-test-dataset\", {\n datasetId: \"example_feature_view\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst tf_test_table = new gcp.bigquery.Table(\"tf-test-table\", {\n deletionProtection: false,\n datasetId: tf_test_dataset.datasetId,\n tableId: \"example_feature_view\",\n schema: ` [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n`,\n});\nconst featureview = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview\", {\n name: \"example_feature_view\",\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n bigQuerySource: {\n uri: pulumi.interpolate`bq://${tf_test_table.project}.${tf_test_table.datasetId}.${tf_test_table.tableId}`,\n entityIdColumns: [\"test_entity_column\"],\n },\n});\nconst project = gcp.organizations.getProject({});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_feature_view\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n })\ntf_test_dataset = gcp.bigquery.Dataset(\"tf-test-dataset\",\n dataset_id=\"example_feature_view\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\ntf_test_table = gcp.bigquery.Table(\"tf-test-table\",\n deletion_protection=False,\n dataset_id=tf_test_dataset.dataset_id,\n table_id=\"example_feature_view\",\n schema=\"\"\" [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n\"\"\")\nfeatureview = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview\",\n name=\"example_feature_view\",\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n big_query_source={\n \"uri\": pulumi.Output.all(tf_test_table.project, tf_test_table.dataset_id, tf_test_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n \"entity_id_columns\": [\"test_entity_column\"],\n })\nproject = gcp.organizations.get_project()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_feature_view\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n });\n\n var tf_test_dataset = new Gcp.BigQuery.Dataset(\"tf-test-dataset\", new()\n {\n DatasetId = \"example_feature_view\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var tf_test_table = new Gcp.BigQuery.Table(\"tf-test-table\", new()\n {\n DeletionProtection = false,\n DatasetId = tf_test_dataset.DatasetId,\n TableId = \"example_feature_view\",\n Schema = @\" [\n {\n \"\"name\"\": \"\"entity_id\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"Test default entity_id\"\"\n },\n {\n \"\"name\"\": \"\"test_entity_column\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"test secondary entity column\"\"\n },\n {\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"description\"\": \"\"Default timestamp value\"\"\n }\n]\n\",\n });\n\n var featureview = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"featureview\", new()\n {\n Name = \"example_feature_view\",\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs\n {\n Uri = Output.Tuple(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n EntityIdColumns = new[]\n {\n \"test_entity_column\",\n },\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_feature_view\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewDataset(ctx, \"tf-test-dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_feature_view\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewTable(ctx, \"tf-test-table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: tf_test_dataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_feature_view\"),\n\t\t\tSchema: pulumi.String(` [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"featureview\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_feature_view\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tBigQuerySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs{\n\t\t\t\tUri: pulumi.All(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"test_entity_column\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_feature_view\")\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .build());\n\n var tf_test_dataset = new Dataset(\"tf-test-dataset\", DatasetArgs.builder()\n .datasetId(\"example_feature_view\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var tf_test_table = new Table(\"tf-test-table\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(tf_test_dataset.datasetId())\n .tableId(\"example_feature_view\")\n .schema(\"\"\"\n [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n \"\"\")\n .build());\n\n var featureview = new AiFeatureOnlineStoreFeatureview(\"featureview\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_feature_view\")\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .bigQuerySource(AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs.builder()\n .uri(Output.tuple(tf_test_table.project(), tf_test_table.datasetId(), tf_test_table.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .entityIdColumns(\"test_entity_column\")\n .build())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n }\n}\n```\n```yaml\nresources:\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_feature_view\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n tf-test-dataset:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_feature_view\n friendlyName: test\n description: This is a test description\n location: US\n tf-test-table:\n type: gcp:bigquery:Table\n properties:\n deletionProtection: false\n datasetId: ${[\"tf-test-dataset\"].datasetId}\n tableId: example_feature_view\n schema: |2\n [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n ]\n featureview:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n properties:\n name: example_feature_view\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n bigQuerySource:\n uri: bq://${[\"tf-test-table\"].project}.${[\"tf-test-table\"].datasetId}.${[\"tf-test-table\"].tableId}\n entityIdColumns:\n - test_entity_column\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vertex Ai Featureonlinestore Featureview Feature Registry\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_feature_view_feature_registry\",\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n});\nconst sampleDataset = new gcp.bigquery.Dataset(\"sample_dataset\", {\n datasetId: \"example_feature_view_feature_registry\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst sampleTable = new gcp.bigquery.Table(\"sample_table\", {\n deletionProtection: false,\n datasetId: sampleDataset.datasetId,\n tableId: \"example_feature_view_feature_registry\",\n schema: `[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`,\n});\nconst sampleFeatureGroup = new gcp.vertex.AiFeatureGroup(\"sample_feature_group\", {\n name: \"example_feature_view_feature_registry\",\n description: \"A sample feature group\",\n region: \"us-central1\",\n labels: {\n \"label-one\": \"value-one\",\n },\n bigQuery: {\n bigQuerySource: {\n inputUri: pulumi.interpolate`bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}`,\n },\n entityIdColumns: [\"feature_id\"],\n },\n});\nconst sampleFeature = new gcp.vertex.AiFeatureGroupFeature(\"sample_feature\", {\n name: \"example_feature_view_feature_registry\",\n region: \"us-central1\",\n featureGroup: sampleFeatureGroup.name,\n description: \"A sample feature\",\n labels: {\n \"label-one\": \"value-one\",\n },\n});\nconst featureviewFeatureregistry = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_featureregistry\", {\n name: \"example_feature_view_feature_registry\",\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n featureRegistrySource: {\n featureGroups: [{\n featureGroupId: sampleFeatureGroup.name,\n featureIds: [sampleFeature.name],\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_feature_view_feature_registry\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n })\nsample_dataset = gcp.bigquery.Dataset(\"sample_dataset\",\n dataset_id=\"example_feature_view_feature_registry\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\nsample_table = gcp.bigquery.Table(\"sample_table\",\n deletion_protection=False,\n dataset_id=sample_dataset.dataset_id,\n table_id=\"example_feature_view_feature_registry\",\n schema=\"\"\"[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n\"\"\")\nsample_feature_group = gcp.vertex.AiFeatureGroup(\"sample_feature_group\",\n name=\"example_feature_view_feature_registry\",\n description=\"A sample feature group\",\n region=\"us-central1\",\n labels={\n \"label-one\": \"value-one\",\n },\n big_query={\n \"big_query_source\": {\n \"input_uri\": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n },\n \"entity_id_columns\": [\"feature_id\"],\n })\nsample_feature = gcp.vertex.AiFeatureGroupFeature(\"sample_feature\",\n name=\"example_feature_view_feature_registry\",\n region=\"us-central1\",\n feature_group=sample_feature_group.name,\n description=\"A sample feature\",\n labels={\n \"label-one\": \"value-one\",\n })\nfeatureview_featureregistry = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_featureregistry\",\n name=\"example_feature_view_feature_registry\",\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n feature_registry_source={\n \"feature_groups\": [{\n \"feature_group_id\": sample_feature_group.name,\n \"feature_ids\": [sample_feature.name],\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n });\n\n var sampleDataset = new Gcp.BigQuery.Dataset(\"sample_dataset\", new()\n {\n DatasetId = \"example_feature_view_feature_registry\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var sampleTable = new Gcp.BigQuery.Table(\"sample_table\", new()\n {\n DeletionProtection = false,\n DatasetId = sampleDataset.DatasetId,\n TableId = \"example_feature_view_feature_registry\",\n Schema = @\"[\n {\n \"\"name\"\": \"\"feature_id\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"example_feature_view_feature_registry\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n }\n]\n\",\n });\n\n var sampleFeatureGroup = new Gcp.Vertex.AiFeatureGroup(\"sample_feature_group\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Description = \"A sample feature group\",\n Region = \"us-central1\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n BigQuery = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryArgs\n {\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryBigQuerySourceArgs\n {\n InputUri = Output.Tuple(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n },\n EntityIdColumns = new[]\n {\n \"feature_id\",\n },\n },\n });\n\n var sampleFeature = new Gcp.Vertex.AiFeatureGroupFeature(\"sample_feature\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Region = \"us-central1\",\n FeatureGroup = sampleFeatureGroup.Name,\n Description = \"A sample feature\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n });\n\n var featureviewFeatureregistry = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"featureview_featureregistry\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n FeatureRegistrySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs\n {\n FeatureGroups = new[]\n {\n new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs\n {\n FeatureGroupId = sampleFeatureGroup.Name,\n FeatureIds = new[]\n {\n sampleFeature.Name,\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleDataset, err := bigquery.NewDataset(ctx, \"sample_dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleTable, err := bigquery.NewTable(ctx, \"sample_table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: sampleDataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeatureGroup, err := vertex.NewAiFeatureGroup(ctx, \"sample_feature_group\", \u0026vertex.AiFeatureGroupArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tDescription: pulumi.String(\"A sample feature group\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tBigQuery: \u0026vertex.AiFeatureGroupBigQueryArgs{\n\t\t\t\tBigQuerySource: \u0026vertex.AiFeatureGroupBigQueryBigQuerySourceArgs{\n\t\t\t\t\tInputUri: pulumi.All(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"feature_id\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeature, err := vertex.NewAiFeatureGroupFeature(ctx, \"sample_feature\", \u0026vertex.AiFeatureGroupFeatureArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureGroup: sampleFeatureGroup.Name,\n\t\t\tDescription: pulumi.String(\"A sample feature\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"featureview_featureregistry\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tFeatureRegistrySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs{\n\t\t\t\tFeatureGroups: vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArray{\n\t\t\t\t\t\u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs{\n\t\t\t\t\t\tFeatureGroupId: sampleFeatureGroup.Name,\n\t\t\t\t\t\tFeatureIds: pulumi.StringArray{\n\t\t\t\t\t\t\tsampleFeature.Name,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroup;\nimport com.pulumi.gcp.vertex.AiFeatureGroupArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryBigQuerySourceArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeature;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeatureArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .build());\n\n var sampleDataset = new Dataset(\"sampleDataset\", DatasetArgs.builder()\n .datasetId(\"example_feature_view_feature_registry\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var sampleTable = new Table(\"sampleTable\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(sampleDataset.datasetId())\n .tableId(\"example_feature_view_feature_registry\")\n .schema(\"\"\"\n[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n \"\"\")\n .build());\n\n var sampleFeatureGroup = new AiFeatureGroup(\"sampleFeatureGroup\", AiFeatureGroupArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .description(\"A sample feature group\")\n .region(\"us-central1\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .bigQuery(AiFeatureGroupBigQueryArgs.builder()\n .bigQuerySource(AiFeatureGroupBigQueryBigQuerySourceArgs.builder()\n .inputUri(Output.tuple(sampleTable.project(), sampleTable.datasetId(), sampleTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .build())\n .entityIdColumns(\"feature_id\")\n .build())\n .build());\n\n var sampleFeature = new AiFeatureGroupFeature(\"sampleFeature\", AiFeatureGroupFeatureArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .region(\"us-central1\")\n .featureGroup(sampleFeatureGroup.name())\n .description(\"A sample feature\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .build());\n\n var featureviewFeatureregistry = new AiFeatureOnlineStoreFeatureview(\"featureviewFeatureregistry\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .featureRegistrySource(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs.builder()\n .featureGroups(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs.builder()\n .featureGroupId(sampleFeatureGroup.name())\n .featureIds(sampleFeature.name())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_feature_view_feature_registry\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n sampleDataset:\n type: gcp:bigquery:Dataset\n name: sample_dataset\n properties:\n datasetId: example_feature_view_feature_registry\n friendlyName: test\n description: This is a test description\n location: US\n sampleTable:\n type: gcp:bigquery:Table\n name: sample_table\n properties:\n deletionProtection: false\n datasetId: ${sampleDataset.datasetId}\n tableId: example_feature_view_feature_registry\n schema: |\n [\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n ]\n sampleFeatureGroup:\n type: gcp:vertex:AiFeatureGroup\n name: sample_feature_group\n properties:\n name: example_feature_view_feature_registry\n description: A sample feature group\n region: us-central1\n labels:\n label-one: value-one\n bigQuery:\n bigQuerySource:\n inputUri: bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}\n entityIdColumns:\n - feature_id\n sampleFeature:\n type: gcp:vertex:AiFeatureGroupFeature\n name: sample_feature\n properties:\n name: example_feature_view_feature_registry\n region: us-central1\n featureGroup: ${sampleFeatureGroup.name}\n description: A sample feature\n labels:\n label-one: value-one\n featureviewFeatureregistry:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n name: featureview_featureregistry\n properties:\n name: example_feature_view_feature_registry\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n featureRegistrySource:\n featureGroups:\n - featureGroupId: ${sampleFeatureGroup.name}\n featureIds:\n - ${sampleFeature.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vertex Ai Featureonlinestore Featureview Cross Project\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst testProject = gcp.organizations.getProject({});\nconst project = new gcp.organizations.Project(\"project\", {\n projectId: \"tf-test_55138\",\n name: \"tf-test_37559\",\n orgId: \"123456789\",\n billingAccount: \"000000-0000000-0000000-000000\",\n});\nconst wait60Seconds = new time.index.Sleep(\"wait_60_seconds\", {createDuration: \"60s\"}, {\n dependsOn: [project],\n});\nconst vertexai = new gcp.projects.Service(\"vertexai\", {\n service: \"aiplatform.googleapis.com\",\n project: project.projectId,\n disableOnDestroy: false,\n}, {\n dependsOn: [wait60Seconds],\n});\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_cross_project_featureview\",\n project: project.projectId,\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n}, {\n dependsOn: [vertexai],\n});\nconst sampleDataset = new gcp.bigquery.Dataset(\"sample_dataset\", {\n datasetId: \"example_cross_project_featureview\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst viewer = new gcp.bigquery.DatasetIamMember(\"viewer\", {\n project: testProject.then(testProject =\u003e testProject.projectId),\n datasetId: sampleDataset.datasetId,\n role: \"roles/bigquery.dataViewer\",\n member: pulumi.interpolate`serviceAccount:service-${project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com`,\n}, {\n dependsOn: [featureonlinestore],\n});\nconst wait30Seconds = new time.index.Sleep(\"wait_30_seconds\", {createDuration: \"30s\"}, {\n dependsOn: [viewer],\n});\nconst sampleTable = new gcp.bigquery.Table(\"sample_table\", {\n deletionProtection: false,\n datasetId: sampleDataset.datasetId,\n tableId: \"example_cross_project_featureview\",\n schema: `[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`,\n});\nconst sampleFeatureGroup = new gcp.vertex.AiFeatureGroup(\"sample_feature_group\", {\n name: \"example_cross_project_featureview\",\n description: \"A sample feature group\",\n region: \"us-central1\",\n labels: {\n \"label-one\": \"value-one\",\n },\n bigQuery: {\n bigQuerySource: {\n inputUri: pulumi.interpolate`bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}`,\n },\n entityIdColumns: [\"feature_id\"],\n },\n});\nconst sampleFeature = new gcp.vertex.AiFeatureGroupFeature(\"sample_feature\", {\n name: \"example_cross_project_featureview\",\n region: \"us-central1\",\n featureGroup: sampleFeatureGroup.name,\n description: \"A sample feature\",\n labels: {\n \"label-one\": \"value-one\",\n },\n});\nconst crossProjectFeatureview = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"cross_project_featureview\", {\n name: \"example_cross_project_featureview\",\n project: project.projectId,\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n featureRegistrySource: {\n featureGroups: [{\n featureGroupId: sampleFeatureGroup.name,\n featureIds: [sampleFeature.name],\n }],\n projectNumber: testProject.then(testProject =\u003e testProject.number),\n },\n}, {\n dependsOn: [\n vertexai,\n wait30Seconds,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\ntest_project = gcp.organizations.get_project()\nproject = gcp.organizations.Project(\"project\",\n project_id=\"tf-test_55138\",\n name=\"tf-test_37559\",\n org_id=\"123456789\",\n billing_account=\"000000-0000000-0000000-000000\")\nwait60_seconds = time.index.Sleep(\"wait_60_seconds\", create_duration=60s,\nopts = pulumi.ResourceOptions(depends_on=[project]))\nvertexai = gcp.projects.Service(\"vertexai\",\n service=\"aiplatform.googleapis.com\",\n project=project.project_id,\n disable_on_destroy=False,\n opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_cross_project_featureview\",\n project=project.project_id,\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[vertexai]))\nsample_dataset = gcp.bigquery.Dataset(\"sample_dataset\",\n dataset_id=\"example_cross_project_featureview\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\nviewer = gcp.bigquery.DatasetIamMember(\"viewer\",\n project=test_project.project_id,\n dataset_id=sample_dataset.dataset_id,\n role=\"roles/bigquery.dataViewer\",\n member=project.number.apply(lambda number: f\"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com\"),\n opts = pulumi.ResourceOptions(depends_on=[featureonlinestore]))\nwait30_seconds = time.index.Sleep(\"wait_30_seconds\", create_duration=30s,\nopts = pulumi.ResourceOptions(depends_on=[viewer]))\nsample_table = gcp.bigquery.Table(\"sample_table\",\n deletion_protection=False,\n dataset_id=sample_dataset.dataset_id,\n table_id=\"example_cross_project_featureview\",\n schema=\"\"\"[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n\"\"\")\nsample_feature_group = gcp.vertex.AiFeatureGroup(\"sample_feature_group\",\n name=\"example_cross_project_featureview\",\n description=\"A sample feature group\",\n region=\"us-central1\",\n labels={\n \"label-one\": \"value-one\",\n },\n big_query={\n \"big_query_source\": {\n \"input_uri\": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n },\n \"entity_id_columns\": [\"feature_id\"],\n })\nsample_feature = gcp.vertex.AiFeatureGroupFeature(\"sample_feature\",\n name=\"example_cross_project_featureview\",\n region=\"us-central1\",\n feature_group=sample_feature_group.name,\n description=\"A sample feature\",\n labels={\n \"label-one\": \"value-one\",\n })\ncross_project_featureview = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"cross_project_featureview\",\n name=\"example_cross_project_featureview\",\n project=project.project_id,\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n feature_registry_source={\n \"feature_groups\": [{\n \"feature_group_id\": sample_feature_group.name,\n \"feature_ids\": [sample_feature.name],\n }],\n \"project_number\": test_project.number,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n vertexai,\n wait30_seconds,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testProject = Gcp.Organizations.GetProject.Invoke();\n\n var project = new Gcp.Organizations.Project(\"project\", new()\n {\n ProjectId = \"tf-test_55138\",\n Name = \"tf-test_37559\",\n OrgId = \"123456789\",\n BillingAccount = \"000000-0000000-0000000-000000\",\n });\n\n var wait60Seconds = new Time.Index.Sleep(\"wait_60_seconds\", new()\n {\n CreateDuration = \"60s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n project,\n },\n });\n\n var vertexai = new Gcp.Projects.Service(\"vertexai\", new()\n {\n ServiceName = \"aiplatform.googleapis.com\",\n Project = project.ProjectId,\n DisableOnDestroy = false,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n wait60Seconds,\n },\n });\n\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_cross_project_featureview\",\n Project = project.ProjectId,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vertexai,\n },\n });\n\n var sampleDataset = new Gcp.BigQuery.Dataset(\"sample_dataset\", new()\n {\n DatasetId = \"example_cross_project_featureview\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var viewer = new Gcp.BigQuery.DatasetIamMember(\"viewer\", new()\n {\n Project = testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n DatasetId = sampleDataset.DatasetId,\n Role = \"roles/bigquery.dataViewer\",\n Member = project.Number.Apply(number =\u003e $\"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n featureonlinestore,\n },\n });\n\n var wait30Seconds = new Time.Index.Sleep(\"wait_30_seconds\", new()\n {\n CreateDuration = \"30s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n viewer,\n },\n });\n\n var sampleTable = new Gcp.BigQuery.Table(\"sample_table\", new()\n {\n DeletionProtection = false,\n DatasetId = sampleDataset.DatasetId,\n TableId = \"example_cross_project_featureview\",\n Schema = @\"[\n {\n \"\"name\"\": \"\"feature_id\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"example_cross_project_featureview\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n }\n]\n\",\n });\n\n var sampleFeatureGroup = new Gcp.Vertex.AiFeatureGroup(\"sample_feature_group\", new()\n {\n Name = \"example_cross_project_featureview\",\n Description = \"A sample feature group\",\n Region = \"us-central1\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n BigQuery = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryArgs\n {\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryBigQuerySourceArgs\n {\n InputUri = Output.Tuple(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n },\n EntityIdColumns = new[]\n {\n \"feature_id\",\n },\n },\n });\n\n var sampleFeature = new Gcp.Vertex.AiFeatureGroupFeature(\"sample_feature\", new()\n {\n Name = \"example_cross_project_featureview\",\n Region = \"us-central1\",\n FeatureGroup = sampleFeatureGroup.Name,\n Description = \"A sample feature\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n });\n\n var crossProjectFeatureview = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"cross_project_featureview\", new()\n {\n Name = \"example_cross_project_featureview\",\n Project = project.ProjectId,\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n FeatureRegistrySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs\n {\n FeatureGroups = new[]\n {\n new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs\n {\n FeatureGroupId = sampleFeatureGroup.Name,\n FeatureIds = new[]\n {\n sampleFeature.Name,\n },\n },\n },\n ProjectNumber = testProject.Apply(getProjectResult =\u003e getProjectResult.Number),\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vertexai,\n wait30Seconds,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.NewProject(ctx, \"project\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"tf-test_55138\"),\n\t\t\tName: pulumi.String(\"tf-test_37559\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t\tBillingAccount: pulumi.String(\"000000-0000000-0000000-000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait60Seconds, err := time.NewSleep(ctx, \"wait_60_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"60s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproject,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvertexai, err := projects.NewService(ctx, \"vertexai\", \u0026projects.ServiceArgs{\n\t\t\tService: pulumi.String(\"aiplatform.googleapis.com\"),\n\t\t\tProject: project.ProjectId,\n\t\t\tDisableOnDestroy: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait60Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tProject: project.ProjectId,\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvertexai,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleDataset, err := bigquery.NewDataset(ctx, \"sample_dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := bigquery.NewDatasetIamMember(ctx, \"viewer\", \u0026bigquery.DatasetIamMemberArgs{\n\t\t\tProject: pulumi.String(testProject.ProjectId),\n\t\t\tDatasetId: sampleDataset.DatasetId,\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataViewer\"),\n\t\t\tMember: project.Number.ApplyT(func(number string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-aiplatform.iam.gserviceaccount.com\", number), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfeatureonlinestore,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait30Seconds, err := time.NewSleep(ctx, \"wait_30_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"30s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tviewer,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleTable, err := bigquery.NewTable(ctx, \"sample_table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: sampleDataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeatureGroup, err := vertex.NewAiFeatureGroup(ctx, \"sample_feature_group\", \u0026vertex.AiFeatureGroupArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tDescription: pulumi.String(\"A sample feature group\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tBigQuery: \u0026vertex.AiFeatureGroupBigQueryArgs{\n\t\t\t\tBigQuerySource: \u0026vertex.AiFeatureGroupBigQueryBigQuerySourceArgs{\n\t\t\t\t\tInputUri: pulumi.All(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"feature_id\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeature, err := vertex.NewAiFeatureGroupFeature(ctx, \"sample_feature\", \u0026vertex.AiFeatureGroupFeatureArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureGroup: sampleFeatureGroup.Name,\n\t\t\tDescription: pulumi.String(\"A sample feature\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"cross_project_featureview\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tProject: project.ProjectId,\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tFeatureRegistrySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs{\n\t\t\t\tFeatureGroups: vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArray{\n\t\t\t\t\t\u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs{\n\t\t\t\t\t\tFeatureGroupId: sampleFeatureGroup.Name,\n\t\t\t\t\t\tFeatureIds: pulumi.StringArray{\n\t\t\t\t\t\t\tsampleFeature.Name,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tProjectNumber: pulumi.String(testProject.Number),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvertexai,\n\t\t\twait30Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.DatasetIamMember;\nimport com.pulumi.gcp.bigquery.DatasetIamMemberArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroup;\nimport com.pulumi.gcp.vertex.AiFeatureGroupArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryBigQuerySourceArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeature;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeatureArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testProject = OrganizationsFunctions.getProject();\n\n var project = new Project(\"project\", ProjectArgs.builder()\n .projectId(\"tf-test_55138\")\n .name(\"tf-test_37559\")\n .orgId(\"123456789\")\n .billingAccount(\"000000-0000000-0000000-000000\")\n .build());\n\n var wait60Seconds = new Sleep(\"wait60Seconds\", SleepArgs.builder()\n .createDuration(\"60s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(project)\n .build());\n\n var vertexai = new Service(\"vertexai\", ServiceArgs.builder()\n .service(\"aiplatform.googleapis.com\")\n .project(project.projectId())\n .disableOnDestroy(false)\n .build(), CustomResourceOptions.builder()\n .dependsOn(wait60Seconds)\n .build());\n\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_cross_project_featureview\")\n .project(project.projectId())\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(vertexai)\n .build());\n\n var sampleDataset = new Dataset(\"sampleDataset\", DatasetArgs.builder()\n .datasetId(\"example_cross_project_featureview\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var viewer = new DatasetIamMember(\"viewer\", DatasetIamMemberArgs.builder()\n .project(testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .datasetId(sampleDataset.datasetId())\n .role(\"roles/bigquery.dataViewer\")\n .member(project.number().applyValue(number -\u003e String.format(\"serviceAccount:service-%s@gcp-sa-aiplatform.iam.gserviceaccount.com\", number)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(featureonlinestore)\n .build());\n\n var wait30Seconds = new Sleep(\"wait30Seconds\", SleepArgs.builder()\n .createDuration(\"30s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(viewer)\n .build());\n\n var sampleTable = new Table(\"sampleTable\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(sampleDataset.datasetId())\n .tableId(\"example_cross_project_featureview\")\n .schema(\"\"\"\n[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n \"\"\")\n .build());\n\n var sampleFeatureGroup = new AiFeatureGroup(\"sampleFeatureGroup\", AiFeatureGroupArgs.builder()\n .name(\"example_cross_project_featureview\")\n .description(\"A sample feature group\")\n .region(\"us-central1\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .bigQuery(AiFeatureGroupBigQueryArgs.builder()\n .bigQuerySource(AiFeatureGroupBigQueryBigQuerySourceArgs.builder()\n .inputUri(Output.tuple(sampleTable.project(), sampleTable.datasetId(), sampleTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .build())\n .entityIdColumns(\"feature_id\")\n .build())\n .build());\n\n var sampleFeature = new AiFeatureGroupFeature(\"sampleFeature\", AiFeatureGroupFeatureArgs.builder()\n .name(\"example_cross_project_featureview\")\n .region(\"us-central1\")\n .featureGroup(sampleFeatureGroup.name())\n .description(\"A sample feature\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .build());\n\n var crossProjectFeatureview = new AiFeatureOnlineStoreFeatureview(\"crossProjectFeatureview\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_cross_project_featureview\")\n .project(project.projectId())\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .featureRegistrySource(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs.builder()\n .featureGroups(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs.builder()\n .featureGroupId(sampleFeatureGroup.name())\n .featureIds(sampleFeature.name())\n .build())\n .projectNumber(testProject.applyValue(getProjectResult -\u003e getProjectResult.number()))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n vertexai,\n wait30Seconds)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project:\n type: gcp:organizations:Project\n properties:\n projectId: tf-test_55138\n name: tf-test_37559\n orgId: '123456789'\n billingAccount: 000000-0000000-0000000-000000\n wait60Seconds:\n type: time:sleep\n name: wait_60_seconds\n properties:\n createDuration: 60s\n options:\n dependson:\n - ${project}\n wait30Seconds:\n type: time:sleep\n name: wait_30_seconds\n properties:\n createDuration: 30s\n options:\n dependson:\n - ${viewer}\n vertexai:\n type: gcp:projects:Service\n properties:\n service: aiplatform.googleapis.com\n project: ${project.projectId}\n disableOnDestroy: false # Needed for CI tests for permissions to propagate, should not be needed for actual usage\n options:\n dependson:\n - ${wait60Seconds}\n viewer:\n type: gcp:bigquery:DatasetIamMember\n properties:\n project: ${testProject.projectId}\n datasetId: ${sampleDataset.datasetId}\n role: roles/bigquery.dataViewer\n member: serviceAccount:service-${project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com\n options:\n dependson:\n - ${featureonlinestore}\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_cross_project_featureview\n project: ${project.projectId}\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n options:\n dependson:\n - ${vertexai}\n sampleDataset:\n type: gcp:bigquery:Dataset\n name: sample_dataset\n properties:\n datasetId: example_cross_project_featureview\n friendlyName: test\n description: This is a test description\n location: US\n sampleTable:\n type: gcp:bigquery:Table\n name: sample_table\n properties:\n deletionProtection: false\n datasetId: ${sampleDataset.datasetId}\n tableId: example_cross_project_featureview\n schema: |\n [\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n ]\n sampleFeatureGroup:\n type: gcp:vertex:AiFeatureGroup\n name: sample_feature_group\n properties:\n name: example_cross_project_featureview\n description: A sample feature group\n region: us-central1\n labels:\n label-one: value-one\n bigQuery:\n bigQuerySource:\n inputUri: bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}\n entityIdColumns:\n - feature_id\n sampleFeature:\n type: gcp:vertex:AiFeatureGroupFeature\n name: sample_feature\n properties:\n name: example_cross_project_featureview\n region: us-central1\n featureGroup: ${sampleFeatureGroup.name}\n description: A sample feature\n labels:\n label-one: value-one\n crossProjectFeatureview:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n name: cross_project_featureview\n properties:\n name: example_cross_project_featureview\n project: ${project.projectId}\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n featureRegistrySource:\n featureGroups:\n - featureGroupId: ${sampleFeatureGroup.name}\n featureIds:\n - ${sampleFeature.name}\n projectNumber: ${testProject.number}\n options:\n dependson:\n - ${vertexai}\n - ${wait30Seconds}\nvariables:\n testProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vertex Ai Featureonlinestore Featureview With Vector Search\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_feature_view_vector_search\",\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n embeddingManagement: {\n enabled: true,\n },\n});\nconst tf_test_dataset = new gcp.bigquery.Dataset(\"tf-test-dataset\", {\n datasetId: \"example_feature_view_vector_search\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst tf_test_table = new gcp.bigquery.Table(\"tf-test-table\", {\n deletionProtection: false,\n datasetId: tf_test_dataset.datasetId,\n tableId: \"example_feature_view_vector_search\",\n schema: `[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n`,\n});\nconst featureviewVectorSearch = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_vector_search\", {\n name: \"example_feature_view_vector_search\",\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n bigQuerySource: {\n uri: pulumi.interpolate`bq://${tf_test_table.project}.${tf_test_table.datasetId}.${tf_test_table.tableId}`,\n entityIdColumns: [\"test_entity_column\"],\n },\n vectorSearchConfig: {\n embeddingColumn: \"embedding\",\n filterColumns: [\"country\"],\n crowdingColumn: \"test_crowding_column\",\n distanceMeasureType: \"DOT_PRODUCT_DISTANCE\",\n treeAhConfig: {\n leafNodeEmbeddingCount: \"1000\",\n },\n embeddingDimension: 2,\n },\n});\nconst project = gcp.organizations.getProject({});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_feature_view_vector_search\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n },\n embedding_management={\n \"enabled\": True,\n })\ntf_test_dataset = gcp.bigquery.Dataset(\"tf-test-dataset\",\n dataset_id=\"example_feature_view_vector_search\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\ntf_test_table = gcp.bigquery.Table(\"tf-test-table\",\n deletion_protection=False,\n dataset_id=tf_test_dataset.dataset_id,\n table_id=\"example_feature_view_vector_search\",\n schema=\"\"\"[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n\"\"\")\nfeatureview_vector_search = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_vector_search\",\n name=\"example_feature_view_vector_search\",\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n big_query_source={\n \"uri\": pulumi.Output.all(tf_test_table.project, tf_test_table.dataset_id, tf_test_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n \"entity_id_columns\": [\"test_entity_column\"],\n },\n vector_search_config={\n \"embedding_column\": \"embedding\",\n \"filter_columns\": [\"country\"],\n \"crowding_column\": \"test_crowding_column\",\n \"distance_measure_type\": \"DOT_PRODUCT_DISTANCE\",\n \"tree_ah_config\": {\n \"leaf_node_embedding_count\": \"1000\",\n },\n \"embedding_dimension\": 2,\n })\nproject = gcp.organizations.get_project()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_feature_view_vector_search\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n EmbeddingManagement = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreEmbeddingManagementArgs\n {\n Enabled = true,\n },\n });\n\n var tf_test_dataset = new Gcp.BigQuery.Dataset(\"tf-test-dataset\", new()\n {\n DatasetId = \"example_feature_view_vector_search\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var tf_test_table = new Gcp.BigQuery.Table(\"tf-test-table\", new()\n {\n DeletionProtection = false,\n DatasetId = tf_test_dataset.DatasetId,\n TableId = \"example_feature_view_vector_search\",\n Schema = @\"[\n{\n \"\"name\"\": \"\"test_primary_id\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"primary test id\"\"\n},\n{\n \"\"name\"\": \"\"embedding\"\",\n \"\"mode\"\": \"\"REPEATED\"\",\n \"\"type\"\": \"\"FLOAT\"\",\n \"\"description\"\": \"\"embedding column for primary_id column\"\"\n},\n{\n \"\"name\"\": \"\"country\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"country\"\"\n},\n{\n \"\"name\"\": \"\"test_crowding_column\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"INTEGER\"\",\n \"\"description\"\": \"\"test crowding column\"\"\n},\n{\n \"\"name\"\": \"\"entity_id\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"Test default entity_id\"\"\n},\n{\n \"\"name\"\": \"\"test_entity_column\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"test secondary entity column\"\"\n},\n{\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"description\"\": \"\"Default timestamp value\"\"\n}\n]\n\",\n });\n\n var featureviewVectorSearch = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"featureview_vector_search\", new()\n {\n Name = \"example_feature_view_vector_search\",\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs\n {\n Uri = Output.Tuple(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n EntityIdColumns = new[]\n {\n \"test_entity_column\",\n },\n },\n VectorSearchConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs\n {\n EmbeddingColumn = \"embedding\",\n FilterColumns = new[]\n {\n \"country\",\n },\n CrowdingColumn = \"test_crowding_column\",\n DistanceMeasureType = \"DOT_PRODUCT_DISTANCE\",\n TreeAhConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs\n {\n LeafNodeEmbeddingCount = \"1000\",\n },\n EmbeddingDimension = 2,\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEmbeddingManagement: \u0026vertex.AiFeatureOnlineStoreEmbeddingManagementArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewDataset(ctx, \"tf-test-dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewTable(ctx, \"tf-test-table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: tf_test_dataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tSchema: pulumi.String(`[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"featureview_vector_search\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tBigQuerySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs{\n\t\t\t\tUri: pulumi.All(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"test_entity_column\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVectorSearchConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs{\n\t\t\t\tEmbeddingColumn: pulumi.String(\"embedding\"),\n\t\t\t\tFilterColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"country\"),\n\t\t\t\t},\n\t\t\t\tCrowdingColumn: pulumi.String(\"test_crowding_column\"),\n\t\t\t\tDistanceMeasureType: pulumi.String(\"DOT_PRODUCT_DISTANCE\"),\n\t\t\t\tTreeAhConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs{\n\t\t\t\t\tLeafNodeEmbeddingCount: pulumi.String(\"1000\"),\n\t\t\t\t},\n\t\t\t\tEmbeddingDimension: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreEmbeddingManagementArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_feature_view_vector_search\")\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .embeddingManagement(AiFeatureOnlineStoreEmbeddingManagementArgs.builder()\n .enabled(true)\n .build())\n .build());\n\n var tf_test_dataset = new Dataset(\"tf-test-dataset\", DatasetArgs.builder()\n .datasetId(\"example_feature_view_vector_search\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var tf_test_table = new Table(\"tf-test-table\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(tf_test_dataset.datasetId())\n .tableId(\"example_feature_view_vector_search\")\n .schema(\"\"\"\n[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n \"\"\")\n .build());\n\n var featureviewVectorSearch = new AiFeatureOnlineStoreFeatureview(\"featureviewVectorSearch\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_feature_view_vector_search\")\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .bigQuerySource(AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs.builder()\n .uri(Output.tuple(tf_test_table.project(), tf_test_table.datasetId(), tf_test_table.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .entityIdColumns(\"test_entity_column\")\n .build())\n .vectorSearchConfig(AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs.builder()\n .embeddingColumn(\"embedding\")\n .filterColumns(\"country\")\n .crowdingColumn(\"test_crowding_column\")\n .distanceMeasureType(\"DOT_PRODUCT_DISTANCE\")\n .treeAhConfig(AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs.builder()\n .leafNodeEmbeddingCount(\"1000\")\n .build())\n .embeddingDimension(\"2\")\n .build())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n }\n}\n```\n```yaml\nresources:\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_feature_view_vector_search\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n embeddingManagement:\n enabled: true\n tf-test-dataset:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_feature_view_vector_search\n friendlyName: test\n description: This is a test description\n location: US\n tf-test-table:\n type: gcp:bigquery:Table\n properties:\n deletionProtection: false\n datasetId: ${[\"tf-test-dataset\"].datasetId}\n tableId: example_feature_view_vector_search\n schema: |\n [\n {\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n },\n {\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n },\n {\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n },\n {\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n },\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n ]\n featureviewVectorSearch:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n name: featureview_vector_search\n properties:\n name: example_feature_view_vector_search\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n bigQuerySource:\n uri: bq://${[\"tf-test-table\"].project}.${[\"tf-test-table\"].datasetId}.${[\"tf-test-table\"].tableId}\n entityIdColumns:\n - test_entity_column\n vectorSearchConfig:\n embeddingColumn: embedding\n filterColumns:\n - country\n crowdingColumn: test_crowding_column\n distanceMeasureType: DOT_PRODUCT_DISTANCE\n treeAhConfig:\n leafNodeEmbeddingCount: '1000'\n embeddingDimension: '2'\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFeatureOnlineStoreFeatureview can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{region}}/featureOnlineStores/{{feature_online_store}}/featureViews/{{name}}`\n\n* `{{project}}/{{region}}/{{feature_online_store}}/{{name}}`\n\n* `{{region}}/{{feature_online_store}}/{{name}}`\n\n* `{{feature_online_store}}/{{name}}`\n\nWhen using the `pulumi import` command, FeatureOnlineStoreFeatureview can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default projects/{{project}}/locations/{{region}}/featureOnlineStores/{{feature_online_store}}/featureViews/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default {{project}}/{{region}}/{{feature_online_store}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default {{region}}/{{feature_online_store}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default {{feature_online_store}}/{{name}}\n```\n\n", + "description": "FeatureView is representation of values that the FeatureOnlineStore will serve based on its syncConfig.\n\n\nTo get more information about FeatureOnlineStoreFeatureview, see:\n\n* [API documentation](https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.featureOnlineStores.featureViews)\n* How-to Guides\n * [Official Documentation](https://cloud.google.com/vertex-ai/docs)\n\n## Example Usage\n\n### Vertex Ai Featureonlinestore Featureview\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_feature_view\",\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n});\nconst tf_test_dataset = new gcp.bigquery.Dataset(\"tf-test-dataset\", {\n datasetId: \"example_feature_view\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst tf_test_table = new gcp.bigquery.Table(\"tf-test-table\", {\n deletionProtection: false,\n datasetId: tf_test_dataset.datasetId,\n tableId: \"example_feature_view\",\n schema: ` [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n`,\n});\nconst featureview = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview\", {\n name: \"example_feature_view\",\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n bigQuerySource: {\n uri: pulumi.interpolate`bq://${tf_test_table.project}.${tf_test_table.datasetId}.${tf_test_table.tableId}`,\n entityIdColumns: [\"test_entity_column\"],\n },\n});\nconst project = gcp.organizations.getProject({});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_feature_view\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n })\ntf_test_dataset = gcp.bigquery.Dataset(\"tf-test-dataset\",\n dataset_id=\"example_feature_view\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\ntf_test_table = gcp.bigquery.Table(\"tf-test-table\",\n deletion_protection=False,\n dataset_id=tf_test_dataset.dataset_id,\n table_id=\"example_feature_view\",\n schema=\"\"\" [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n\"\"\")\nfeatureview = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview\",\n name=\"example_feature_view\",\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n big_query_source={\n \"uri\": pulumi.Output.all(tf_test_table.project, tf_test_table.dataset_id, tf_test_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n \"entity_id_columns\": [\"test_entity_column\"],\n })\nproject = gcp.organizations.get_project()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_feature_view\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n });\n\n var tf_test_dataset = new Gcp.BigQuery.Dataset(\"tf-test-dataset\", new()\n {\n DatasetId = \"example_feature_view\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var tf_test_table = new Gcp.BigQuery.Table(\"tf-test-table\", new()\n {\n DeletionProtection = false,\n DatasetId = tf_test_dataset.DatasetId,\n TableId = \"example_feature_view\",\n Schema = @\" [\n {\n \"\"name\"\": \"\"entity_id\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"Test default entity_id\"\"\n },\n {\n \"\"name\"\": \"\"test_entity_column\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"test secondary entity column\"\"\n },\n {\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"description\"\": \"\"Default timestamp value\"\"\n }\n]\n\",\n });\n\n var featureview = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"featureview\", new()\n {\n Name = \"example_feature_view\",\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs\n {\n Uri = Output.Tuple(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n EntityIdColumns = new[]\n {\n \"test_entity_column\",\n },\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_feature_view\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewDataset(ctx, \"tf-test-dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_feature_view\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewTable(ctx, \"tf-test-table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: tf_test_dataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_feature_view\"),\n\t\t\tSchema: pulumi.String(` [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"featureview\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_feature_view\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tBigQuerySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs{\n\t\t\t\tUri: pulumi.All(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"test_entity_column\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_feature_view\")\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .build());\n\n var tf_test_dataset = new Dataset(\"tf-test-dataset\", DatasetArgs.builder()\n .datasetId(\"example_feature_view\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var tf_test_table = new Table(\"tf-test-table\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(tf_test_dataset.datasetId())\n .tableId(\"example_feature_view\")\n .schema(\"\"\"\n [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n]\n \"\"\")\n .build());\n\n var featureview = new AiFeatureOnlineStoreFeatureview(\"featureview\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_feature_view\")\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .bigQuerySource(AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs.builder()\n .uri(Output.tuple(tf_test_table.project(), tf_test_table.datasetId(), tf_test_table.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .entityIdColumns(\"test_entity_column\")\n .build())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n }\n}\n```\n```yaml\nresources:\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_feature_view\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n tf-test-dataset:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_feature_view\n friendlyName: test\n description: This is a test description\n location: US\n tf-test-table:\n type: gcp:bigquery:Table\n properties:\n deletionProtection: false\n datasetId: ${[\"tf-test-dataset\"].datasetId}\n tableId: example_feature_view\n schema: |2\n [\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n ]\n featureview:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n properties:\n name: example_feature_view\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n bigQuerySource:\n uri: bq://${[\"tf-test-table\"].project}.${[\"tf-test-table\"].datasetId}.${[\"tf-test-table\"].tableId}\n entityIdColumns:\n - test_entity_column\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vertex Ai Featureonlinestore Featureview Feature Registry\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_feature_view_feature_registry\",\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n});\nconst sampleDataset = new gcp.bigquery.Dataset(\"sample_dataset\", {\n datasetId: \"example_feature_view_feature_registry\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst sampleTable = new gcp.bigquery.Table(\"sample_table\", {\n deletionProtection: false,\n datasetId: sampleDataset.datasetId,\n tableId: \"example_feature_view_feature_registry\",\n schema: `[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`,\n});\nconst sampleFeatureGroup = new gcp.vertex.AiFeatureGroup(\"sample_feature_group\", {\n name: \"example_feature_view_feature_registry\",\n description: \"A sample feature group\",\n region: \"us-central1\",\n labels: {\n \"label-one\": \"value-one\",\n },\n bigQuery: {\n bigQuerySource: {\n inputUri: pulumi.interpolate`bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}`,\n },\n entityIdColumns: [\"feature_id\"],\n },\n});\nconst sampleFeature = new gcp.vertex.AiFeatureGroupFeature(\"sample_feature\", {\n name: \"example_feature_view_feature_registry\",\n region: \"us-central1\",\n featureGroup: sampleFeatureGroup.name,\n description: \"A sample feature\",\n labels: {\n \"label-one\": \"value-one\",\n },\n});\nconst featureviewFeatureregistry = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_featureregistry\", {\n name: \"example_feature_view_feature_registry\",\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n featureRegistrySource: {\n featureGroups: [{\n featureGroupId: sampleFeatureGroup.name,\n featureIds: [sampleFeature.name],\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_feature_view_feature_registry\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n })\nsample_dataset = gcp.bigquery.Dataset(\"sample_dataset\",\n dataset_id=\"example_feature_view_feature_registry\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\nsample_table = gcp.bigquery.Table(\"sample_table\",\n deletion_protection=False,\n dataset_id=sample_dataset.dataset_id,\n table_id=\"example_feature_view_feature_registry\",\n schema=\"\"\"[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n\"\"\")\nsample_feature_group = gcp.vertex.AiFeatureGroup(\"sample_feature_group\",\n name=\"example_feature_view_feature_registry\",\n description=\"A sample feature group\",\n region=\"us-central1\",\n labels={\n \"label-one\": \"value-one\",\n },\n big_query={\n \"big_query_source\": {\n \"input_uri\": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n },\n \"entity_id_columns\": [\"feature_id\"],\n })\nsample_feature = gcp.vertex.AiFeatureGroupFeature(\"sample_feature\",\n name=\"example_feature_view_feature_registry\",\n region=\"us-central1\",\n feature_group=sample_feature_group.name,\n description=\"A sample feature\",\n labels={\n \"label-one\": \"value-one\",\n })\nfeatureview_featureregistry = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_featureregistry\",\n name=\"example_feature_view_feature_registry\",\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n feature_registry_source={\n \"feature_groups\": [{\n \"feature_group_id\": sample_feature_group.name,\n \"feature_ids\": [sample_feature.name],\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n });\n\n var sampleDataset = new Gcp.BigQuery.Dataset(\"sample_dataset\", new()\n {\n DatasetId = \"example_feature_view_feature_registry\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var sampleTable = new Gcp.BigQuery.Table(\"sample_table\", new()\n {\n DeletionProtection = false,\n DatasetId = sampleDataset.DatasetId,\n TableId = \"example_feature_view_feature_registry\",\n Schema = @\"[\n {\n \"\"name\"\": \"\"feature_id\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"example_feature_view_feature_registry\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n }\n]\n\",\n });\n\n var sampleFeatureGroup = new Gcp.Vertex.AiFeatureGroup(\"sample_feature_group\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Description = \"A sample feature group\",\n Region = \"us-central1\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n BigQuery = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryArgs\n {\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryBigQuerySourceArgs\n {\n InputUri = Output.Tuple(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n },\n EntityIdColumns = new[]\n {\n \"feature_id\",\n },\n },\n });\n\n var sampleFeature = new Gcp.Vertex.AiFeatureGroupFeature(\"sample_feature\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Region = \"us-central1\",\n FeatureGroup = sampleFeatureGroup.Name,\n Description = \"A sample feature\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n });\n\n var featureviewFeatureregistry = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"featureview_featureregistry\", new()\n {\n Name = \"example_feature_view_feature_registry\",\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n FeatureRegistrySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs\n {\n FeatureGroups = new[]\n {\n new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs\n {\n FeatureGroupId = sampleFeatureGroup.Name,\n FeatureIds = new[]\n {\n sampleFeature.Name,\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleDataset, err := bigquery.NewDataset(ctx, \"sample_dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleTable, err := bigquery.NewTable(ctx, \"sample_table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: sampleDataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeatureGroup, err := vertex.NewAiFeatureGroup(ctx, \"sample_feature_group\", \u0026vertex.AiFeatureGroupArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tDescription: pulumi.String(\"A sample feature group\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tBigQuery: \u0026vertex.AiFeatureGroupBigQueryArgs{\n\t\t\t\tBigQuerySource: \u0026vertex.AiFeatureGroupBigQueryBigQuerySourceArgs{\n\t\t\t\t\tInputUri: pulumi.All(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"feature_id\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeature, err := vertex.NewAiFeatureGroupFeature(ctx, \"sample_feature\", \u0026vertex.AiFeatureGroupFeatureArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureGroup: sampleFeatureGroup.Name,\n\t\t\tDescription: pulumi.String(\"A sample feature\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"featureview_featureregistry\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_feature_registry\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tFeatureRegistrySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs{\n\t\t\t\tFeatureGroups: vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArray{\n\t\t\t\t\t\u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs{\n\t\t\t\t\t\tFeatureGroupId: sampleFeatureGroup.Name,\n\t\t\t\t\t\tFeatureIds: pulumi.StringArray{\n\t\t\t\t\t\t\tsampleFeature.Name,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroup;\nimport com.pulumi.gcp.vertex.AiFeatureGroupArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryBigQuerySourceArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeature;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeatureArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .build());\n\n var sampleDataset = new Dataset(\"sampleDataset\", DatasetArgs.builder()\n .datasetId(\"example_feature_view_feature_registry\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var sampleTable = new Table(\"sampleTable\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(sampleDataset.datasetId())\n .tableId(\"example_feature_view_feature_registry\")\n .schema(\"\"\"\n[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n \"\"\")\n .build());\n\n var sampleFeatureGroup = new AiFeatureGroup(\"sampleFeatureGroup\", AiFeatureGroupArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .description(\"A sample feature group\")\n .region(\"us-central1\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .bigQuery(AiFeatureGroupBigQueryArgs.builder()\n .bigQuerySource(AiFeatureGroupBigQueryBigQuerySourceArgs.builder()\n .inputUri(Output.tuple(sampleTable.project(), sampleTable.datasetId(), sampleTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .build())\n .entityIdColumns(\"feature_id\")\n .build())\n .build());\n\n var sampleFeature = new AiFeatureGroupFeature(\"sampleFeature\", AiFeatureGroupFeatureArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .region(\"us-central1\")\n .featureGroup(sampleFeatureGroup.name())\n .description(\"A sample feature\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .build());\n\n var featureviewFeatureregistry = new AiFeatureOnlineStoreFeatureview(\"featureviewFeatureregistry\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_feature_view_feature_registry\")\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .featureRegistrySource(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs.builder()\n .featureGroups(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs.builder()\n .featureGroupId(sampleFeatureGroup.name())\n .featureIds(sampleFeature.name())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_feature_view_feature_registry\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n sampleDataset:\n type: gcp:bigquery:Dataset\n name: sample_dataset\n properties:\n datasetId: example_feature_view_feature_registry\n friendlyName: test\n description: This is a test description\n location: US\n sampleTable:\n type: gcp:bigquery:Table\n name: sample_table\n properties:\n deletionProtection: false\n datasetId: ${sampleDataset.datasetId}\n tableId: example_feature_view_feature_registry\n schema: |\n [\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_feature_view_feature_registry\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n ]\n sampleFeatureGroup:\n type: gcp:vertex:AiFeatureGroup\n name: sample_feature_group\n properties:\n name: example_feature_view_feature_registry\n description: A sample feature group\n region: us-central1\n labels:\n label-one: value-one\n bigQuery:\n bigQuerySource:\n inputUri: bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}\n entityIdColumns:\n - feature_id\n sampleFeature:\n type: gcp:vertex:AiFeatureGroupFeature\n name: sample_feature\n properties:\n name: example_feature_view_feature_registry\n region: us-central1\n featureGroup: ${sampleFeatureGroup.name}\n description: A sample feature\n labels:\n label-one: value-one\n featureviewFeatureregistry:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n name: featureview_featureregistry\n properties:\n name: example_feature_view_feature_registry\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n featureRegistrySource:\n featureGroups:\n - featureGroupId: ${sampleFeatureGroup.name}\n featureIds:\n - ${sampleFeature.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vertex Ai Featureonlinestore Featureview Cross Project\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\nimport * as time from \"@pulumi/time\";\n\nconst testProject = gcp.organizations.getProject({});\nconst project = new gcp.organizations.Project(\"project\", {\n projectId: \"tf-test_13293\",\n name: \"tf-test_40289\",\n orgId: \"123456789\",\n billingAccount: \"000000-0000000-0000000-000000\",\n});\nconst wait60Seconds = new time.index.Sleep(\"wait_60_seconds\", {createDuration: \"60s\"}, {\n dependsOn: [project],\n});\nconst vertexai = new gcp.projects.Service(\"vertexai\", {\n service: \"aiplatform.googleapis.com\",\n project: project.projectId,\n disableOnDestroy: false,\n}, {\n dependsOn: [wait60Seconds],\n});\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_cross_project_featureview\",\n project: project.projectId,\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n}, {\n dependsOn: [vertexai],\n});\nconst sampleDataset = new gcp.bigquery.Dataset(\"sample_dataset\", {\n datasetId: \"example_cross_project_featureview\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst viewer = new gcp.bigquery.DatasetIamMember(\"viewer\", {\n project: testProject.then(testProject =\u003e testProject.projectId),\n datasetId: sampleDataset.datasetId,\n role: \"roles/bigquery.dataViewer\",\n member: pulumi.interpolate`serviceAccount:service-${project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com`,\n}, {\n dependsOn: [featureonlinestore],\n});\nconst wait30Seconds = new time.index.Sleep(\"wait_30_seconds\", {createDuration: \"30s\"}, {\n dependsOn: [viewer],\n});\nconst sampleTable = new gcp.bigquery.Table(\"sample_table\", {\n deletionProtection: false,\n datasetId: sampleDataset.datasetId,\n tableId: \"example_cross_project_featureview\",\n schema: `[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`,\n});\nconst sampleFeatureGroup = new gcp.vertex.AiFeatureGroup(\"sample_feature_group\", {\n name: \"example_cross_project_featureview\",\n description: \"A sample feature group\",\n region: \"us-central1\",\n labels: {\n \"label-one\": \"value-one\",\n },\n bigQuery: {\n bigQuerySource: {\n inputUri: pulumi.interpolate`bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}`,\n },\n entityIdColumns: [\"feature_id\"],\n },\n});\nconst sampleFeature = new gcp.vertex.AiFeatureGroupFeature(\"sample_feature\", {\n name: \"example_cross_project_featureview\",\n region: \"us-central1\",\n featureGroup: sampleFeatureGroup.name,\n description: \"A sample feature\",\n labels: {\n \"label-one\": \"value-one\",\n },\n});\nconst crossProjectFeatureview = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"cross_project_featureview\", {\n name: \"example_cross_project_featureview\",\n project: project.projectId,\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n featureRegistrySource: {\n featureGroups: [{\n featureGroupId: sampleFeatureGroup.name,\n featureIds: [sampleFeature.name],\n }],\n projectNumber: testProject.then(testProject =\u003e testProject.number),\n },\n}, {\n dependsOn: [\n vertexai,\n wait30Seconds,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\nimport pulumi_time as time\n\ntest_project = gcp.organizations.get_project()\nproject = gcp.organizations.Project(\"project\",\n project_id=\"tf-test_13293\",\n name=\"tf-test_40289\",\n org_id=\"123456789\",\n billing_account=\"000000-0000000-0000000-000000\")\nwait60_seconds = time.index.Sleep(\"wait_60_seconds\", create_duration=60s,\nopts = pulumi.ResourceOptions(depends_on=[project]))\nvertexai = gcp.projects.Service(\"vertexai\",\n service=\"aiplatform.googleapis.com\",\n project=project.project_id,\n disable_on_destroy=False,\n opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_cross_project_featureview\",\n project=project.project_id,\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n },\n opts = pulumi.ResourceOptions(depends_on=[vertexai]))\nsample_dataset = gcp.bigquery.Dataset(\"sample_dataset\",\n dataset_id=\"example_cross_project_featureview\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\nviewer = gcp.bigquery.DatasetIamMember(\"viewer\",\n project=test_project.project_id,\n dataset_id=sample_dataset.dataset_id,\n role=\"roles/bigquery.dataViewer\",\n member=project.number.apply(lambda number: f\"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com\"),\n opts = pulumi.ResourceOptions(depends_on=[featureonlinestore]))\nwait30_seconds = time.index.Sleep(\"wait_30_seconds\", create_duration=30s,\nopts = pulumi.ResourceOptions(depends_on=[viewer]))\nsample_table = gcp.bigquery.Table(\"sample_table\",\n deletion_protection=False,\n dataset_id=sample_dataset.dataset_id,\n table_id=\"example_cross_project_featureview\",\n schema=\"\"\"[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n\"\"\")\nsample_feature_group = gcp.vertex.AiFeatureGroup(\"sample_feature_group\",\n name=\"example_cross_project_featureview\",\n description=\"A sample feature group\",\n region=\"us-central1\",\n labels={\n \"label-one\": \"value-one\",\n },\n big_query={\n \"big_query_source\": {\n \"input_uri\": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n },\n \"entity_id_columns\": [\"feature_id\"],\n })\nsample_feature = gcp.vertex.AiFeatureGroupFeature(\"sample_feature\",\n name=\"example_cross_project_featureview\",\n region=\"us-central1\",\n feature_group=sample_feature_group.name,\n description=\"A sample feature\",\n labels={\n \"label-one\": \"value-one\",\n })\ncross_project_featureview = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"cross_project_featureview\",\n name=\"example_cross_project_featureview\",\n project=project.project_id,\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n feature_registry_source={\n \"feature_groups\": [{\n \"feature_group_id\": sample_feature_group.name,\n \"feature_ids\": [sample_feature.name],\n }],\n \"project_number\": test_project.number,\n },\n opts = pulumi.ResourceOptions(depends_on=[\n vertexai,\n wait30_seconds,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\nusing Time = Pulumi.Time;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testProject = Gcp.Organizations.GetProject.Invoke();\n\n var project = new Gcp.Organizations.Project(\"project\", new()\n {\n ProjectId = \"tf-test_13293\",\n Name = \"tf-test_40289\",\n OrgId = \"123456789\",\n BillingAccount = \"000000-0000000-0000000-000000\",\n });\n\n var wait60Seconds = new Time.Index.Sleep(\"wait_60_seconds\", new()\n {\n CreateDuration = \"60s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n project,\n },\n });\n\n var vertexai = new Gcp.Projects.Service(\"vertexai\", new()\n {\n ServiceName = \"aiplatform.googleapis.com\",\n Project = project.ProjectId,\n DisableOnDestroy = false,\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n wait60Seconds,\n },\n });\n\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_cross_project_featureview\",\n Project = project.ProjectId,\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vertexai,\n },\n });\n\n var sampleDataset = new Gcp.BigQuery.Dataset(\"sample_dataset\", new()\n {\n DatasetId = \"example_cross_project_featureview\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var viewer = new Gcp.BigQuery.DatasetIamMember(\"viewer\", new()\n {\n Project = testProject.Apply(getProjectResult =\u003e getProjectResult.ProjectId),\n DatasetId = sampleDataset.DatasetId,\n Role = \"roles/bigquery.dataViewer\",\n Member = project.Number.Apply(number =\u003e $\"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com\"),\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n featureonlinestore,\n },\n });\n\n var wait30Seconds = new Time.Index.Sleep(\"wait_30_seconds\", new()\n {\n CreateDuration = \"30s\",\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n viewer,\n },\n });\n\n var sampleTable = new Gcp.BigQuery.Table(\"sample_table\", new()\n {\n DeletionProtection = false,\n DatasetId = sampleDataset.DatasetId,\n TableId = \"example_cross_project_featureview\",\n Schema = @\"[\n {\n \"\"name\"\": \"\"feature_id\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"example_cross_project_featureview\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n },\n {\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"mode\"\": \"\"NULLABLE\"\"\n }\n]\n\",\n });\n\n var sampleFeatureGroup = new Gcp.Vertex.AiFeatureGroup(\"sample_feature_group\", new()\n {\n Name = \"example_cross_project_featureview\",\n Description = \"A sample feature group\",\n Region = \"us-central1\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n BigQuery = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryArgs\n {\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureGroupBigQueryBigQuerySourceArgs\n {\n InputUri = Output.Tuple(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n },\n EntityIdColumns = new[]\n {\n \"feature_id\",\n },\n },\n });\n\n var sampleFeature = new Gcp.Vertex.AiFeatureGroupFeature(\"sample_feature\", new()\n {\n Name = \"example_cross_project_featureview\",\n Region = \"us-central1\",\n FeatureGroup = sampleFeatureGroup.Name,\n Description = \"A sample feature\",\n Labels = \n {\n { \"label-one\", \"value-one\" },\n },\n });\n\n var crossProjectFeatureview = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"cross_project_featureview\", new()\n {\n Name = \"example_cross_project_featureview\",\n Project = project.ProjectId,\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n FeatureRegistrySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs\n {\n FeatureGroups = new[]\n {\n new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs\n {\n FeatureGroupId = sampleFeatureGroup.Name,\n FeatureIds = new[]\n {\n sampleFeature.Name,\n },\n },\n },\n ProjectNumber = testProject.Apply(getProjectResult =\u003e getProjectResult.Number),\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n vertexai,\n wait30Seconds,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi-time/sdk/go/time\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := organizations.NewProject(ctx, \"project\", \u0026organizations.ProjectArgs{\n\t\t\tProjectId: pulumi.String(\"tf-test_13293\"),\n\t\t\tName: pulumi.String(\"tf-test_40289\"),\n\t\t\tOrgId: pulumi.String(\"123456789\"),\n\t\t\tBillingAccount: pulumi.String(\"000000-0000000-0000000-000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait60Seconds, err := time.NewSleep(ctx, \"wait_60_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"60s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tproject,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvertexai, err := projects.NewService(ctx, \"vertexai\", \u0026projects.ServiceArgs{\n\t\t\tService: pulumi.String(\"aiplatform.googleapis.com\"),\n\t\t\tProject: project.ProjectId,\n\t\t\tDisableOnDestroy: pulumi.Bool(false),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\twait60Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tProject: project.ProjectId,\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvertexai,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleDataset, err := bigquery.NewDataset(ctx, \"sample_dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tviewer, err := bigquery.NewDatasetIamMember(ctx, \"viewer\", \u0026bigquery.DatasetIamMemberArgs{\n\t\t\tProject: pulumi.String(testProject.ProjectId),\n\t\t\tDatasetId: sampleDataset.DatasetId,\n\t\t\tRole: pulumi.String(\"roles/bigquery.dataViewer\"),\n\t\t\tMember: project.Number.ApplyT(func(number string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"serviceAccount:service-%v@gcp-sa-aiplatform.iam.gserviceaccount.com\", number), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfeatureonlinestore,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twait30Seconds, err := time.NewSleep(ctx, \"wait_30_seconds\", \u0026time.SleepArgs{\n\t\t\tCreateDuration: \"30s\",\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tviewer,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleTable, err := bigquery.NewTable(ctx, \"sample_table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: sampleDataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tSchema: pulumi.String(`[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeatureGroup, err := vertex.NewAiFeatureGroup(ctx, \"sample_feature_group\", \u0026vertex.AiFeatureGroupArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tDescription: pulumi.String(\"A sample feature group\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t\tBigQuery: \u0026vertex.AiFeatureGroupBigQueryArgs{\n\t\t\t\tBigQuerySource: \u0026vertex.AiFeatureGroupBigQueryBigQuerySourceArgs{\n\t\t\t\t\tInputUri: pulumi.All(sampleTable.Project, sampleTable.DatasetId, sampleTable.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"feature_id\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tsampleFeature, err := vertex.NewAiFeatureGroupFeature(ctx, \"sample_feature\", \u0026vertex.AiFeatureGroupFeatureArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureGroup: sampleFeatureGroup.Name,\n\t\t\tDescription: pulumi.String(\"A sample feature\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"label-one\": pulumi.String(\"value-one\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"cross_project_featureview\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_cross_project_featureview\"),\n\t\t\tProject: project.ProjectId,\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tFeatureRegistrySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs{\n\t\t\t\tFeatureGroups: vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArray{\n\t\t\t\t\t\u0026vertex.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs{\n\t\t\t\t\t\tFeatureGroupId: sampleFeatureGroup.Name,\n\t\t\t\t\t\tFeatureIds: pulumi.StringArray{\n\t\t\t\t\t\t\tsampleFeature.Name,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tProjectNumber: pulumi.String(testProject.Number),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tvertexai,\n\t\t\twait30Seconds,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport com.pulumi.gcp.organizations.Project;\nimport com.pulumi.gcp.organizations.ProjectArgs;\nimport com.pulumi.time.sleep;\nimport com.pulumi.time.SleepArgs;\nimport com.pulumi.gcp.projects.Service;\nimport com.pulumi.gcp.projects.ServiceArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.DatasetIamMember;\nimport com.pulumi.gcp.bigquery.DatasetIamMemberArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroup;\nimport com.pulumi.gcp.vertex.AiFeatureGroupArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureGroupBigQueryBigQuerySourceArgs;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeature;\nimport com.pulumi.gcp.vertex.AiFeatureGroupFeatureArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var testProject = OrganizationsFunctions.getProject();\n\n var project = new Project(\"project\", ProjectArgs.builder()\n .projectId(\"tf-test_13293\")\n .name(\"tf-test_40289\")\n .orgId(\"123456789\")\n .billingAccount(\"000000-0000000-0000000-000000\")\n .build());\n\n var wait60Seconds = new Sleep(\"wait60Seconds\", SleepArgs.builder()\n .createDuration(\"60s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(project)\n .build());\n\n var vertexai = new Service(\"vertexai\", ServiceArgs.builder()\n .service(\"aiplatform.googleapis.com\")\n .project(project.projectId())\n .disableOnDestroy(false)\n .build(), CustomResourceOptions.builder()\n .dependsOn(wait60Seconds)\n .build());\n\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_cross_project_featureview\")\n .project(project.projectId())\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(vertexai)\n .build());\n\n var sampleDataset = new Dataset(\"sampleDataset\", DatasetArgs.builder()\n .datasetId(\"example_cross_project_featureview\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var viewer = new DatasetIamMember(\"viewer\", DatasetIamMemberArgs.builder()\n .project(testProject.applyValue(getProjectResult -\u003e getProjectResult.projectId()))\n .datasetId(sampleDataset.datasetId())\n .role(\"roles/bigquery.dataViewer\")\n .member(project.number().applyValue(number -\u003e String.format(\"serviceAccount:service-%s@gcp-sa-aiplatform.iam.gserviceaccount.com\", number)))\n .build(), CustomResourceOptions.builder()\n .dependsOn(featureonlinestore)\n .build());\n\n var wait30Seconds = new Sleep(\"wait30Seconds\", SleepArgs.builder()\n .createDuration(\"30s\")\n .build(), CustomResourceOptions.builder()\n .dependsOn(viewer)\n .build());\n\n var sampleTable = new Table(\"sampleTable\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(sampleDataset.datasetId())\n .tableId(\"example_cross_project_featureview\")\n .schema(\"\"\"\n[\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n]\n \"\"\")\n .build());\n\n var sampleFeatureGroup = new AiFeatureGroup(\"sampleFeatureGroup\", AiFeatureGroupArgs.builder()\n .name(\"example_cross_project_featureview\")\n .description(\"A sample feature group\")\n .region(\"us-central1\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .bigQuery(AiFeatureGroupBigQueryArgs.builder()\n .bigQuerySource(AiFeatureGroupBigQueryBigQuerySourceArgs.builder()\n .inputUri(Output.tuple(sampleTable.project(), sampleTable.datasetId(), sampleTable.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .build())\n .entityIdColumns(\"feature_id\")\n .build())\n .build());\n\n var sampleFeature = new AiFeatureGroupFeature(\"sampleFeature\", AiFeatureGroupFeatureArgs.builder()\n .name(\"example_cross_project_featureview\")\n .region(\"us-central1\")\n .featureGroup(sampleFeatureGroup.name())\n .description(\"A sample feature\")\n .labels(Map.of(\"label-one\", \"value-one\"))\n .build());\n\n var crossProjectFeatureview = new AiFeatureOnlineStoreFeatureview(\"crossProjectFeatureview\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_cross_project_featureview\")\n .project(project.projectId())\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .featureRegistrySource(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs.builder()\n .featureGroups(AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs.builder()\n .featureGroupId(sampleFeatureGroup.name())\n .featureIds(sampleFeature.name())\n .build())\n .projectNumber(testProject.applyValue(getProjectResult -\u003e getProjectResult.number()))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n vertexai,\n wait30Seconds)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n project:\n type: gcp:organizations:Project\n properties:\n projectId: tf-test_13293\n name: tf-test_40289\n orgId: '123456789'\n billingAccount: 000000-0000000-0000000-000000\n wait60Seconds:\n type: time:sleep\n name: wait_60_seconds\n properties:\n createDuration: 60s\n options:\n dependson:\n - ${project}\n wait30Seconds:\n type: time:sleep\n name: wait_30_seconds\n properties:\n createDuration: 30s\n options:\n dependson:\n - ${viewer}\n vertexai:\n type: gcp:projects:Service\n properties:\n service: aiplatform.googleapis.com\n project: ${project.projectId}\n disableOnDestroy: false # Needed for CI tests for permissions to propagate, should not be needed for actual usage\n options:\n dependson:\n - ${wait60Seconds}\n viewer:\n type: gcp:bigquery:DatasetIamMember\n properties:\n project: ${testProject.projectId}\n datasetId: ${sampleDataset.datasetId}\n role: roles/bigquery.dataViewer\n member: serviceAccount:service-${project.number}@gcp-sa-aiplatform.iam.gserviceaccount.com\n options:\n dependson:\n - ${featureonlinestore}\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_cross_project_featureview\n project: ${project.projectId}\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n options:\n dependson:\n - ${vertexai}\n sampleDataset:\n type: gcp:bigquery:Dataset\n name: sample_dataset\n properties:\n datasetId: example_cross_project_featureview\n friendlyName: test\n description: This is a test description\n location: US\n sampleTable:\n type: gcp:bigquery:Table\n name: sample_table\n properties:\n deletionProtection: false\n datasetId: ${sampleDataset.datasetId}\n tableId: example_cross_project_featureview\n schema: |\n [\n {\n \"name\": \"feature_id\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"example_cross_project_featureview\",\n \"type\": \"STRING\",\n \"mode\": \"NULLABLE\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"type\": \"TIMESTAMP\",\n \"mode\": \"NULLABLE\"\n }\n ]\n sampleFeatureGroup:\n type: gcp:vertex:AiFeatureGroup\n name: sample_feature_group\n properties:\n name: example_cross_project_featureview\n description: A sample feature group\n region: us-central1\n labels:\n label-one: value-one\n bigQuery:\n bigQuerySource:\n inputUri: bq://${sampleTable.project}.${sampleTable.datasetId}.${sampleTable.tableId}\n entityIdColumns:\n - feature_id\n sampleFeature:\n type: gcp:vertex:AiFeatureGroupFeature\n name: sample_feature\n properties:\n name: example_cross_project_featureview\n region: us-central1\n featureGroup: ${sampleFeatureGroup.name}\n description: A sample feature\n labels:\n label-one: value-one\n crossProjectFeatureview:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n name: cross_project_featureview\n properties:\n name: example_cross_project_featureview\n project: ${project.projectId}\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n featureRegistrySource:\n featureGroups:\n - featureGroupId: ${sampleFeatureGroup.name}\n featureIds:\n - ${sampleFeature.name}\n projectNumber: ${testProject.number}\n options:\n dependson:\n - ${vertexai}\n - ${wait30Seconds}\nvariables:\n testProject:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vertex Ai Featureonlinestore Featureview With Vector Search\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst featureonlinestore = new gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\", {\n name: \"example_feature_view_vector_search\",\n labels: {\n foo: \"bar\",\n },\n region: \"us-central1\",\n bigtable: {\n autoScaling: {\n minNodeCount: 1,\n maxNodeCount: 2,\n cpuUtilizationTarget: 80,\n },\n },\n embeddingManagement: {\n enabled: true,\n },\n});\nconst tf_test_dataset = new gcp.bigquery.Dataset(\"tf-test-dataset\", {\n datasetId: \"example_feature_view_vector_search\",\n friendlyName: \"test\",\n description: \"This is a test description\",\n location: \"US\",\n});\nconst tf_test_table = new gcp.bigquery.Table(\"tf-test-table\", {\n deletionProtection: false,\n datasetId: tf_test_dataset.datasetId,\n tableId: \"example_feature_view_vector_search\",\n schema: `[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n`,\n});\nconst featureviewVectorSearch = new gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_vector_search\", {\n name: \"example_feature_view_vector_search\",\n region: \"us-central1\",\n featureOnlineStore: featureonlinestore.name,\n syncConfig: {\n cron: \"0 0 * * *\",\n },\n bigQuerySource: {\n uri: pulumi.interpolate`bq://${tf_test_table.project}.${tf_test_table.datasetId}.${tf_test_table.tableId}`,\n entityIdColumns: [\"test_entity_column\"],\n },\n vectorSearchConfig: {\n embeddingColumn: \"embedding\",\n filterColumns: [\"country\"],\n crowdingColumn: \"test_crowding_column\",\n distanceMeasureType: \"DOT_PRODUCT_DISTANCE\",\n treeAhConfig: {\n leafNodeEmbeddingCount: \"1000\",\n },\n embeddingDimension: 2,\n },\n});\nconst project = gcp.organizations.getProject({});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nfeatureonlinestore = gcp.vertex.AiFeatureOnlineStore(\"featureonlinestore\",\n name=\"example_feature_view_vector_search\",\n labels={\n \"foo\": \"bar\",\n },\n region=\"us-central1\",\n bigtable={\n \"auto_scaling\": {\n \"min_node_count\": 1,\n \"max_node_count\": 2,\n \"cpu_utilization_target\": 80,\n },\n },\n embedding_management={\n \"enabled\": True,\n })\ntf_test_dataset = gcp.bigquery.Dataset(\"tf-test-dataset\",\n dataset_id=\"example_feature_view_vector_search\",\n friendly_name=\"test\",\n description=\"This is a test description\",\n location=\"US\")\ntf_test_table = gcp.bigquery.Table(\"tf-test-table\",\n deletion_protection=False,\n dataset_id=tf_test_dataset.dataset_id,\n table_id=\"example_feature_view_vector_search\",\n schema=\"\"\"[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n\"\"\")\nfeatureview_vector_search = gcp.vertex.AiFeatureOnlineStoreFeatureview(\"featureview_vector_search\",\n name=\"example_feature_view_vector_search\",\n region=\"us-central1\",\n feature_online_store=featureonlinestore.name,\n sync_config={\n \"cron\": \"0 0 * * *\",\n },\n big_query_source={\n \"uri\": pulumi.Output.all(tf_test_table.project, tf_test_table.dataset_id, tf_test_table.table_id).apply(lambda project, dataset_id, table_id: f\"bq://{project}.{dataset_id}.{table_id}\"),\n \"entity_id_columns\": [\"test_entity_column\"],\n },\n vector_search_config={\n \"embedding_column\": \"embedding\",\n \"filter_columns\": [\"country\"],\n \"crowding_column\": \"test_crowding_column\",\n \"distance_measure_type\": \"DOT_PRODUCT_DISTANCE\",\n \"tree_ah_config\": {\n \"leaf_node_embedding_count\": \"1000\",\n },\n \"embedding_dimension\": 2,\n })\nproject = gcp.organizations.get_project()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var featureonlinestore = new Gcp.Vertex.AiFeatureOnlineStore(\"featureonlinestore\", new()\n {\n Name = \"example_feature_view_vector_search\",\n Labels = \n {\n { \"foo\", \"bar\" },\n },\n Region = \"us-central1\",\n Bigtable = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableArgs\n {\n AutoScaling = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs\n {\n MinNodeCount = 1,\n MaxNodeCount = 2,\n CpuUtilizationTarget = 80,\n },\n },\n EmbeddingManagement = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreEmbeddingManagementArgs\n {\n Enabled = true,\n },\n });\n\n var tf_test_dataset = new Gcp.BigQuery.Dataset(\"tf-test-dataset\", new()\n {\n DatasetId = \"example_feature_view_vector_search\",\n FriendlyName = \"test\",\n Description = \"This is a test description\",\n Location = \"US\",\n });\n\n var tf_test_table = new Gcp.BigQuery.Table(\"tf-test-table\", new()\n {\n DeletionProtection = false,\n DatasetId = tf_test_dataset.DatasetId,\n TableId = \"example_feature_view_vector_search\",\n Schema = @\"[\n{\n \"\"name\"\": \"\"test_primary_id\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"primary test id\"\"\n},\n{\n \"\"name\"\": \"\"embedding\"\",\n \"\"mode\"\": \"\"REPEATED\"\",\n \"\"type\"\": \"\"FLOAT\"\",\n \"\"description\"\": \"\"embedding column for primary_id column\"\"\n},\n{\n \"\"name\"\": \"\"country\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"country\"\"\n},\n{\n \"\"name\"\": \"\"test_crowding_column\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"INTEGER\"\",\n \"\"description\"\": \"\"test crowding column\"\"\n},\n{\n \"\"name\"\": \"\"entity_id\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"Test default entity_id\"\"\n},\n{\n \"\"name\"\": \"\"test_entity_column\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"STRING\"\",\n \"\"description\"\": \"\"test secondary entity column\"\"\n},\n{\n \"\"name\"\": \"\"feature_timestamp\"\",\n \"\"mode\"\": \"\"NULLABLE\"\",\n \"\"type\"\": \"\"TIMESTAMP\"\",\n \"\"description\"\": \"\"Default timestamp value\"\"\n}\n]\n\",\n });\n\n var featureviewVectorSearch = new Gcp.Vertex.AiFeatureOnlineStoreFeatureview(\"featureview_vector_search\", new()\n {\n Name = \"example_feature_view_vector_search\",\n Region = \"us-central1\",\n FeatureOnlineStore = featureonlinestore.Name,\n SyncConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs\n {\n Cron = \"0 0 * * *\",\n },\n BigQuerySource = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs\n {\n Uri = Output.Tuple(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).Apply(values =\u003e\n {\n var project = values.Item1;\n var datasetId = values.Item2;\n var tableId = values.Item3;\n return $\"bq://{project}.{datasetId}.{tableId}\";\n }),\n EntityIdColumns = new[]\n {\n \"test_entity_column\",\n },\n },\n VectorSearchConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs\n {\n EmbeddingColumn = \"embedding\",\n FilterColumns = new[]\n {\n \"country\",\n },\n CrowdingColumn = \"test_crowding_column\",\n DistanceMeasureType = \"DOT_PRODUCT_DISTANCE\",\n TreeAhConfig = new Gcp.Vertex.Inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs\n {\n LeafNodeEmbeddingCount = \"1000\",\n },\n EmbeddingDimension = 2,\n },\n });\n\n var project = Gcp.Organizations.GetProject.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/bigquery\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vertex\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfeatureonlinestore, err := vertex.NewAiFeatureOnlineStore(ctx, \"featureonlinestore\", \u0026vertex.AiFeatureOnlineStoreArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tBigtable: \u0026vertex.AiFeatureOnlineStoreBigtableArgs{\n\t\t\t\tAutoScaling: \u0026vertex.AiFeatureOnlineStoreBigtableAutoScalingArgs{\n\t\t\t\t\tMinNodeCount: pulumi.Int(1),\n\t\t\t\t\tMaxNodeCount: pulumi.Int(2),\n\t\t\t\t\tCpuUtilizationTarget: pulumi.Int(80),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEmbeddingManagement: \u0026vertex.AiFeatureOnlineStoreEmbeddingManagementArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewDataset(ctx, \"tf-test-dataset\", \u0026bigquery.DatasetArgs{\n\t\t\tDatasetId: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tFriendlyName: pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"This is a test description\"),\n\t\t\tLocation: pulumi.String(\"US\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bigquery.NewTable(ctx, \"tf-test-table\", \u0026bigquery.TableArgs{\n\t\t\tDeletionProtection: pulumi.Bool(false),\n\t\t\tDatasetId: tf_test_dataset.DatasetId,\n\t\t\tTableId: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tSchema: pulumi.String(`[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vertex.NewAiFeatureOnlineStoreFeatureview(ctx, \"featureview_vector_search\", \u0026vertex.AiFeatureOnlineStoreFeatureviewArgs{\n\t\t\tName: pulumi.String(\"example_feature_view_vector_search\"),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tFeatureOnlineStore: featureonlinestore.Name,\n\t\t\tSyncConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewSyncConfigArgs{\n\t\t\t\tCron: pulumi.String(\"0 0 * * *\"),\n\t\t\t},\n\t\t\tBigQuerySource: \u0026vertex.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs{\n\t\t\t\tUri: pulumi.All(tf_test_table.Project, tf_test_table.DatasetId, tf_test_table.TableId).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\t\tproject := _args[0].(string)\n\t\t\t\t\tdatasetId := _args[1].(string)\n\t\t\t\t\ttableId := _args[2].(string)\n\t\t\t\t\treturn fmt.Sprintf(\"bq://%v.%v.%v\", project, datasetId, tableId), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tEntityIdColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"test_entity_column\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tVectorSearchConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs{\n\t\t\t\tEmbeddingColumn: pulumi.String(\"embedding\"),\n\t\t\t\tFilterColumns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"country\"),\n\t\t\t\t},\n\t\t\t\tCrowdingColumn: pulumi.String(\"test_crowding_column\"),\n\t\t\t\tDistanceMeasureType: pulumi.String(\"DOT_PRODUCT_DISTANCE\"),\n\t\t\t\tTreeAhConfig: \u0026vertex.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs{\n\t\t\t\t\tLeafNodeEmbeddingCount: pulumi.String(\"1000\"),\n\t\t\t\t},\n\t\t\t\tEmbeddingDimension: pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = organizations.LookupProject(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStore;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreBigtableAutoScalingArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreEmbeddingManagementArgs;\nimport com.pulumi.gcp.bigquery.Dataset;\nimport com.pulumi.gcp.bigquery.DatasetArgs;\nimport com.pulumi.gcp.bigquery.Table;\nimport com.pulumi.gcp.bigquery.TableArgs;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureview;\nimport com.pulumi.gcp.vertex.AiFeatureOnlineStoreFeatureviewArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewSyncConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs;\nimport com.pulumi.gcp.vertex.inputs.AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs;\nimport com.pulumi.gcp.organizations.OrganizationsFunctions;\nimport com.pulumi.gcp.organizations.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var featureonlinestore = new AiFeatureOnlineStore(\"featureonlinestore\", AiFeatureOnlineStoreArgs.builder()\n .name(\"example_feature_view_vector_search\")\n .labels(Map.of(\"foo\", \"bar\"))\n .region(\"us-central1\")\n .bigtable(AiFeatureOnlineStoreBigtableArgs.builder()\n .autoScaling(AiFeatureOnlineStoreBigtableAutoScalingArgs.builder()\n .minNodeCount(1)\n .maxNodeCount(2)\n .cpuUtilizationTarget(80)\n .build())\n .build())\n .embeddingManagement(AiFeatureOnlineStoreEmbeddingManagementArgs.builder()\n .enabled(true)\n .build())\n .build());\n\n var tf_test_dataset = new Dataset(\"tf-test-dataset\", DatasetArgs.builder()\n .datasetId(\"example_feature_view_vector_search\")\n .friendlyName(\"test\")\n .description(\"This is a test description\")\n .location(\"US\")\n .build());\n\n var tf_test_table = new Table(\"tf-test-table\", TableArgs.builder()\n .deletionProtection(false)\n .datasetId(tf_test_dataset.datasetId())\n .tableId(\"example_feature_view_vector_search\")\n .schema(\"\"\"\n[\n{\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n},\n{\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n},\n{\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n},\n{\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n},\n{\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n},\n{\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n},\n{\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n}\n]\n \"\"\")\n .build());\n\n var featureviewVectorSearch = new AiFeatureOnlineStoreFeatureview(\"featureviewVectorSearch\", AiFeatureOnlineStoreFeatureviewArgs.builder()\n .name(\"example_feature_view_vector_search\")\n .region(\"us-central1\")\n .featureOnlineStore(featureonlinestore.name())\n .syncConfig(AiFeatureOnlineStoreFeatureviewSyncConfigArgs.builder()\n .cron(\"0 0 * * *\")\n .build())\n .bigQuerySource(AiFeatureOnlineStoreFeatureviewBigQuerySourceArgs.builder()\n .uri(Output.tuple(tf_test_table.project(), tf_test_table.datasetId(), tf_test_table.tableId()).applyValue(values -\u003e {\n var project = values.t1;\n var datasetId = values.t2;\n var tableId = values.t3;\n return String.format(\"bq://%s.%s.%s\", project,datasetId,tableId);\n }))\n .entityIdColumns(\"test_entity_column\")\n .build())\n .vectorSearchConfig(AiFeatureOnlineStoreFeatureviewVectorSearchConfigArgs.builder()\n .embeddingColumn(\"embedding\")\n .filterColumns(\"country\")\n .crowdingColumn(\"test_crowding_column\")\n .distanceMeasureType(\"DOT_PRODUCT_DISTANCE\")\n .treeAhConfig(AiFeatureOnlineStoreFeatureviewVectorSearchConfigTreeAhConfigArgs.builder()\n .leafNodeEmbeddingCount(\"1000\")\n .build())\n .embeddingDimension(\"2\")\n .build())\n .build());\n\n final var project = OrganizationsFunctions.getProject();\n\n }\n}\n```\n```yaml\nresources:\n featureonlinestore:\n type: gcp:vertex:AiFeatureOnlineStore\n properties:\n name: example_feature_view_vector_search\n labels:\n foo: bar\n region: us-central1\n bigtable:\n autoScaling:\n minNodeCount: 1\n maxNodeCount: 2\n cpuUtilizationTarget: 80\n embeddingManagement:\n enabled: true\n tf-test-dataset:\n type: gcp:bigquery:Dataset\n properties:\n datasetId: example_feature_view_vector_search\n friendlyName: test\n description: This is a test description\n location: US\n tf-test-table:\n type: gcp:bigquery:Table\n properties:\n deletionProtection: false\n datasetId: ${[\"tf-test-dataset\"].datasetId}\n tableId: example_feature_view_vector_search\n schema: |\n [\n {\n \"name\": \"test_primary_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"primary test id\"\n },\n {\n \"name\": \"embedding\",\n \"mode\": \"REPEATED\",\n \"type\": \"FLOAT\",\n \"description\": \"embedding column for primary_id column\"\n },\n {\n \"name\": \"country\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"country\"\n },\n {\n \"name\": \"test_crowding_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"INTEGER\",\n \"description\": \"test crowding column\"\n },\n {\n \"name\": \"entity_id\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"Test default entity_id\"\n },\n {\n \"name\": \"test_entity_column\",\n \"mode\": \"NULLABLE\",\n \"type\": \"STRING\",\n \"description\": \"test secondary entity column\"\n },\n {\n \"name\": \"feature_timestamp\",\n \"mode\": \"NULLABLE\",\n \"type\": \"TIMESTAMP\",\n \"description\": \"Default timestamp value\"\n }\n ]\n featureviewVectorSearch:\n type: gcp:vertex:AiFeatureOnlineStoreFeatureview\n name: featureview_vector_search\n properties:\n name: example_feature_view_vector_search\n region: us-central1\n featureOnlineStore: ${featureonlinestore.name}\n syncConfig:\n cron: 0 0 * * *\n bigQuerySource:\n uri: bq://${[\"tf-test-table\"].project}.${[\"tf-test-table\"].datasetId}.${[\"tf-test-table\"].tableId}\n entityIdColumns:\n - test_entity_column\n vectorSearchConfig:\n embeddingColumn: embedding\n filterColumns:\n - country\n crowdingColumn: test_crowding_column\n distanceMeasureType: DOT_PRODUCT_DISTANCE\n treeAhConfig:\n leafNodeEmbeddingCount: '1000'\n embeddingDimension: '2'\nvariables:\n project:\n fn::invoke:\n Function: gcp:organizations:getProject\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nFeatureOnlineStoreFeatureview can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{region}}/featureOnlineStores/{{feature_online_store}}/featureViews/{{name}}`\n\n* `{{project}}/{{region}}/{{feature_online_store}}/{{name}}`\n\n* `{{region}}/{{feature_online_store}}/{{name}}`\n\n* `{{feature_online_store}}/{{name}}`\n\nWhen using the `pulumi import` command, FeatureOnlineStoreFeatureview can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default projects/{{project}}/locations/{{region}}/featureOnlineStores/{{feature_online_store}}/featureViews/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default {{project}}/{{region}}/{{feature_online_store}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default {{region}}/{{feature_online_store}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview default {{feature_online_store}}/{{name}}\n```\n\n", "properties": { "bigQuerySource": { "$ref": "#/types/gcp:vertex/AiFeatureOnlineStoreFeatureviewBigQuerySource:AiFeatureOnlineStoreFeatureviewBigQuerySource", @@ -247421,8 +249179,12 @@ } }, "gcp:vmwareengine/privateCloud:PrivateCloud": { - "description": "Represents a private cloud resource. Private clouds are zonal resources.\n\n\nTo get more information about PrivateCloud, see:\n\n* [API documentation](https://cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.privateClouds)\n\n## Example Usage\n\n### Vmware Engine Private Cloud Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst pc_nw = new gcp.vmwareengine.Network(\"pc-nw\", {\n name: \"pc-nw\",\n location: \"global\",\n type: \"STANDARD\",\n description: \"PC network description.\",\n});\nconst vmw_engine_pc = new gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\", {\n location: \"us-west1-a\",\n name: \"sample-pc\",\n description: \"Sample test PC.\",\n networkConfig: {\n managementCidr: \"192.168.30.0/24\",\n vmwareEngineNetwork: pc_nw.id,\n },\n managementCluster: {\n clusterId: \"sample-mgmt-cluster\",\n nodeTypeConfigs: [{\n nodeTypeId: \"standard-72\",\n nodeCount: 3,\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npc_nw = gcp.vmwareengine.Network(\"pc-nw\",\n name=\"pc-nw\",\n location=\"global\",\n type=\"STANDARD\",\n description=\"PC network description.\")\nvmw_engine_pc = gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\",\n location=\"us-west1-a\",\n name=\"sample-pc\",\n description=\"Sample test PC.\",\n network_config={\n \"management_cidr\": \"192.168.30.0/24\",\n \"vmware_engine_network\": pc_nw.id,\n },\n management_cluster={\n \"cluster_id\": \"sample-mgmt-cluster\",\n \"node_type_configs\": [{\n \"node_type_id\": \"standard-72\",\n \"node_count\": 3,\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pc_nw = new Gcp.VMwareEngine.Network(\"pc-nw\", new()\n {\n Name = \"pc-nw\",\n Location = \"global\",\n Type = \"STANDARD\",\n Description = \"PC network description.\",\n });\n\n var vmw_engine_pc = new Gcp.VMwareEngine.PrivateCloud(\"vmw-engine-pc\", new()\n {\n Location = \"us-west1-a\",\n Name = \"sample-pc\",\n Description = \"Sample test PC.\",\n NetworkConfig = new Gcp.VMwareEngine.Inputs.PrivateCloudNetworkConfigArgs\n {\n ManagementCidr = \"192.168.30.0/24\",\n VmwareEngineNetwork = pc_nw.Id,\n },\n ManagementCluster = new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterArgs\n {\n ClusterId = \"sample-mgmt-cluster\",\n NodeTypeConfigs = new[]\n {\n new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterNodeTypeConfigArgs\n {\n NodeTypeId = \"standard-72\",\n NodeCount = 3,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vmwareengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vmwareengine.NewNetwork(ctx, \"pc-nw\", \u0026vmwareengine.NetworkArgs{\n\t\t\tName: pulumi.String(\"pc-nw\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tType: pulumi.String(\"STANDARD\"),\n\t\t\tDescription: pulumi.String(\"PC network description.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vmwareengine.NewPrivateCloud(ctx, \"vmw-engine-pc\", \u0026vmwareengine.PrivateCloudArgs{\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t\tName: pulumi.String(\"sample-pc\"),\n\t\t\tDescription: pulumi.String(\"Sample test PC.\"),\n\t\t\tNetworkConfig: \u0026vmwareengine.PrivateCloudNetworkConfigArgs{\n\t\t\t\tManagementCidr: pulumi.String(\"192.168.30.0/24\"),\n\t\t\t\tVmwareEngineNetwork: pc_nw.ID(),\n\t\t\t},\n\t\t\tManagementCluster: \u0026vmwareengine.PrivateCloudManagementClusterArgs{\n\t\t\t\tClusterId: pulumi.String(\"sample-mgmt-cluster\"),\n\t\t\t\tNodeTypeConfigs: vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArray{\n\t\t\t\t\t\u0026vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArgs{\n\t\t\t\t\t\tNodeTypeId: pulumi.String(\"standard-72\"),\n\t\t\t\t\t\tNodeCount: pulumi.Int(3),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vmwareengine.Network;\nimport com.pulumi.gcp.vmwareengine.NetworkArgs;\nimport com.pulumi.gcp.vmwareengine.PrivateCloud;\nimport com.pulumi.gcp.vmwareengine.PrivateCloudArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudNetworkConfigArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudManagementClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pc_nw = new Network(\"pc-nw\", NetworkArgs.builder()\n .name(\"pc-nw\")\n .location(\"global\")\n .type(\"STANDARD\")\n .description(\"PC network description.\")\n .build());\n\n var vmw_engine_pc = new PrivateCloud(\"vmw-engine-pc\", PrivateCloudArgs.builder()\n .location(\"us-west1-a\")\n .name(\"sample-pc\")\n .description(\"Sample test PC.\")\n .networkConfig(PrivateCloudNetworkConfigArgs.builder()\n .managementCidr(\"192.168.30.0/24\")\n .vmwareEngineNetwork(pc_nw.id())\n .build())\n .managementCluster(PrivateCloudManagementClusterArgs.builder()\n .clusterId(\"sample-mgmt-cluster\")\n .nodeTypeConfigs(PrivateCloudManagementClusterNodeTypeConfigArgs.builder()\n .nodeTypeId(\"standard-72\")\n .nodeCount(3)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmw-engine-pc:\n type: gcp:vmwareengine:PrivateCloud\n properties:\n location: us-west1-a\n name: sample-pc\n description: Sample test PC.\n networkConfig:\n managementCidr: 192.168.30.0/24\n vmwareEngineNetwork: ${[\"pc-nw\"].id}\n managementCluster:\n clusterId: sample-mgmt-cluster\n nodeTypeConfigs:\n - nodeTypeId: standard-72\n nodeCount: 3\n pc-nw:\n type: gcp:vmwareengine:Network\n properties:\n name: pc-nw\n location: global\n type: STANDARD\n description: PC network description.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vmware Engine Private Cloud Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst pc_nw = new gcp.vmwareengine.Network(\"pc-nw\", {\n name: \"pc-nw\",\n location: \"global\",\n type: \"STANDARD\",\n description: \"PC network description.\",\n});\nconst vmw_engine_pc = new gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\", {\n location: \"us-west1-a\",\n name: \"sample-pc\",\n description: \"Sample test PC.\",\n type: \"TIME_LIMITED\",\n networkConfig: {\n managementCidr: \"192.168.30.0/24\",\n vmwareEngineNetwork: pc_nw.id,\n },\n managementCluster: {\n clusterId: \"sample-mgmt-cluster\",\n nodeTypeConfigs: [{\n nodeTypeId: \"standard-72\",\n nodeCount: 1,\n customCoreCount: 32,\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npc_nw = gcp.vmwareengine.Network(\"pc-nw\",\n name=\"pc-nw\",\n location=\"global\",\n type=\"STANDARD\",\n description=\"PC network description.\")\nvmw_engine_pc = gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\",\n location=\"us-west1-a\",\n name=\"sample-pc\",\n description=\"Sample test PC.\",\n type=\"TIME_LIMITED\",\n network_config={\n \"management_cidr\": \"192.168.30.0/24\",\n \"vmware_engine_network\": pc_nw.id,\n },\n management_cluster={\n \"cluster_id\": \"sample-mgmt-cluster\",\n \"node_type_configs\": [{\n \"node_type_id\": \"standard-72\",\n \"node_count\": 1,\n \"custom_core_count\": 32,\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pc_nw = new Gcp.VMwareEngine.Network(\"pc-nw\", new()\n {\n Name = \"pc-nw\",\n Location = \"global\",\n Type = \"STANDARD\",\n Description = \"PC network description.\",\n });\n\n var vmw_engine_pc = new Gcp.VMwareEngine.PrivateCloud(\"vmw-engine-pc\", new()\n {\n Location = \"us-west1-a\",\n Name = \"sample-pc\",\n Description = \"Sample test PC.\",\n Type = \"TIME_LIMITED\",\n NetworkConfig = new Gcp.VMwareEngine.Inputs.PrivateCloudNetworkConfigArgs\n {\n ManagementCidr = \"192.168.30.0/24\",\n VmwareEngineNetwork = pc_nw.Id,\n },\n ManagementCluster = new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterArgs\n {\n ClusterId = \"sample-mgmt-cluster\",\n NodeTypeConfigs = new[]\n {\n new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterNodeTypeConfigArgs\n {\n NodeTypeId = \"standard-72\",\n NodeCount = 1,\n CustomCoreCount = 32,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vmwareengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vmwareengine.NewNetwork(ctx, \"pc-nw\", \u0026vmwareengine.NetworkArgs{\n\t\t\tName: pulumi.String(\"pc-nw\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tType: pulumi.String(\"STANDARD\"),\n\t\t\tDescription: pulumi.String(\"PC network description.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vmwareengine.NewPrivateCloud(ctx, \"vmw-engine-pc\", \u0026vmwareengine.PrivateCloudArgs{\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t\tName: pulumi.String(\"sample-pc\"),\n\t\t\tDescription: pulumi.String(\"Sample test PC.\"),\n\t\t\tType: pulumi.String(\"TIME_LIMITED\"),\n\t\t\tNetworkConfig: \u0026vmwareengine.PrivateCloudNetworkConfigArgs{\n\t\t\t\tManagementCidr: pulumi.String(\"192.168.30.0/24\"),\n\t\t\t\tVmwareEngineNetwork: pc_nw.ID(),\n\t\t\t},\n\t\t\tManagementCluster: \u0026vmwareengine.PrivateCloudManagementClusterArgs{\n\t\t\t\tClusterId: pulumi.String(\"sample-mgmt-cluster\"),\n\t\t\t\tNodeTypeConfigs: vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArray{\n\t\t\t\t\t\u0026vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArgs{\n\t\t\t\t\t\tNodeTypeId: pulumi.String(\"standard-72\"),\n\t\t\t\t\t\tNodeCount: pulumi.Int(1),\n\t\t\t\t\t\tCustomCoreCount: pulumi.Int(32),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vmwareengine.Network;\nimport com.pulumi.gcp.vmwareengine.NetworkArgs;\nimport com.pulumi.gcp.vmwareengine.PrivateCloud;\nimport com.pulumi.gcp.vmwareengine.PrivateCloudArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudNetworkConfigArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudManagementClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pc_nw = new Network(\"pc-nw\", NetworkArgs.builder()\n .name(\"pc-nw\")\n .location(\"global\")\n .type(\"STANDARD\")\n .description(\"PC network description.\")\n .build());\n\n var vmw_engine_pc = new PrivateCloud(\"vmw-engine-pc\", PrivateCloudArgs.builder()\n .location(\"us-west1-a\")\n .name(\"sample-pc\")\n .description(\"Sample test PC.\")\n .type(\"TIME_LIMITED\")\n .networkConfig(PrivateCloudNetworkConfigArgs.builder()\n .managementCidr(\"192.168.30.0/24\")\n .vmwareEngineNetwork(pc_nw.id())\n .build())\n .managementCluster(PrivateCloudManagementClusterArgs.builder()\n .clusterId(\"sample-mgmt-cluster\")\n .nodeTypeConfigs(PrivateCloudManagementClusterNodeTypeConfigArgs.builder()\n .nodeTypeId(\"standard-72\")\n .nodeCount(1)\n .customCoreCount(32)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmw-engine-pc:\n type: gcp:vmwareengine:PrivateCloud\n properties:\n location: us-west1-a\n name: sample-pc\n description: Sample test PC.\n type: TIME_LIMITED\n networkConfig:\n managementCidr: 192.168.30.0/24\n vmwareEngineNetwork: ${[\"pc-nw\"].id}\n managementCluster:\n clusterId: sample-mgmt-cluster\n nodeTypeConfigs:\n - nodeTypeId: standard-72\n nodeCount: 1\n customCoreCount: 32\n pc-nw:\n type: gcp:vmwareengine:Network\n properties:\n name: pc-nw\n location: global\n type: STANDARD\n description: PC network description.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivateCloud can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/privateClouds/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, PrivateCloud can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:vmwareengine/privateCloud:PrivateCloud default projects/{{project}}/locations/{{location}}/privateClouds/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vmwareengine/privateCloud:PrivateCloud default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vmwareengine/privateCloud:PrivateCloud default {{location}}/{{name}}\n```\n\n", + "description": "Represents a private cloud resource. Private clouds are zonal resources.\n\n\nTo get more information about PrivateCloud, see:\n\n* [API documentation](https://cloud.google.com/vmware-engine/docs/reference/rest/v1/projects.locations.privateClouds)\n\n## Example Usage\n\n### Vmware Engine Private Cloud Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst pc_nw = new gcp.vmwareengine.Network(\"pc-nw\", {\n name: \"pc-nw\",\n location: \"global\",\n type: \"STANDARD\",\n description: \"PC network description.\",\n});\nconst vmw_engine_pc = new gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\", {\n location: \"us-west1-a\",\n name: \"sample-pc\",\n description: \"Sample test PC.\",\n networkConfig: {\n managementCidr: \"192.168.30.0/24\",\n vmwareEngineNetwork: pc_nw.id,\n },\n managementCluster: {\n clusterId: \"sample-mgmt-cluster\",\n nodeTypeConfigs: [{\n nodeTypeId: \"standard-72\",\n nodeCount: 3,\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npc_nw = gcp.vmwareengine.Network(\"pc-nw\",\n name=\"pc-nw\",\n location=\"global\",\n type=\"STANDARD\",\n description=\"PC network description.\")\nvmw_engine_pc = gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\",\n location=\"us-west1-a\",\n name=\"sample-pc\",\n description=\"Sample test PC.\",\n network_config={\n \"management_cidr\": \"192.168.30.0/24\",\n \"vmware_engine_network\": pc_nw.id,\n },\n management_cluster={\n \"cluster_id\": \"sample-mgmt-cluster\",\n \"node_type_configs\": [{\n \"node_type_id\": \"standard-72\",\n \"node_count\": 3,\n }],\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pc_nw = new Gcp.VMwareEngine.Network(\"pc-nw\", new()\n {\n Name = \"pc-nw\",\n Location = \"global\",\n Type = \"STANDARD\",\n Description = \"PC network description.\",\n });\n\n var vmw_engine_pc = new Gcp.VMwareEngine.PrivateCloud(\"vmw-engine-pc\", new()\n {\n Location = \"us-west1-a\",\n Name = \"sample-pc\",\n Description = \"Sample test PC.\",\n NetworkConfig = new Gcp.VMwareEngine.Inputs.PrivateCloudNetworkConfigArgs\n {\n ManagementCidr = \"192.168.30.0/24\",\n VmwareEngineNetwork = pc_nw.Id,\n },\n ManagementCluster = new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterArgs\n {\n ClusterId = \"sample-mgmt-cluster\",\n NodeTypeConfigs = new[]\n {\n new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterNodeTypeConfigArgs\n {\n NodeTypeId = \"standard-72\",\n NodeCount = 3,\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vmwareengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vmwareengine.NewNetwork(ctx, \"pc-nw\", \u0026vmwareengine.NetworkArgs{\n\t\t\tName: pulumi.String(\"pc-nw\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tType: pulumi.String(\"STANDARD\"),\n\t\t\tDescription: pulumi.String(\"PC network description.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vmwareengine.NewPrivateCloud(ctx, \"vmw-engine-pc\", \u0026vmwareengine.PrivateCloudArgs{\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t\tName: pulumi.String(\"sample-pc\"),\n\t\t\tDescription: pulumi.String(\"Sample test PC.\"),\n\t\t\tNetworkConfig: \u0026vmwareengine.PrivateCloudNetworkConfigArgs{\n\t\t\t\tManagementCidr: pulumi.String(\"192.168.30.0/24\"),\n\t\t\t\tVmwareEngineNetwork: pc_nw.ID(),\n\t\t\t},\n\t\t\tManagementCluster: \u0026vmwareengine.PrivateCloudManagementClusterArgs{\n\t\t\t\tClusterId: pulumi.String(\"sample-mgmt-cluster\"),\n\t\t\t\tNodeTypeConfigs: vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArray{\n\t\t\t\t\t\u0026vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArgs{\n\t\t\t\t\t\tNodeTypeId: pulumi.String(\"standard-72\"),\n\t\t\t\t\t\tNodeCount: pulumi.Int(3),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vmwareengine.Network;\nimport com.pulumi.gcp.vmwareengine.NetworkArgs;\nimport com.pulumi.gcp.vmwareengine.PrivateCloud;\nimport com.pulumi.gcp.vmwareengine.PrivateCloudArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudNetworkConfigArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudManagementClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pc_nw = new Network(\"pc-nw\", NetworkArgs.builder()\n .name(\"pc-nw\")\n .location(\"global\")\n .type(\"STANDARD\")\n .description(\"PC network description.\")\n .build());\n\n var vmw_engine_pc = new PrivateCloud(\"vmw-engine-pc\", PrivateCloudArgs.builder()\n .location(\"us-west1-a\")\n .name(\"sample-pc\")\n .description(\"Sample test PC.\")\n .networkConfig(PrivateCloudNetworkConfigArgs.builder()\n .managementCidr(\"192.168.30.0/24\")\n .vmwareEngineNetwork(pc_nw.id())\n .build())\n .managementCluster(PrivateCloudManagementClusterArgs.builder()\n .clusterId(\"sample-mgmt-cluster\")\n .nodeTypeConfigs(PrivateCloudManagementClusterNodeTypeConfigArgs.builder()\n .nodeTypeId(\"standard-72\")\n .nodeCount(3)\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmw-engine-pc:\n type: gcp:vmwareengine:PrivateCloud\n properties:\n location: us-west1-a\n name: sample-pc\n description: Sample test PC.\n networkConfig:\n managementCidr: 192.168.30.0/24\n vmwareEngineNetwork: ${[\"pc-nw\"].id}\n managementCluster:\n clusterId: sample-mgmt-cluster\n nodeTypeConfigs:\n - nodeTypeId: standard-72\n nodeCount: 3\n pc-nw:\n type: gcp:vmwareengine:Network\n properties:\n name: pc-nw\n location: global\n type: STANDARD\n description: PC network description.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Vmware Engine Private Cloud Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst pc_nw = new gcp.vmwareengine.Network(\"pc-nw\", {\n name: \"pc-nw\",\n location: \"global\",\n type: \"STANDARD\",\n description: \"PC network description.\",\n});\nconst vmw_engine_pc = new gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\", {\n location: \"us-west1-a\",\n name: \"sample-pc\",\n description: \"Sample test PC.\",\n type: \"TIME_LIMITED\",\n networkConfig: {\n managementCidr: \"192.168.30.0/24\",\n vmwareEngineNetwork: pc_nw.id,\n },\n managementCluster: {\n clusterId: \"sample-mgmt-cluster\",\n nodeTypeConfigs: [{\n nodeTypeId: \"standard-72\",\n nodeCount: 1,\n customCoreCount: 32,\n }],\n },\n deletionDelayHours: 0,\n sendDeletionDelayHoursIfZero: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\npc_nw = gcp.vmwareengine.Network(\"pc-nw\",\n name=\"pc-nw\",\n location=\"global\",\n type=\"STANDARD\",\n description=\"PC network description.\")\nvmw_engine_pc = gcp.vmwareengine.PrivateCloud(\"vmw-engine-pc\",\n location=\"us-west1-a\",\n name=\"sample-pc\",\n description=\"Sample test PC.\",\n type=\"TIME_LIMITED\",\n network_config={\n \"management_cidr\": \"192.168.30.0/24\",\n \"vmware_engine_network\": pc_nw.id,\n },\n management_cluster={\n \"cluster_id\": \"sample-mgmt-cluster\",\n \"node_type_configs\": [{\n \"node_type_id\": \"standard-72\",\n \"node_count\": 1,\n \"custom_core_count\": 32,\n }],\n },\n deletion_delay_hours=0,\n send_deletion_delay_hours_if_zero=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pc_nw = new Gcp.VMwareEngine.Network(\"pc-nw\", new()\n {\n Name = \"pc-nw\",\n Location = \"global\",\n Type = \"STANDARD\",\n Description = \"PC network description.\",\n });\n\n var vmw_engine_pc = new Gcp.VMwareEngine.PrivateCloud(\"vmw-engine-pc\", new()\n {\n Location = \"us-west1-a\",\n Name = \"sample-pc\",\n Description = \"Sample test PC.\",\n Type = \"TIME_LIMITED\",\n NetworkConfig = new Gcp.VMwareEngine.Inputs.PrivateCloudNetworkConfigArgs\n {\n ManagementCidr = \"192.168.30.0/24\",\n VmwareEngineNetwork = pc_nw.Id,\n },\n ManagementCluster = new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterArgs\n {\n ClusterId = \"sample-mgmt-cluster\",\n NodeTypeConfigs = new[]\n {\n new Gcp.VMwareEngine.Inputs.PrivateCloudManagementClusterNodeTypeConfigArgs\n {\n NodeTypeId = \"standard-72\",\n NodeCount = 1,\n CustomCoreCount = 32,\n },\n },\n },\n DeletionDelayHours = 0,\n SendDeletionDelayHoursIfZero = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/vmwareengine\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := vmwareengine.NewNetwork(ctx, \"pc-nw\", \u0026vmwareengine.NetworkArgs{\n\t\t\tName: pulumi.String(\"pc-nw\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tType: pulumi.String(\"STANDARD\"),\n\t\t\tDescription: pulumi.String(\"PC network description.\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = vmwareengine.NewPrivateCloud(ctx, \"vmw-engine-pc\", \u0026vmwareengine.PrivateCloudArgs{\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t\tName: pulumi.String(\"sample-pc\"),\n\t\t\tDescription: pulumi.String(\"Sample test PC.\"),\n\t\t\tType: pulumi.String(\"TIME_LIMITED\"),\n\t\t\tNetworkConfig: \u0026vmwareengine.PrivateCloudNetworkConfigArgs{\n\t\t\t\tManagementCidr: pulumi.String(\"192.168.30.0/24\"),\n\t\t\t\tVmwareEngineNetwork: pc_nw.ID(),\n\t\t\t},\n\t\t\tManagementCluster: \u0026vmwareengine.PrivateCloudManagementClusterArgs{\n\t\t\t\tClusterId: pulumi.String(\"sample-mgmt-cluster\"),\n\t\t\t\tNodeTypeConfigs: vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArray{\n\t\t\t\t\t\u0026vmwareengine.PrivateCloudManagementClusterNodeTypeConfigArgs{\n\t\t\t\t\t\tNodeTypeId: pulumi.String(\"standard-72\"),\n\t\t\t\t\t\tNodeCount: pulumi.Int(1),\n\t\t\t\t\t\tCustomCoreCount: pulumi.Int(32),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDeletionDelayHours: pulumi.Int(0),\n\t\t\tSendDeletionDelayHoursIfZero: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.vmwareengine.Network;\nimport com.pulumi.gcp.vmwareengine.NetworkArgs;\nimport com.pulumi.gcp.vmwareengine.PrivateCloud;\nimport com.pulumi.gcp.vmwareengine.PrivateCloudArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudNetworkConfigArgs;\nimport com.pulumi.gcp.vmwareengine.inputs.PrivateCloudManagementClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var pc_nw = new Network(\"pc-nw\", NetworkArgs.builder()\n .name(\"pc-nw\")\n .location(\"global\")\n .type(\"STANDARD\")\n .description(\"PC network description.\")\n .build());\n\n var vmw_engine_pc = new PrivateCloud(\"vmw-engine-pc\", PrivateCloudArgs.builder()\n .location(\"us-west1-a\")\n .name(\"sample-pc\")\n .description(\"Sample test PC.\")\n .type(\"TIME_LIMITED\")\n .networkConfig(PrivateCloudNetworkConfigArgs.builder()\n .managementCidr(\"192.168.30.0/24\")\n .vmwareEngineNetwork(pc_nw.id())\n .build())\n .managementCluster(PrivateCloudManagementClusterArgs.builder()\n .clusterId(\"sample-mgmt-cluster\")\n .nodeTypeConfigs(PrivateCloudManagementClusterNodeTypeConfigArgs.builder()\n .nodeTypeId(\"standard-72\")\n .nodeCount(1)\n .customCoreCount(32)\n .build())\n .build())\n .deletionDelayHours(0)\n .sendDeletionDelayHoursIfZero(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vmw-engine-pc:\n type: gcp:vmwareengine:PrivateCloud\n properties:\n location: us-west1-a\n name: sample-pc\n description: Sample test PC.\n type: TIME_LIMITED\n networkConfig:\n managementCidr: 192.168.30.0/24\n vmwareEngineNetwork: ${[\"pc-nw\"].id}\n managementCluster:\n clusterId: sample-mgmt-cluster\n nodeTypeConfigs:\n - nodeTypeId: standard-72\n nodeCount: 1\n customCoreCount: 32\n deletionDelayHours: 0\n sendDeletionDelayHoursIfZero: true\n pc-nw:\n type: gcp:vmwareengine:Network\n properties:\n name: pc-nw\n location: global\n type: STANDARD\n description: PC network description.\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPrivateCloud can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/privateClouds/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, PrivateCloud can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:vmwareengine/privateCloud:PrivateCloud default projects/{{project}}/locations/{{location}}/privateClouds/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vmwareengine/privateCloud:PrivateCloud default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:vmwareengine/privateCloud:PrivateCloud default {{location}}/{{name}}\n```\n\n", "properties": { + "deletionDelayHours": { + "type": "integer", + "description": "The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0\nstarts the deletion request immediately. If no value is set, a default value is set at the API Level.\n" + }, "description": { "type": "string", "description": "User-provided description for this private cloud.\n" @@ -247460,6 +249222,10 @@ "project": { "type": "string" }, + "sendDeletionDelayHoursIfZero": { + "type": "boolean", + "description": "While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is\nonly useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with\ndeletion_delay_hours.\n" + }, "state": { "type": "string", "description": "State of the appliance.\nPossible values are: `ACTIVE`, `CREATING`.\n" @@ -247493,6 +249259,10 @@ "vcenters" ], "inputProperties": { + "deletionDelayHours": { + "type": "integer", + "description": "The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0\nstarts the deletion request immediately. If no value is set, a default value is set at the API Level.\n" + }, "description": { "type": "string", "description": "User-provided description for this private cloud.\n" @@ -247520,6 +249290,10 @@ "type": "string", "willReplaceOnChanges": true }, + "sendDeletionDelayHoursIfZero": { + "type": "boolean", + "description": "While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is\nonly useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with\ndeletion_delay_hours.\n" + }, "type": { "type": "string", "description": "Initial type of the private cloud. Possible values: [\"STANDARD\", \"TIME_LIMITED\", \"STRETCHED\"]\n", @@ -247534,6 +249308,10 @@ "stateInputs": { "description": "Input properties used for looking up and filtering PrivateCloud resources.\n", "properties": { + "deletionDelayHours": { + "type": "integer", + "description": "The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0\nstarts the deletion request immediately. If no value is set, a default value is set at the API Level.\n" + }, "description": { "type": "string", "description": "User-provided description for this private cloud.\n" @@ -247575,6 +249353,10 @@ "type": "string", "willReplaceOnChanges": true }, + "sendDeletionDelayHoursIfZero": { + "type": "boolean", + "description": "While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is\nonly useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with\ndeletion_delay_hours.\n" + }, "state": { "type": "string", "description": "State of the appliance.\nPossible values are: `ACTIVE`, `CREATING`.\n" @@ -247966,7 +249748,7 @@ } }, "gcp:workbench/instance:Instance": { - "description": "A Workbench instance.\n\n\n\n## Example Usage\n\n### Workbench Instance Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-west1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-west1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-west1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-west1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-west1-a\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Basic Container\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-west1-a\",\n gceSetup: {\n containerImage: {\n repository: \"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\",\n tag: \"latest\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-west1-a\",\n gce_setup={\n \"container_image\": {\n \"repository\": \"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\",\n \"tag\": \"latest\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-west1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n ContainerImage = new Gcp.Workbench.Inputs.InstanceGceSetupContainerImageArgs\n {\n Repository = \"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\",\n Tag = \"latest\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tContainerImage: \u0026workbench.InstanceGceSetupContainerImageArgs{\n\t\t\t\t\tRepository: pulumi.String(\"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\"),\n\t\t\t\t\tTag: pulumi.String(\"latest\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupContainerImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-west1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .containerImage(InstanceGceSetupContainerImageArgs.builder()\n .repository(\"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\")\n .tag(\"latest\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-west1-a\n gceSetup:\n containerImage:\n repository: us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\n tag: latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Basic Gpu\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-central1-a\",\n gceSetup: {\n machineType: \"n1-standard-1\",\n acceleratorConfigs: [{\n type: \"NVIDIA_TESLA_T4\",\n coreCount: \"1\",\n }],\n vmImage: {\n project: \"cloud-notebooks-managed\",\n family: \"workbench-instances\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-central1-a\",\n gce_setup={\n \"machine_type\": \"n1-standard-1\",\n \"accelerator_configs\": [{\n \"type\": \"NVIDIA_TESLA_T4\",\n \"core_count\": \"1\",\n }],\n \"vm_image\": {\n \"project\": \"cloud-notebooks-managed\",\n \"family\": \"workbench-instances\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-central1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n MachineType = \"n1-standard-1\",\n AcceleratorConfigs = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupAcceleratorConfigArgs\n {\n Type = \"NVIDIA_TESLA_T4\",\n CoreCount = \"1\",\n },\n },\n VmImage = new Gcp.Workbench.Inputs.InstanceGceSetupVmImageArgs\n {\n Project = \"cloud-notebooks-managed\",\n Family = \"workbench-instances\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tMachineType: pulumi.String(\"n1-standard-1\"),\n\t\t\t\tAcceleratorConfigs: workbench.InstanceGceSetupAcceleratorConfigArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupAcceleratorConfigArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NVIDIA_TESLA_T4\"),\n\t\t\t\t\t\tCoreCount: pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tVmImage: \u0026workbench.InstanceGceSetupVmImageArgs{\n\t\t\t\t\tProject: pulumi.String(\"cloud-notebooks-managed\"),\n\t\t\t\t\tFamily: pulumi.String(\"workbench-instances\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupVmImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-central1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .machineType(\"n1-standard-1\")\n .acceleratorConfigs(InstanceGceSetupAcceleratorConfigArgs.builder()\n .type(\"NVIDIA_TESLA_T4\")\n .coreCount(1)\n .build())\n .vmImage(InstanceGceSetupVmImageArgs.builder()\n .project(\"cloud-notebooks-managed\")\n .family(\"workbench-instances\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-central1-a\n gceSetup:\n machineType: n1-standard-1\n acceleratorConfigs:\n - type: NVIDIA_TESLA_T4\n coreCount: 1\n vmImage:\n project: cloud-notebooks-managed\n family: workbench-instances\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Labels Stopped\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-central1-a\",\n gceSetup: {\n machineType: \"e2-standard-4\",\n shieldedInstanceConfig: {\n enableSecureBoot: false,\n enableVtpm: false,\n enableIntegrityMonitoring: false,\n },\n serviceAccounts: [{\n email: \"my@service-account.com\",\n }],\n metadata: {\n terraform: \"true\",\n },\n },\n instanceOwners: [\"my@service-account.com\"],\n labels: {\n k: \"val\",\n },\n desiredState: \"STOPPED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-central1-a\",\n gce_setup={\n \"machine_type\": \"e2-standard-4\",\n \"shielded_instance_config\": {\n \"enable_secure_boot\": False,\n \"enable_vtpm\": False,\n \"enable_integrity_monitoring\": False,\n },\n \"service_accounts\": [{\n \"email\": \"my@service-account.com\",\n }],\n \"metadata\": {\n \"terraform\": \"true\",\n },\n },\n instance_owners=[\"my@service-account.com\"],\n labels={\n \"k\": \"val\",\n },\n desired_state=\"STOPPED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-central1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n MachineType = \"e2-standard-4\",\n ShieldedInstanceConfig = new Gcp.Workbench.Inputs.InstanceGceSetupShieldedInstanceConfigArgs\n {\n EnableSecureBoot = false,\n EnableVtpm = false,\n EnableIntegrityMonitoring = false,\n },\n ServiceAccounts = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupServiceAccountArgs\n {\n Email = \"my@service-account.com\",\n },\n },\n Metadata = \n {\n { \"terraform\", \"true\" },\n },\n },\n InstanceOwners = new[]\n {\n \"my@service-account.com\",\n },\n Labels = \n {\n { \"k\", \"val\" },\n },\n DesiredState = \"STOPPED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tMachineType: pulumi.String(\"e2-standard-4\"),\n\t\t\t\tShieldedInstanceConfig: \u0026workbench.InstanceGceSetupShieldedInstanceConfigArgs{\n\t\t\t\t\tEnableSecureBoot: pulumi.Bool(false),\n\t\t\t\t\tEnableVtpm: pulumi.Bool(false),\n\t\t\t\t\tEnableIntegrityMonitoring: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tServiceAccounts: workbench.InstanceGceSetupServiceAccountArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupServiceAccountArgs{\n\t\t\t\t\t\tEmail: pulumi.String(\"my@service-account.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\t\"terraform\": pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInstanceOwners: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my@service-account.com\"),\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"k\": pulumi.String(\"val\"),\n\t\t\t},\n\t\t\tDesiredState: pulumi.String(\"STOPPED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupShieldedInstanceConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-central1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .machineType(\"e2-standard-4\")\n .shieldedInstanceConfig(InstanceGceSetupShieldedInstanceConfigArgs.builder()\n .enableSecureBoot(false)\n .enableVtpm(false)\n .enableIntegrityMonitoring(false)\n .build())\n .serviceAccounts(InstanceGceSetupServiceAccountArgs.builder()\n .email(\"my@service-account.com\")\n .build())\n .metadata(Map.of(\"terraform\", \"true\"))\n .build())\n .instanceOwners(\"my@service-account.com\")\n .labels(Map.of(\"k\", \"val\"))\n .desiredState(\"STOPPED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-central1-a\n gceSetup:\n machineType: e2-standard-4\n shieldedInstanceConfig:\n enableSecureBoot: false\n enableVtpm: false\n enableIntegrityMonitoring: false\n serviceAccounts:\n - email: my@service-account.com\n metadata:\n terraform: 'true'\n instanceOwners:\n - my@service-account.com\n labels:\n k: val\n desiredState: STOPPED\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst myNetwork = new gcp.compute.Network(\"my_network\", {\n name: \"wbi-test-default\",\n autoCreateSubnetworks: false,\n});\nconst mySubnetwork = new gcp.compute.Subnetwork(\"my_subnetwork\", {\n name: \"wbi-test-default\",\n network: myNetwork.id,\n region: \"us-central1\",\n ipCidrRange: \"10.0.1.0/24\",\n});\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-central1-a\",\n gceSetup: {\n machineType: \"n1-standard-4\",\n acceleratorConfigs: [{\n type: \"NVIDIA_TESLA_T4\",\n coreCount: \"1\",\n }],\n shieldedInstanceConfig: {\n enableSecureBoot: true,\n enableVtpm: true,\n enableIntegrityMonitoring: true,\n },\n disablePublicIp: false,\n serviceAccounts: [{\n email: \"my@service-account.com\",\n }],\n bootDisk: {\n diskSizeGb: \"310\",\n diskType: \"PD_SSD\",\n diskEncryption: \"CMEK\",\n kmsKey: \"my-crypto-key\",\n },\n dataDisks: {\n diskSizeGb: \"330\",\n diskType: \"PD_SSD\",\n diskEncryption: \"CMEK\",\n kmsKey: \"my-crypto-key\",\n },\n networkInterfaces: [{\n network: myNetwork.id,\n subnet: mySubnetwork.id,\n nicType: \"GVNIC\",\n }],\n metadata: {\n terraform: \"true\",\n },\n enableIpForwarding: true,\n tags: [\n \"abc\",\n \"def\",\n ],\n },\n disableProxyAccess: true,\n instanceOwners: [\"my@service-account.com\"],\n labels: {\n k: \"val\",\n },\n desiredState: \"ACTIVE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmy_network = gcp.compute.Network(\"my_network\",\n name=\"wbi-test-default\",\n auto_create_subnetworks=False)\nmy_subnetwork = gcp.compute.Subnetwork(\"my_subnetwork\",\n name=\"wbi-test-default\",\n network=my_network.id,\n region=\"us-central1\",\n ip_cidr_range=\"10.0.1.0/24\")\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-central1-a\",\n gce_setup={\n \"machine_type\": \"n1-standard-4\",\n \"accelerator_configs\": [{\n \"type\": \"NVIDIA_TESLA_T4\",\n \"core_count\": \"1\",\n }],\n \"shielded_instance_config\": {\n \"enable_secure_boot\": True,\n \"enable_vtpm\": True,\n \"enable_integrity_monitoring\": True,\n },\n \"disable_public_ip\": False,\n \"service_accounts\": [{\n \"email\": \"my@service-account.com\",\n }],\n \"boot_disk\": {\n \"disk_size_gb\": \"310\",\n \"disk_type\": \"PD_SSD\",\n \"disk_encryption\": \"CMEK\",\n \"kms_key\": \"my-crypto-key\",\n },\n \"data_disks\": {\n \"disk_size_gb\": \"330\",\n \"disk_type\": \"PD_SSD\",\n \"disk_encryption\": \"CMEK\",\n \"kms_key\": \"my-crypto-key\",\n },\n \"network_interfaces\": [{\n \"network\": my_network.id,\n \"subnet\": my_subnetwork.id,\n \"nic_type\": \"GVNIC\",\n }],\n \"metadata\": {\n \"terraform\": \"true\",\n },\n \"enable_ip_forwarding\": True,\n \"tags\": [\n \"abc\",\n \"def\",\n ],\n },\n disable_proxy_access=True,\n instance_owners=[\"my@service-account.com\"],\n labels={\n \"k\": \"val\",\n },\n desired_state=\"ACTIVE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myNetwork = new Gcp.Compute.Network(\"my_network\", new()\n {\n Name = \"wbi-test-default\",\n AutoCreateSubnetworks = false,\n });\n\n var mySubnetwork = new Gcp.Compute.Subnetwork(\"my_subnetwork\", new()\n {\n Name = \"wbi-test-default\",\n Network = myNetwork.Id,\n Region = \"us-central1\",\n IpCidrRange = \"10.0.1.0/24\",\n });\n\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-central1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n MachineType = \"n1-standard-4\",\n AcceleratorConfigs = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupAcceleratorConfigArgs\n {\n Type = \"NVIDIA_TESLA_T4\",\n CoreCount = \"1\",\n },\n },\n ShieldedInstanceConfig = new Gcp.Workbench.Inputs.InstanceGceSetupShieldedInstanceConfigArgs\n {\n EnableSecureBoot = true,\n EnableVtpm = true,\n EnableIntegrityMonitoring = true,\n },\n DisablePublicIp = false,\n ServiceAccounts = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupServiceAccountArgs\n {\n Email = \"my@service-account.com\",\n },\n },\n BootDisk = new Gcp.Workbench.Inputs.InstanceGceSetupBootDiskArgs\n {\n DiskSizeGb = \"310\",\n DiskType = \"PD_SSD\",\n DiskEncryption = \"CMEK\",\n KmsKey = \"my-crypto-key\",\n },\n DataDisks = new Gcp.Workbench.Inputs.InstanceGceSetupDataDisksArgs\n {\n DiskSizeGb = \"330\",\n DiskType = \"PD_SSD\",\n DiskEncryption = \"CMEK\",\n KmsKey = \"my-crypto-key\",\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupNetworkInterfaceArgs\n {\n Network = myNetwork.Id,\n Subnet = mySubnetwork.Id,\n NicType = \"GVNIC\",\n },\n },\n Metadata = \n {\n { \"terraform\", \"true\" },\n },\n EnableIpForwarding = true,\n Tags = new[]\n {\n \"abc\",\n \"def\",\n },\n },\n DisableProxyAccess = true,\n InstanceOwners = new[]\n {\n \"my@service-account.com\",\n },\n Labels = \n {\n { \"k\", \"val\" },\n },\n DesiredState = \"ACTIVE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyNetwork, err := compute.NewNetwork(ctx, \"my_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"wbi-test-default\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmySubnetwork, err := compute.NewSubnetwork(ctx, \"my_subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"wbi-test-default\"),\n\t\t\tNetwork: myNetwork.ID(),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tMachineType: pulumi.String(\"n1-standard-4\"),\n\t\t\t\tAcceleratorConfigs: workbench.InstanceGceSetupAcceleratorConfigArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupAcceleratorConfigArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NVIDIA_TESLA_T4\"),\n\t\t\t\t\t\tCoreCount: pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tShieldedInstanceConfig: \u0026workbench.InstanceGceSetupShieldedInstanceConfigArgs{\n\t\t\t\t\tEnableSecureBoot: pulumi.Bool(true),\n\t\t\t\t\tEnableVtpm: pulumi.Bool(true),\n\t\t\t\t\tEnableIntegrityMonitoring: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tDisablePublicIp: pulumi.Bool(false),\n\t\t\t\tServiceAccounts: workbench.InstanceGceSetupServiceAccountArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupServiceAccountArgs{\n\t\t\t\t\t\tEmail: pulumi.String(\"my@service-account.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tBootDisk: \u0026workbench.InstanceGceSetupBootDiskArgs{\n\t\t\t\t\tDiskSizeGb: pulumi.String(\"310\"),\n\t\t\t\t\tDiskType: pulumi.String(\"PD_SSD\"),\n\t\t\t\t\tDiskEncryption: pulumi.String(\"CMEK\"),\n\t\t\t\t\tKmsKey: pulumi.String(\"my-crypto-key\"),\n\t\t\t\t},\n\t\t\t\tDataDisks: \u0026workbench.InstanceGceSetupDataDisksArgs{\n\t\t\t\t\tDiskSizeGb: pulumi.String(\"330\"),\n\t\t\t\t\tDiskType: pulumi.String(\"PD_SSD\"),\n\t\t\t\t\tDiskEncryption: pulumi.String(\"CMEK\"),\n\t\t\t\t\tKmsKey: pulumi.String(\"my-crypto-key\"),\n\t\t\t\t},\n\t\t\t\tNetworkInterfaces: workbench.InstanceGceSetupNetworkInterfaceArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupNetworkInterfaceArgs{\n\t\t\t\t\t\tNetwork: myNetwork.ID(),\n\t\t\t\t\t\tSubnet: mySubnetwork.ID(),\n\t\t\t\t\t\tNicType: pulumi.String(\"GVNIC\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\t\"terraform\": pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t\tEnableIpForwarding: pulumi.Bool(true),\n\t\t\t\tTags: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"abc\"),\n\t\t\t\t\tpulumi.String(\"def\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisableProxyAccess: pulumi.Bool(true),\n\t\t\tInstanceOwners: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"my@service-account.com\"),\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"k\": pulumi.String(\"val\"),\n\t\t\t},\n\t\t\tDesiredState: pulumi.String(\"ACTIVE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupShieldedInstanceConfigArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupBootDiskArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupDataDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var myNetwork = new Network(\"myNetwork\", NetworkArgs.builder()\n .name(\"wbi-test-default\")\n .autoCreateSubnetworks(false)\n .build());\n\n var mySubnetwork = new Subnetwork(\"mySubnetwork\", SubnetworkArgs.builder()\n .name(\"wbi-test-default\")\n .network(myNetwork.id())\n .region(\"us-central1\")\n .ipCidrRange(\"10.0.1.0/24\")\n .build());\n\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-central1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .machineType(\"n1-standard-4\")\n .acceleratorConfigs(InstanceGceSetupAcceleratorConfigArgs.builder()\n .type(\"NVIDIA_TESLA_T4\")\n .coreCount(1)\n .build())\n .shieldedInstanceConfig(InstanceGceSetupShieldedInstanceConfigArgs.builder()\n .enableSecureBoot(true)\n .enableVtpm(true)\n .enableIntegrityMonitoring(true)\n .build())\n .disablePublicIp(false)\n .serviceAccounts(InstanceGceSetupServiceAccountArgs.builder()\n .email(\"my@service-account.com\")\n .build())\n .bootDisk(InstanceGceSetupBootDiskArgs.builder()\n .diskSizeGb(310)\n .diskType(\"PD_SSD\")\n .diskEncryption(\"CMEK\")\n .kmsKey(\"my-crypto-key\")\n .build())\n .dataDisks(InstanceGceSetupDataDisksArgs.builder()\n .diskSizeGb(330)\n .diskType(\"PD_SSD\")\n .diskEncryption(\"CMEK\")\n .kmsKey(\"my-crypto-key\")\n .build())\n .networkInterfaces(InstanceGceSetupNetworkInterfaceArgs.builder()\n .network(myNetwork.id())\n .subnet(mySubnetwork.id())\n .nicType(\"GVNIC\")\n .build())\n .metadata(Map.of(\"terraform\", \"true\"))\n .enableIpForwarding(true)\n .tags( \n \"abc\",\n \"def\")\n .build())\n .disableProxyAccess(\"true\")\n .instanceOwners(\"my@service-account.com\")\n .labels(Map.of(\"k\", \"val\"))\n .desiredState(\"ACTIVE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myNetwork:\n type: gcp:compute:Network\n name: my_network\n properties:\n name: wbi-test-default\n autoCreateSubnetworks: false\n mySubnetwork:\n type: gcp:compute:Subnetwork\n name: my_subnetwork\n properties:\n name: wbi-test-default\n network: ${myNetwork.id}\n region: us-central1\n ipCidrRange: 10.0.1.0/24\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-central1-a\n gceSetup:\n machineType: n1-standard-4\n acceleratorConfigs:\n - type: NVIDIA_TESLA_T4\n coreCount: 1\n shieldedInstanceConfig:\n enableSecureBoot: true\n enableVtpm: true\n enableIntegrityMonitoring: true\n disablePublicIp: false\n serviceAccounts:\n - email: my@service-account.com\n bootDisk:\n diskSizeGb: 310\n diskType: PD_SSD\n diskEncryption: CMEK\n kmsKey: my-crypto-key\n dataDisks:\n diskSizeGb: 330\n diskType: PD_SSD\n diskEncryption: CMEK\n kmsKey: my-crypto-key\n networkInterfaces:\n - network: ${myNetwork.id}\n subnet: ${mySubnetwork.id}\n nicType: GVNIC\n metadata:\n terraform: 'true'\n enableIpForwarding: true\n tags:\n - abc\n - def\n disableProxyAccess: 'true'\n instanceOwners:\n - my@service-account.com\n labels:\n k: val\n desiredState: ACTIVE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/instances/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, Instance can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:workbench/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{name}}\n```\n\n```sh\n$ pulumi import gcp:workbench/instance:Instance default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:workbench/instance:Instance default {{location}}/{{name}}\n```\n\n", + "description": "A Workbench instance.\n\n\n\n## Example Usage\n\n### Workbench Instance Basic\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-west1-a\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-west1-a\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-west1-a\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-west1-a\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-west1-a\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Basic Container\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-west1-a\",\n gceSetup: {\n containerImage: {\n repository: \"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\",\n tag: \"latest\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-west1-a\",\n gce_setup={\n \"container_image\": {\n \"repository\": \"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\",\n \"tag\": \"latest\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-west1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n ContainerImage = new Gcp.Workbench.Inputs.InstanceGceSetupContainerImageArgs\n {\n Repository = \"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\",\n Tag = \"latest\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-west1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tContainerImage: \u0026workbench.InstanceGceSetupContainerImageArgs{\n\t\t\t\t\tRepository: pulumi.String(\"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\"),\n\t\t\t\t\tTag: pulumi.String(\"latest\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupContainerImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-west1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .containerImage(InstanceGceSetupContainerImageArgs.builder()\n .repository(\"us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\")\n .tag(\"latest\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-west1-a\n gceSetup:\n containerImage:\n repository: us-docker.pkg.dev/deeplearning-platform-release/gcr.io/base-cu113.py310\n tag: latest\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Basic Gpu\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-central1-a\",\n gceSetup: {\n machineType: \"n1-standard-1\",\n acceleratorConfigs: [{\n type: \"NVIDIA_TESLA_T4\",\n coreCount: \"1\",\n }],\n vmImage: {\n project: \"cloud-notebooks-managed\",\n family: \"workbench-instances\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-central1-a\",\n gce_setup={\n \"machine_type\": \"n1-standard-1\",\n \"accelerator_configs\": [{\n \"type\": \"NVIDIA_TESLA_T4\",\n \"core_count\": \"1\",\n }],\n \"vm_image\": {\n \"project\": \"cloud-notebooks-managed\",\n \"family\": \"workbench-instances\",\n },\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-central1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n MachineType = \"n1-standard-1\",\n AcceleratorConfigs = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupAcceleratorConfigArgs\n {\n Type = \"NVIDIA_TESLA_T4\",\n CoreCount = \"1\",\n },\n },\n VmImage = new Gcp.Workbench.Inputs.InstanceGceSetupVmImageArgs\n {\n Project = \"cloud-notebooks-managed\",\n Family = \"workbench-instances\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tMachineType: pulumi.String(\"n1-standard-1\"),\n\t\t\t\tAcceleratorConfigs: workbench.InstanceGceSetupAcceleratorConfigArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupAcceleratorConfigArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NVIDIA_TESLA_T4\"),\n\t\t\t\t\t\tCoreCount: pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tVmImage: \u0026workbench.InstanceGceSetupVmImageArgs{\n\t\t\t\t\tProject: pulumi.String(\"cloud-notebooks-managed\"),\n\t\t\t\t\tFamily: pulumi.String(\"workbench-instances\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupVmImageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-central1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .machineType(\"n1-standard-1\")\n .acceleratorConfigs(InstanceGceSetupAcceleratorConfigArgs.builder()\n .type(\"NVIDIA_TESLA_T4\")\n .coreCount(1)\n .build())\n .vmImage(InstanceGceSetupVmImageArgs.builder()\n .project(\"cloud-notebooks-managed\")\n .family(\"workbench-instances\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-central1-a\n gceSetup:\n machineType: n1-standard-1\n acceleratorConfigs:\n - type: NVIDIA_TESLA_T4\n coreCount: 1\n vmImage:\n project: cloud-notebooks-managed\n family: workbench-instances\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Labels Stopped\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-central1-a\",\n gceSetup: {\n machineType: \"e2-standard-4\",\n shieldedInstanceConfig: {\n enableSecureBoot: false,\n enableVtpm: false,\n enableIntegrityMonitoring: false,\n },\n serviceAccounts: [{\n email: \"my@service-account.com\",\n }],\n metadata: {\n terraform: \"true\",\n },\n },\n labels: {\n k: \"val\",\n },\n desiredState: \"STOPPED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-central1-a\",\n gce_setup={\n \"machine_type\": \"e2-standard-4\",\n \"shielded_instance_config\": {\n \"enable_secure_boot\": False,\n \"enable_vtpm\": False,\n \"enable_integrity_monitoring\": False,\n },\n \"service_accounts\": [{\n \"email\": \"my@service-account.com\",\n }],\n \"metadata\": {\n \"terraform\": \"true\",\n },\n },\n labels={\n \"k\": \"val\",\n },\n desired_state=\"STOPPED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-central1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n MachineType = \"e2-standard-4\",\n ShieldedInstanceConfig = new Gcp.Workbench.Inputs.InstanceGceSetupShieldedInstanceConfigArgs\n {\n EnableSecureBoot = false,\n EnableVtpm = false,\n EnableIntegrityMonitoring = false,\n },\n ServiceAccounts = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupServiceAccountArgs\n {\n Email = \"my@service-account.com\",\n },\n },\n Metadata = \n {\n { \"terraform\", \"true\" },\n },\n },\n Labels = \n {\n { \"k\", \"val\" },\n },\n DesiredState = \"STOPPED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tMachineType: pulumi.String(\"e2-standard-4\"),\n\t\t\t\tShieldedInstanceConfig: \u0026workbench.InstanceGceSetupShieldedInstanceConfigArgs{\n\t\t\t\t\tEnableSecureBoot: pulumi.Bool(false),\n\t\t\t\t\tEnableVtpm: pulumi.Bool(false),\n\t\t\t\t\tEnableIntegrityMonitoring: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t\tServiceAccounts: workbench.InstanceGceSetupServiceAccountArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupServiceAccountArgs{\n\t\t\t\t\t\tEmail: pulumi.String(\"my@service-account.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\t\"terraform\": pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"k\": pulumi.String(\"val\"),\n\t\t\t},\n\t\t\tDesiredState: pulumi.String(\"STOPPED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupShieldedInstanceConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-central1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .machineType(\"e2-standard-4\")\n .shieldedInstanceConfig(InstanceGceSetupShieldedInstanceConfigArgs.builder()\n .enableSecureBoot(false)\n .enableVtpm(false)\n .enableIntegrityMonitoring(false)\n .build())\n .serviceAccounts(InstanceGceSetupServiceAccountArgs.builder()\n .email(\"my@service-account.com\")\n .build())\n .metadata(Map.of(\"terraform\", \"true\"))\n .build())\n .labels(Map.of(\"k\", \"val\"))\n .desiredState(\"STOPPED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-central1-a\n gceSetup:\n machineType: e2-standard-4\n shieldedInstanceConfig:\n enableSecureBoot: false\n enableVtpm: false\n enableIntegrityMonitoring: false\n serviceAccounts:\n - email: my@service-account.com\n metadata:\n terraform: 'true'\n labels:\n k: val\n desiredState: STOPPED\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Workbench Instance Full\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as gcp from \"@pulumi/gcp\";\n\nconst myNetwork = new gcp.compute.Network(\"my_network\", {\n name: \"wbi-test-default\",\n autoCreateSubnetworks: false,\n});\nconst mySubnetwork = new gcp.compute.Subnetwork(\"my_subnetwork\", {\n name: \"wbi-test-default\",\n network: myNetwork.id,\n region: \"us-central1\",\n ipCidrRange: \"10.0.1.0/24\",\n});\nconst static = new gcp.compute.Address(\"static\", {name: \"wbi-test-default\"});\nconst actAsPermission = new gcp.serviceaccount.IAMBinding(\"act_as_permission\", {\n serviceAccountId: \"projects/my-project-name/serviceAccounts/my@service-account.com\",\n role: \"roles/iam.serviceAccountUser\",\n members: [\"user:example@example.com\"],\n});\nconst instance = new gcp.workbench.Instance(\"instance\", {\n name: \"workbench-instance\",\n location: \"us-central1-a\",\n gceSetup: {\n machineType: \"n1-standard-4\",\n acceleratorConfigs: [{\n type: \"NVIDIA_TESLA_T4\",\n coreCount: \"1\",\n }],\n shieldedInstanceConfig: {\n enableSecureBoot: true,\n enableVtpm: true,\n enableIntegrityMonitoring: true,\n },\n disablePublicIp: false,\n serviceAccounts: [{\n email: \"my@service-account.com\",\n }],\n bootDisk: {\n diskSizeGb: \"310\",\n diskType: \"PD_SSD\",\n diskEncryption: \"CMEK\",\n kmsKey: \"my-crypto-key\",\n },\n dataDisks: {\n diskSizeGb: \"330\",\n diskType: \"PD_SSD\",\n diskEncryption: \"CMEK\",\n kmsKey: \"my-crypto-key\",\n },\n networkInterfaces: [{\n network: myNetwork.id,\n subnet: mySubnetwork.id,\n nicType: \"GVNIC\",\n accessConfigs: [{\n externalIp: static.address,\n }],\n }],\n metadata: {\n terraform: \"true\",\n },\n enableIpForwarding: true,\n tags: [\n \"abc\",\n \"def\",\n ],\n },\n disableProxyAccess: true,\n instanceOwners: [\"example@example.com\"],\n labels: {\n k: \"val\",\n },\n desiredState: \"ACTIVE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_gcp as gcp\n\nmy_network = gcp.compute.Network(\"my_network\",\n name=\"wbi-test-default\",\n auto_create_subnetworks=False)\nmy_subnetwork = gcp.compute.Subnetwork(\"my_subnetwork\",\n name=\"wbi-test-default\",\n network=my_network.id,\n region=\"us-central1\",\n ip_cidr_range=\"10.0.1.0/24\")\nstatic = gcp.compute.Address(\"static\", name=\"wbi-test-default\")\nact_as_permission = gcp.serviceaccount.IAMBinding(\"act_as_permission\",\n service_account_id=\"projects/my-project-name/serviceAccounts/my@service-account.com\",\n role=\"roles/iam.serviceAccountUser\",\n members=[\"user:example@example.com\"])\ninstance = gcp.workbench.Instance(\"instance\",\n name=\"workbench-instance\",\n location=\"us-central1-a\",\n gce_setup={\n \"machine_type\": \"n1-standard-4\",\n \"accelerator_configs\": [{\n \"type\": \"NVIDIA_TESLA_T4\",\n \"core_count\": \"1\",\n }],\n \"shielded_instance_config\": {\n \"enable_secure_boot\": True,\n \"enable_vtpm\": True,\n \"enable_integrity_monitoring\": True,\n },\n \"disable_public_ip\": False,\n \"service_accounts\": [{\n \"email\": \"my@service-account.com\",\n }],\n \"boot_disk\": {\n \"disk_size_gb\": \"310\",\n \"disk_type\": \"PD_SSD\",\n \"disk_encryption\": \"CMEK\",\n \"kms_key\": \"my-crypto-key\",\n },\n \"data_disks\": {\n \"disk_size_gb\": \"330\",\n \"disk_type\": \"PD_SSD\",\n \"disk_encryption\": \"CMEK\",\n \"kms_key\": \"my-crypto-key\",\n },\n \"network_interfaces\": [{\n \"network\": my_network.id,\n \"subnet\": my_subnetwork.id,\n \"nic_type\": \"GVNIC\",\n \"access_configs\": [{\n \"external_ip\": static.address,\n }],\n }],\n \"metadata\": {\n \"terraform\": \"true\",\n },\n \"enable_ip_forwarding\": True,\n \"tags\": [\n \"abc\",\n \"def\",\n ],\n },\n disable_proxy_access=True,\n instance_owners=[\"example@example.com\"],\n labels={\n \"k\": \"val\",\n },\n desired_state=\"ACTIVE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Gcp = Pulumi.Gcp;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myNetwork = new Gcp.Compute.Network(\"my_network\", new()\n {\n Name = \"wbi-test-default\",\n AutoCreateSubnetworks = false,\n });\n\n var mySubnetwork = new Gcp.Compute.Subnetwork(\"my_subnetwork\", new()\n {\n Name = \"wbi-test-default\",\n Network = myNetwork.Id,\n Region = \"us-central1\",\n IpCidrRange = \"10.0.1.0/24\",\n });\n\n var @static = new Gcp.Compute.Address(\"static\", new()\n {\n Name = \"wbi-test-default\",\n });\n\n var actAsPermission = new Gcp.ServiceAccount.IAMBinding(\"act_as_permission\", new()\n {\n ServiceAccountId = \"projects/my-project-name/serviceAccounts/my@service-account.com\",\n Role = \"roles/iam.serviceAccountUser\",\n Members = new[]\n {\n \"user:example@example.com\",\n },\n });\n\n var instance = new Gcp.Workbench.Instance(\"instance\", new()\n {\n Name = \"workbench-instance\",\n Location = \"us-central1-a\",\n GceSetup = new Gcp.Workbench.Inputs.InstanceGceSetupArgs\n {\n MachineType = \"n1-standard-4\",\n AcceleratorConfigs = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupAcceleratorConfigArgs\n {\n Type = \"NVIDIA_TESLA_T4\",\n CoreCount = \"1\",\n },\n },\n ShieldedInstanceConfig = new Gcp.Workbench.Inputs.InstanceGceSetupShieldedInstanceConfigArgs\n {\n EnableSecureBoot = true,\n EnableVtpm = true,\n EnableIntegrityMonitoring = true,\n },\n DisablePublicIp = false,\n ServiceAccounts = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupServiceAccountArgs\n {\n Email = \"my@service-account.com\",\n },\n },\n BootDisk = new Gcp.Workbench.Inputs.InstanceGceSetupBootDiskArgs\n {\n DiskSizeGb = \"310\",\n DiskType = \"PD_SSD\",\n DiskEncryption = \"CMEK\",\n KmsKey = \"my-crypto-key\",\n },\n DataDisks = new Gcp.Workbench.Inputs.InstanceGceSetupDataDisksArgs\n {\n DiskSizeGb = \"330\",\n DiskType = \"PD_SSD\",\n DiskEncryption = \"CMEK\",\n KmsKey = \"my-crypto-key\",\n },\n NetworkInterfaces = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupNetworkInterfaceArgs\n {\n Network = myNetwork.Id,\n Subnet = mySubnetwork.Id,\n NicType = \"GVNIC\",\n AccessConfigs = new[]\n {\n new Gcp.Workbench.Inputs.InstanceGceSetupNetworkInterfaceAccessConfigArgs\n {\n ExternalIp = @static.IPAddress,\n },\n },\n },\n },\n Metadata = \n {\n { \"terraform\", \"true\" },\n },\n EnableIpForwarding = true,\n Tags = new[]\n {\n \"abc\",\n \"def\",\n },\n },\n DisableProxyAccess = true,\n InstanceOwners = new[]\n {\n \"example@example.com\",\n },\n Labels = \n {\n { \"k\", \"val\" },\n },\n DesiredState = \"ACTIVE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount\"\n\t\"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyNetwork, err := compute.NewNetwork(ctx, \"my_network\", \u0026compute.NetworkArgs{\n\t\t\tName: pulumi.String(\"wbi-test-default\"),\n\t\t\tAutoCreateSubnetworks: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmySubnetwork, err := compute.NewSubnetwork(ctx, \"my_subnetwork\", \u0026compute.SubnetworkArgs{\n\t\t\tName: pulumi.String(\"wbi-test-default\"),\n\t\t\tNetwork: myNetwork.ID(),\n\t\t\tRegion: pulumi.String(\"us-central1\"),\n\t\t\tIpCidrRange: pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tstatic, err := compute.NewAddress(ctx, \"static\", \u0026compute.AddressArgs{\n\t\t\tName: pulumi.String(\"wbi-test-default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = serviceaccount.NewIAMBinding(ctx, \"act_as_permission\", \u0026serviceaccount.IAMBindingArgs{\n\t\t\tServiceAccountId: pulumi.String(\"projects/my-project-name/serviceAccounts/my@service-account.com\"),\n\t\t\tRole: pulumi.String(\"roles/iam.serviceAccountUser\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user:example@example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workbench.NewInstance(ctx, \"instance\", \u0026workbench.InstanceArgs{\n\t\t\tName: pulumi.String(\"workbench-instance\"),\n\t\t\tLocation: pulumi.String(\"us-central1-a\"),\n\t\t\tGceSetup: \u0026workbench.InstanceGceSetupArgs{\n\t\t\t\tMachineType: pulumi.String(\"n1-standard-4\"),\n\t\t\t\tAcceleratorConfigs: workbench.InstanceGceSetupAcceleratorConfigArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupAcceleratorConfigArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NVIDIA_TESLA_T4\"),\n\t\t\t\t\t\tCoreCount: pulumi.String(\"1\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tShieldedInstanceConfig: \u0026workbench.InstanceGceSetupShieldedInstanceConfigArgs{\n\t\t\t\t\tEnableSecureBoot: pulumi.Bool(true),\n\t\t\t\t\tEnableVtpm: pulumi.Bool(true),\n\t\t\t\t\tEnableIntegrityMonitoring: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t\tDisablePublicIp: pulumi.Bool(false),\n\t\t\t\tServiceAccounts: workbench.InstanceGceSetupServiceAccountArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupServiceAccountArgs{\n\t\t\t\t\t\tEmail: pulumi.String(\"my@service-account.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tBootDisk: \u0026workbench.InstanceGceSetupBootDiskArgs{\n\t\t\t\t\tDiskSizeGb: pulumi.String(\"310\"),\n\t\t\t\t\tDiskType: pulumi.String(\"PD_SSD\"),\n\t\t\t\t\tDiskEncryption: pulumi.String(\"CMEK\"),\n\t\t\t\t\tKmsKey: pulumi.String(\"my-crypto-key\"),\n\t\t\t\t},\n\t\t\t\tDataDisks: \u0026workbench.InstanceGceSetupDataDisksArgs{\n\t\t\t\t\tDiskSizeGb: pulumi.String(\"330\"),\n\t\t\t\t\tDiskType: pulumi.String(\"PD_SSD\"),\n\t\t\t\t\tDiskEncryption: pulumi.String(\"CMEK\"),\n\t\t\t\t\tKmsKey: pulumi.String(\"my-crypto-key\"),\n\t\t\t\t},\n\t\t\t\tNetworkInterfaces: workbench.InstanceGceSetupNetworkInterfaceArray{\n\t\t\t\t\t\u0026workbench.InstanceGceSetupNetworkInterfaceArgs{\n\t\t\t\t\t\tNetwork: myNetwork.ID(),\n\t\t\t\t\t\tSubnet: mySubnetwork.ID(),\n\t\t\t\t\t\tNicType: pulumi.String(\"GVNIC\"),\n\t\t\t\t\t\tAccessConfigs: workbench.InstanceGceSetupNetworkInterfaceAccessConfigArray{\n\t\t\t\t\t\t\t\u0026workbench.InstanceGceSetupNetworkInterfaceAccessConfigArgs{\n\t\t\t\t\t\t\t\tExternalIp: static.Address,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tMetadata: pulumi.StringMap{\n\t\t\t\t\t\"terraform\": pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t\tEnableIpForwarding: pulumi.Bool(true),\n\t\t\t\tTags: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"abc\"),\n\t\t\t\t\tpulumi.String(\"def\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tDisableProxyAccess: pulumi.Bool(true),\n\t\t\tInstanceOwners: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example@example.com\"),\n\t\t\t},\n\t\t\tLabels: pulumi.StringMap{\n\t\t\t\t\"k\": pulumi.String(\"val\"),\n\t\t\t},\n\t\t\tDesiredState: pulumi.String(\"ACTIVE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.gcp.compute.Network;\nimport com.pulumi.gcp.compute.NetworkArgs;\nimport com.pulumi.gcp.compute.Subnetwork;\nimport com.pulumi.gcp.compute.SubnetworkArgs;\nimport com.pulumi.gcp.compute.Address;\nimport com.pulumi.gcp.compute.AddressArgs;\nimport com.pulumi.gcp.serviceaccount.IAMBinding;\nimport com.pulumi.gcp.serviceaccount.IAMBindingArgs;\nimport com.pulumi.gcp.workbench.Instance;\nimport com.pulumi.gcp.workbench.InstanceArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupShieldedInstanceConfigArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupBootDiskArgs;\nimport com.pulumi.gcp.workbench.inputs.InstanceGceSetupDataDisksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var myNetwork = new Network(\"myNetwork\", NetworkArgs.builder()\n .name(\"wbi-test-default\")\n .autoCreateSubnetworks(false)\n .build());\n\n var mySubnetwork = new Subnetwork(\"mySubnetwork\", SubnetworkArgs.builder()\n .name(\"wbi-test-default\")\n .network(myNetwork.id())\n .region(\"us-central1\")\n .ipCidrRange(\"10.0.1.0/24\")\n .build());\n\n var static_ = new Address(\"static\", AddressArgs.builder()\n .name(\"wbi-test-default\")\n .build());\n\n var actAsPermission = new IAMBinding(\"actAsPermission\", IAMBindingArgs.builder()\n .serviceAccountId(\"projects/my-project-name/serviceAccounts/my@service-account.com\")\n .role(\"roles/iam.serviceAccountUser\")\n .members(\"user:example@example.com\")\n .build());\n\n var instance = new Instance(\"instance\", InstanceArgs.builder()\n .name(\"workbench-instance\")\n .location(\"us-central1-a\")\n .gceSetup(InstanceGceSetupArgs.builder()\n .machineType(\"n1-standard-4\")\n .acceleratorConfigs(InstanceGceSetupAcceleratorConfigArgs.builder()\n .type(\"NVIDIA_TESLA_T4\")\n .coreCount(1)\n .build())\n .shieldedInstanceConfig(InstanceGceSetupShieldedInstanceConfigArgs.builder()\n .enableSecureBoot(true)\n .enableVtpm(true)\n .enableIntegrityMonitoring(true)\n .build())\n .disablePublicIp(false)\n .serviceAccounts(InstanceGceSetupServiceAccountArgs.builder()\n .email(\"my@service-account.com\")\n .build())\n .bootDisk(InstanceGceSetupBootDiskArgs.builder()\n .diskSizeGb(310)\n .diskType(\"PD_SSD\")\n .diskEncryption(\"CMEK\")\n .kmsKey(\"my-crypto-key\")\n .build())\n .dataDisks(InstanceGceSetupDataDisksArgs.builder()\n .diskSizeGb(330)\n .diskType(\"PD_SSD\")\n .diskEncryption(\"CMEK\")\n .kmsKey(\"my-crypto-key\")\n .build())\n .networkInterfaces(InstanceGceSetupNetworkInterfaceArgs.builder()\n .network(myNetwork.id())\n .subnet(mySubnetwork.id())\n .nicType(\"GVNIC\")\n .accessConfigs(InstanceGceSetupNetworkInterfaceAccessConfigArgs.builder()\n .externalIp(static_.address())\n .build())\n .build())\n .metadata(Map.of(\"terraform\", \"true\"))\n .enableIpForwarding(true)\n .tags( \n \"abc\",\n \"def\")\n .build())\n .disableProxyAccess(\"true\")\n .instanceOwners(\"example@example.com\")\n .labels(Map.of(\"k\", \"val\"))\n .desiredState(\"ACTIVE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n myNetwork:\n type: gcp:compute:Network\n name: my_network\n properties:\n name: wbi-test-default\n autoCreateSubnetworks: false\n mySubnetwork:\n type: gcp:compute:Subnetwork\n name: my_subnetwork\n properties:\n name: wbi-test-default\n network: ${myNetwork.id}\n region: us-central1\n ipCidrRange: 10.0.1.0/24\n static:\n type: gcp:compute:Address\n properties:\n name: wbi-test-default\n actAsPermission:\n type: gcp:serviceaccount:IAMBinding\n name: act_as_permission\n properties:\n serviceAccountId: projects/my-project-name/serviceAccounts/my@service-account.com\n role: roles/iam.serviceAccountUser\n members:\n - user:example@example.com\n instance:\n type: gcp:workbench:Instance\n properties:\n name: workbench-instance\n location: us-central1-a\n gceSetup:\n machineType: n1-standard-4\n acceleratorConfigs:\n - type: NVIDIA_TESLA_T4\n coreCount: 1\n shieldedInstanceConfig:\n enableSecureBoot: true\n enableVtpm: true\n enableIntegrityMonitoring: true\n disablePublicIp: false\n serviceAccounts:\n - email: my@service-account.com\n bootDisk:\n diskSizeGb: 310\n diskType: PD_SSD\n diskEncryption: CMEK\n kmsKey: my-crypto-key\n dataDisks:\n diskSizeGb: 330\n diskType: PD_SSD\n diskEncryption: CMEK\n kmsKey: my-crypto-key\n networkInterfaces:\n - network: ${myNetwork.id}\n subnet: ${mySubnetwork.id}\n nicType: GVNIC\n accessConfigs:\n - externalIp: ${static.address}\n metadata:\n terraform: 'true'\n enableIpForwarding: true\n tags:\n - abc\n - def\n disableProxyAccess: 'true'\n instanceOwners:\n - example@example.com\n labels:\n k: val\n desiredState: ACTIVE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nInstance can be imported using any of these accepted formats:\n\n* `projects/{{project}}/locations/{{location}}/instances/{{name}}`\n\n* `{{project}}/{{location}}/{{name}}`\n\n* `{{location}}/{{name}}`\n\nWhen using the `pulumi import` command, Instance can be imported using one of the formats above. For example:\n\n```sh\n$ pulumi import gcp:workbench/instance:Instance default projects/{{project}}/locations/{{location}}/instances/{{name}}\n```\n\n```sh\n$ pulumi import gcp:workbench/instance:Instance default {{project}}/{{location}}/{{name}}\n```\n\n```sh\n$ pulumi import gcp:workbench/instance:Instance default {{location}}/{{name}}\n```\n\n", "properties": { "createTime": { "type": "string", @@ -253613,6 +255395,9 @@ }, "type": "object" }, + "buildServiceAccount": { + "type": "string" + }, "buildWorkerPool": { "type": "string" }, @@ -253760,6 +255545,7 @@ "required": [ "availableMemoryMb", "buildEnvironmentVariables", + "buildServiceAccount", "buildWorkerPool", "description", "dockerRegistry", @@ -267995,6 +269781,9 @@ "outputs": { "description": "A collection of values returned by getProjectService.\n", "properties": { + "checkIfServiceHasUsageOnDestroy": { + "type": "boolean" + }, "disableDependentServices": { "type": "boolean" }, @@ -268013,6 +269802,7 @@ } }, "required": [ + "checkIfServiceHasUsageOnDestroy", "disableDependentServices", "disableOnDestroy", "service", @@ -272937,6 +274727,9 @@ "outputs": { "description": "A collection of values returned by getPrivateCloud.\n", "properties": { + "deletionDelayHours": { + "type": "integer" + }, "description": { "type": "string" }, @@ -272977,6 +274770,9 @@ "project": { "type": "string" }, + "sendDeletionDelayHoursIfZero": { + "type": "boolean" + }, "state": { "type": "string" }, @@ -272994,6 +274790,7 @@ } }, "required": [ + "deletionDelayHours", "description", "hcxes", "location", @@ -273001,6 +274798,7 @@ "name", "networkConfigs", "nsxes", + "sendDeletionDelayHoursIfZero", "state", "type", "uid", diff --git a/provider/go.mod b/provider/go.mod index 9792030fd1..1b67d06780 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -11,7 +11,7 @@ require ( github.com/pulumi/pulumi/pkg/v3 v3.126.0 github.com/pulumi/pulumi/sdk/v3 v3.126.0 github.com/stretchr/testify v1.9.0 - google.golang.org/api v0.185.0 + google.golang.org/api v0.188.0 sourcegraph.com/sourcegraph/appdash v0.0.0-20211028080628-e2786a622600 ) @@ -24,14 +24,14 @@ replace ( require ( bitbucket.org/creachadair/stringset v0.0.8 // indirect cloud.google.com/go v0.115.0 // indirect - cloud.google.com/go/auth v0.5.1 // indirect + cloud.google.com/go/auth v0.7.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect cloud.google.com/go/bigtable v1.24.0 // indirect - cloud.google.com/go/compute/metadata v0.3.0 // indirect - cloud.google.com/go/iam v1.1.8 // indirect - cloud.google.com/go/kms v1.17.1 // indirect + cloud.google.com/go/compute/metadata v0.4.0 // indirect + cloud.google.com/go/iam v1.1.10 // indirect + cloud.google.com/go/kms v1.18.2 // indirect cloud.google.com/go/logging v1.10.0 // indirect - cloud.google.com/go/longrunning v0.5.7 // indirect + cloud.google.com/go/longrunning v0.5.9 // indirect cloud.google.com/go/storage v1.41.0 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.11.1 // indirect @@ -47,7 +47,7 @@ require ( github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Masterminds/sprig/v3 v3.2.3 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v1.1.0-alpha.0 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect github.com/agext/levenshtein v1.2.3 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect @@ -118,7 +118,7 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/google/wire v0.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.4 // indirect + github.com/googleapis/gax-go/v2 v2.12.5 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect @@ -138,18 +138,19 @@ require ( github.com/hashicorp/go-sockaddr v1.0.6 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/go-version v1.6.0 // indirect - github.com/hashicorp/hc-install v0.6.3 // indirect + github.com/hashicorp/hc-install v0.6.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.19.1 // indirect + github.com/hashicorp/hcl/v2 v2.20.1 // indirect github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 // indirect github.com/hashicorp/logutils v1.0.0 // indirect - github.com/hashicorp/terraform-exec v0.20.0 // indirect - github.com/hashicorp/terraform-json v0.21.0 // indirect + github.com/hashicorp/terraform-exec v0.21.0 // indirect + github.com/hashicorp/terraform-json v0.22.1 // indirect github.com/hashicorp/terraform-plugin-framework v1.10.0 // indirect github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 // indirect github.com/hashicorp/terraform-plugin-go v0.23.0 // indirect github.com/hashicorp/terraform-plugin-log v0.9.0 // indirect github.com/hashicorp/terraform-plugin-mux v0.16.0 // indirect + github.com/hashicorp/terraform-plugin-testing v1.5.1 // indirect github.com/hashicorp/terraform-registry-address v0.2.3 // indirect github.com/hashicorp/terraform-svchost v0.1.1 // indirect github.com/hashicorp/vault/api v1.12.0 // indirect @@ -233,7 +234,7 @@ require ( github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - github.com/zclconf/go-cty v1.14.2 // indirect + github.com/zclconf/go-cty v1.14.4 // indirect go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect @@ -244,23 +245,23 @@ require ( go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.37.0 // indirect - golang.org/x/crypto v0.24.0 // indirect + golang.org/x/crypto v0.25.0 // indirect golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect golang.org/x/mod v0.18.0 // indirect - golang.org/x/net v0.26.0 // indirect + golang.org/x/net v0.27.0 // indirect golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.21.0 // indirect - golang.org/x/term v0.21.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.22.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20240617180043-68d350f18fd4 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 // indirect - google.golang.org/grpc v1.64.0 // indirect + google.golang.org/genproto v0.0.0-20240711142825-46eb208f015d // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect + google.golang.org/grpc v1.64.1 // indirect google.golang.org/protobuf v1.34.2 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/provider/go.sum b/provider/go.sum index 6d115e8710..b54703a6a9 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -163,8 +163,8 @@ cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav cloud.google.com/go/assuredworkloads v1.11.2/go.mod h1:O1dfr+oZJMlE6mw0Bp0P1KZSlj5SghMBvTpZqIcUAW4= cloud.google.com/go/assuredworkloads v1.11.3/go.mod h1:vEjfTKYyRUaIeA0bsGJceFV2JKpVRgyG2op3jfa59Zs= cloud.google.com/go/assuredworkloads v1.11.4/go.mod h1:4pwwGNwy1RP0m+y12ef3Q/8PaiWrIDQ6nD2E8kvWI9U= -cloud.google.com/go/auth v0.5.1 h1:0QNO7VThG54LUzKiQxv8C6x1YX7lUrzlAa1nVLF8CIw= -cloud.google.com/go/auth v0.5.1/go.mod h1:vbZT8GjzDf3AVqCcQmqeeM32U9HBFc32vVVAbwDsa6s= +cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts= +cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw= cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4= cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q= cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= @@ -316,8 +316,8 @@ cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZ cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/compute/metadata v0.3.0 h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc= -cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.4.0 h1:vHzJCWaM4g8XIcm8kopr3XmDA4Gy/lblD3EhhSux05c= +cloud.google.com/go/compute/metadata v0.4.0/go.mod h1:SIQh1Kkb4ZJ8zJ874fqVkslA29PRXuleyj6vOzlbK7M= cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= @@ -600,8 +600,8 @@ cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+K cloud.google.com/go/iam v1.1.3/go.mod h1:3khUlaBXfPKKe7huYgEpDn6FtgRyMEqbkvBxrQyY5SE= cloud.google.com/go/iam v1.1.4/go.mod h1:l/rg8l1AaA+VFMho/HYx2Vv6xinPSLMF8qfhRPIZ0L8= cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= -cloud.google.com/go/iam v1.1.8 h1:r7umDwhj+BQyz0ScZMp4QrGXjSTI3ZINnpgU2nlB/K0= -cloud.google.com/go/iam v1.1.8/go.mod h1:GvE6lyMmfxXauzNq8NbgJbeVQNspG+tcdL/W8QO1+zE= +cloud.google.com/go/iam v1.1.10 h1:ZSAr64oEhQSClwBL670MsJAW5/RLiC6kfw3Bqmd5ZDI= +cloud.google.com/go/iam v1.1.10/go.mod h1:iEgMq62sg8zx446GCaijmA2Miwg5o3UbO+nI47WHJps= cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= @@ -641,8 +641,8 @@ cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUE cloud.google.com/go/kms v1.15.3/go.mod h1:AJdXqHxS2GlPyduM99s9iGqi2nwbviBbhV/hdmt4iOQ= cloud.google.com/go/kms v1.15.4/go.mod h1:L3Sdj6QTHK8dfwK5D1JLsAyELsNMnd3tAIwGS4ltKpc= cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= -cloud.google.com/go/kms v1.17.1 h1:5k0wXqkxL+YcXd4viQzTqCgzzVKKxzgrK+rCZJytEQs= -cloud.google.com/go/kms v1.17.1/go.mod h1:DCMnCF/apA6fZk5Cj4XsD979OyHAqFasPuA5Sd0kGlQ= +cloud.google.com/go/kms v1.18.2 h1:EGgD0B9k9tOOkbPhYW1PHo2W0teamAUYMOUIcDRMfPk= +cloud.google.com/go/kms v1.18.2/go.mod h1:YFz1LYrnGsXARuRePL729oINmN5J/5e7nYijgvfiIeY= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= @@ -674,8 +674,8 @@ cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHS cloud.google.com/go/longrunning v0.5.2/go.mod h1:nqo6DQbNV2pXhGDbDMoN2bWz68MjZUzqv2YttZiveCs= cloud.google.com/go/longrunning v0.5.3/go.mod h1:y/0ga59EYu58J6SHmmQOvekvND2qODbu8ywBBW7EK7Y= cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= -cloud.google.com/go/longrunning v0.5.7 h1:WLbHekDbjK1fVFD3ibpFFVoyizlLRl73I7YKuAKilhU= -cloud.google.com/go/longrunning v0.5.7/go.mod h1:8GClkudohy1Fxm3owmBGid8W0pSgodEMwEAztp38Xng= +cloud.google.com/go/longrunning v0.5.9 h1:haH9pAuXdPAMqHvzX0zlWQigXT7B0+CL4/2nXXdBo5k= +cloud.google.com/go/longrunning v0.5.9/go.mod h1:HD+0l9/OOW0za6UWdKJtXoFAX/BGg/3Wj8p10NeWF7c= cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= @@ -1196,8 +1196,9 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/ProtonMail/go-crypto v1.1.0-alpha.0 h1:nHGfwXmFvJrSR9xu8qL7BkO4DqTHXE9N5vPhgY2I+j0= github.com/ProtonMail/go-crypto v1.1.0-alpha.0/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg= +github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -1221,7 +1222,6 @@ github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/Y github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU= github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= -github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 h1:MzVXffFUye+ZcSR6opIgz9Co7WcDx6ZcY+RjfFHoA0I= github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= @@ -1614,8 +1614,8 @@ github.com/googleapis/gax-go/v2 v2.8.0/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38 github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= -github.com/googleapis/gax-go/v2 v2.12.4 h1:9gWcmF85Wvq4ryPFvGFaOgPIs1AQX0d0bcbGw4Z96qg= -github.com/googleapis/gax-go/v2 v2.12.4/go.mod h1:KYEYLorsnIGDi/rPC8b5TdlB9kbKoFubselGIoBMCwI= +github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA= +github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -1677,25 +1677,29 @@ github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09 github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hc-install v0.6.2/go.mod h1:2JBpd+NCFKiHiu/yYCGaPyPHhZLxXTpz8oreHa/a3Ps= -github.com/hashicorp/hc-install v0.6.3 h1:yE/r1yJvWbtrJ0STwScgEnCanb0U9v7zp0Gbkmcoxqs= github.com/hashicorp/hc-install v0.6.3/go.mod h1:KamGdbodYzlufbWh4r9NRo8y6GLHWZP2GBtdnms1Ln0= +github.com/hashicorp/hc-install v0.6.4 h1:QLqlM56/+SIIGvGcfFiwMY3z5WGXT066suo/v9Km8e0= +github.com/hashicorp/hc-install v0.6.4/go.mod h1:05LWLy8TD842OtgcfBbOT0WMoInBMUSHjmDx10zuBIA= github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= -github.com/hashicorp/hcl/v2 v2.19.1 h1://i05Jqznmb2EXqa39Nsvyan2o5XyMowW5fnCKW5RPI= github.com/hashicorp/hcl/v2 v2.19.1/go.mod h1:ThLC89FV4p9MPW804KVbe/cEXoQ8NZEh+JtMeeGErHE= +github.com/hashicorp/hcl/v2 v2.20.1 h1:M6hgdyz7HYt1UN9e61j+qKJBqR3orTWbI1HKBJEdxtc= +github.com/hashicorp/hcl/v2 v2.20.1/go.mod h1:TZDqQ4kNKCbh1iJp99FdPiUaVDDUPivbqxZulxDYqL4= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93 h1:T1Q6ag9tCwun16AW+XK3tAql24P4uTGUMIn1/92WsQQ= github.com/hashicorp/hil v0.0.0-20190212132231-97b3a9cdfa93/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/terraform-config-inspect v0.0.0-20191115094559-17f92b0546e8/go.mod h1:p+ivJws3dpqbp1iP84+npOyAmTTOLMgCzrXd3GSdn/A= -github.com/hashicorp/terraform-exec v0.20.0 h1:DIZnPsqzPGuUnq6cH8jWcPunBfY+C+M8JyYF3vpnuEo= github.com/hashicorp/terraform-exec v0.20.0/go.mod h1:ckKGkJWbsNqFKV1itgMnE0hY9IYf1HoiekpuN0eWoDw= +github.com/hashicorp/terraform-exec v0.21.0 h1:uNkLAe95ey5Uux6KJdua6+cv8asgILFVWkd/RG0D2XQ= +github.com/hashicorp/terraform-exec v0.21.0/go.mod h1:1PPeMYou+KDUSSeRE9szMZ/oHf4fYUmB923Wzbq1ICg= github.com/hashicorp/terraform-json v0.4.0/go.mod h1:eAbqb4w0pSlRmdvl8fOyHAi/+8jnkVYN28gJkSJrLhU= github.com/hashicorp/terraform-json v0.19.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= -github.com/hashicorp/terraform-json v0.21.0 h1:9NQxbLNqPbEMze+S6+YluEdXgJmhQykRyRNd+zTI05U= github.com/hashicorp/terraform-json v0.21.0/go.mod h1:qdeBs11ovMzo5puhrRibdD6d2Dq6TyE/28JiU4tIQxk= +github.com/hashicorp/terraform-json v0.22.1 h1:xft84GZR0QzjPVWs4lRUwvTcPnegqlyS7orfb5Ltvec= +github.com/hashicorp/terraform-json v0.22.1/go.mod h1:JbWSQCLFSXFFhg42T7l9iJwdGXBYV8fmmD6o/ML4p3A= github.com/hashicorp/terraform-plugin-framework v1.10.0 h1:xXhICE2Fns1RYZxEQebwkB2+kXouLC932Li9qelozrc= github.com/hashicorp/terraform-plugin-framework v1.10.0/go.mod h1:qBXLDn69kM97NNVi/MQ9qgd1uWWsVftGSnygYG1tImM= github.com/hashicorp/terraform-plugin-framework-validators v0.12.0 h1:HOjBuMbOEzl7snOdOoUfE2Jgeto6JOjLVQ39Ls2nksc= @@ -1710,6 +1714,8 @@ github.com/hashicorp/terraform-plugin-mux v0.16.0/go.mod h1:PF79mAsPc8CpusXPfEVa github.com/hashicorp/terraform-plugin-sdk v1.7.0 h1:B//oq0ZORG+EkVrIJy0uPGSonvmXqxSzXe8+GhknoW0= github.com/hashicorp/terraform-plugin-sdk v1.7.0/go.mod h1:OjgQmey5VxnPej/buEhe+YqKm0KNvV3QqU4hkqHqPCY= github.com/hashicorp/terraform-plugin-test v1.2.0/go.mod h1:QIJHYz8j+xJtdtLrFTlzQVC0ocr3rf/OjIpgZLK56Hs= +github.com/hashicorp/terraform-plugin-testing v1.5.1 h1:T4aQh9JAhmWo4+t1A7x+rnxAJHCDIYW9kXyo4sVO92c= +github.com/hashicorp/terraform-plugin-testing v1.5.1/go.mod h1:dg8clO6K59rZ8w9EshBmDp1CxTIPu3yA4iaDpX1h5u0= github.com/hashicorp/terraform-registry-address v0.2.3 h1:2TAiKJ1A3MAkZlH1YI/aTVcLZRu7JseiXNRHbOAyoTI= github.com/hashicorp/terraform-registry-address v0.2.3/go.mod h1:lFHA76T8jfQteVfT7caREqguFrW3c4MFSPhZB7HHgUM= github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg= @@ -2114,8 +2120,9 @@ github.com/zclconf/go-cty v1.2.1/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q github.com/zclconf/go-cty v1.13.0/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty v1.13.1/go.mod h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0= github.com/zclconf/go-cty v1.14.1/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= -github.com/zclconf/go-cty v1.14.2 h1:kTG7lqmBou0Zkx35r6HJHUQTvaRPr5bIAf3AoHS0izI= github.com/zclconf/go-cty v1.14.2/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= +github.com/zclconf/go-cty v1.14.4 h1:uXXczd9QDGsgu0i/QFR/hzI5NYCHLf6NQw/atrbnhq8= +github.com/zclconf/go-cty v1.14.4/go.mod h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b h1:FosyBZYxY34Wul7O/MSKey3txpPYyCqVO5ZyceuQJEI= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= github.com/zclconf/go-cty-yaml v1.0.1 h1:up11wlgAaDvlAGENcFDnZgkn0qUJurso7k6EpURKNF8= @@ -2190,8 +2197,8 @@ golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= -golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -2337,8 +2344,8 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= -golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -2510,8 +2517,8 @@ golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= -golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -2532,8 +2539,8 @@ golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= -golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2724,8 +2731,8 @@ google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvy google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= google.golang.org/api v0.139.0/go.mod h1:CVagp6Eekz9CjGZ718Z+sloknzkDJE7Vc1Ckj9+viBk= google.golang.org/api v0.149.0/go.mod h1:Mwn1B7JTXrzXtnvmzQE2BD6bYZQ8DShKZDZbeN9I7qI= -google.golang.org/api v0.185.0 h1:ENEKk1k4jW8SmmaT6RE+ZasxmxezCrD5Vw4npvr+pAU= -google.golang.org/api v0.185.0/go.mod h1:HNfvIkJGlgrIlrbYkAm9W9IdkmKZjOTVh33YltygGbg= +google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw= +google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2888,8 +2895,8 @@ google.golang.org/genproto v0.0.0-20231012201019-e917dd12ba7a/go.mod h1:EMfReVxb google.golang.org/genproto v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:CgAqfJo+Xmu0GwA0411Ht3OU3OntXwsGmrmjI8ioGXI= google.golang.org/genproto v0.0.0-20231030173426-d783a09b4405/go.mod h1:3WDQMjmJk36UQhjQ89emUzb1mdaHcPeeAh4SCBKznB4= google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto v0.0.0-20240617180043-68d350f18fd4 h1:CUiCqkPw1nNrNQzCCG4WA65m0nAmQiwXHpub3dNyruU= -google.golang.org/genproto v0.0.0-20240617180043-68d350f18fd4/go.mod h1:EvuUDCulqGgV80RvP1BHuom+smhX4qtlhnNatHuroGQ= +google.golang.org/genproto v0.0.0-20240711142825-46eb208f015d h1:/hmn0Ku5kWij/kjGsrcJeC1T/MrJi2iNWwgAqrihFwc= +google.golang.org/genproto v0.0.0-20240711142825-46eb208f015d/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY= google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= @@ -2907,8 +2914,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20231012201019-e917dd12ba7a/go. google.golang.org/genproto/googleapis/api v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:IBQ646DjkDkvUIsVq/cc03FUFQ9wbZu7yE396YcL870= google.golang.org/genproto/googleapis/api v0.0.0-20231030173426-d783a09b4405/go.mod h1:oT32Z4o8Zv2xPQTg0pbVaPr0MPOH6f14RgXt7zfIpwg= google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3 h1:QW9+G6Fir4VcRXVH8x3LilNAb6cxBGLa6+GM4hRwexE= -google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3/go.mod h1:kdrSS/OiLkPrNUpzD4aHgCq2rVuC/YRxok32HXZ4vRE= +google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 h1:0+ozOGcrp+Y8Aq8TLNN2Aliibms5LEzsq99ZZmAGYm0= +google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094/go.mod h1:fJ/e3If/Q67Mj99hin0hMhiNyCRmt6BQ2aWIJshUSJw= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230807174057-1744710a1577/go.mod h1:NjCQG/D8JandXxM57PZbAJL1DCNL6EypA0vPPwfsc7c= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231030173426-d783a09b4405/go.mod h1:GRUCuLdzVqZte8+Dl/D4N25yLzcGqqWaYkeVOwulFqw= @@ -2929,8 +2936,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20231012201019-e917dd12ba7a/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b/go.mod h1:swOH3j0KzcDDgGUWr+SNpyTen5YrXjS3eyPzFYKc6lc= google.golang.org/genproto/googleapis/rpc v0.0.0-20231030173426-d783a09b4405/go.mod h1:67X1fPuzjcrkymZzZV1vvkFeTn2Rvc6lYF9MYFGCcwE= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4 h1:Di6ANFilr+S60a4S61ZM00vLdw0IrQOSMS2/6mrnOU0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240617180043-68d350f18fd4/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -2981,8 +2988,8 @@ google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSs google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= -google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= -google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= +google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA= +google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/sdk/dotnet/Alloydb/Inputs/InstanceObservabilityConfigArgs.cs b/sdk/dotnet/Alloydb/Inputs/InstanceObservabilityConfigArgs.cs new file mode 100644 index 0000000000..5434ec3c5c --- /dev/null +++ b/sdk/dotnet/Alloydb/Inputs/InstanceObservabilityConfigArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Alloydb.Inputs +{ + + public sealed class InstanceObservabilityConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Observability feature status for an instance. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + /// + [Input("maxQueryStringLength")] + public Input? MaxQueryStringLength { get; set; } + + /// + /// Preserve comments in the query string. + /// + [Input("preserveComments")] + public Input? PreserveComments { get; set; } + + /// + /// 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. + /// + [Input("queryPlansPerMinute")] + public Input? QueryPlansPerMinute { get; set; } + + /// + /// Record application tags for an instance. This flag is turned "on" by default. + /// + [Input("recordApplicationTags")] + public Input? RecordApplicationTags { get; set; } + + /// + /// Track actively running queries. If not set, default value is "off". + /// + [Input("trackActiveQueries")] + public Input? TrackActiveQueries { get; set; } + + /// + /// Record wait event types during query execution for an instance. + /// + [Input("trackWaitEventTypes")] + public Input? TrackWaitEventTypes { get; set; } + + /// + /// Record wait events during query execution for an instance. + /// + [Input("trackWaitEvents")] + public Input? TrackWaitEvents { get; set; } + + public InstanceObservabilityConfigArgs() + { + } + public static new InstanceObservabilityConfigArgs Empty => new InstanceObservabilityConfigArgs(); + } +} diff --git a/sdk/dotnet/Alloydb/Inputs/InstanceObservabilityConfigGetArgs.cs b/sdk/dotnet/Alloydb/Inputs/InstanceObservabilityConfigGetArgs.cs new file mode 100644 index 0000000000..8ae36d4439 --- /dev/null +++ b/sdk/dotnet/Alloydb/Inputs/InstanceObservabilityConfigGetArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Alloydb.Inputs +{ + + public sealed class InstanceObservabilityConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Observability feature status for an instance. + /// + [Input("enabled")] + public Input? Enabled { get; set; } + + /// + /// Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + /// + [Input("maxQueryStringLength")] + public Input? MaxQueryStringLength { get; set; } + + /// + /// Preserve comments in the query string. + /// + [Input("preserveComments")] + public Input? PreserveComments { get; set; } + + /// + /// 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. + /// + [Input("queryPlansPerMinute")] + public Input? QueryPlansPerMinute { get; set; } + + /// + /// Record application tags for an instance. This flag is turned "on" by default. + /// + [Input("recordApplicationTags")] + public Input? RecordApplicationTags { get; set; } + + /// + /// Track actively running queries. If not set, default value is "off". + /// + [Input("trackActiveQueries")] + public Input? TrackActiveQueries { get; set; } + + /// + /// Record wait event types during query execution for an instance. + /// + [Input("trackWaitEventTypes")] + public Input? TrackWaitEventTypes { get; set; } + + /// + /// Record wait events during query execution for an instance. + /// + [Input("trackWaitEvents")] + public Input? TrackWaitEvents { get; set; } + + public InstanceObservabilityConfigGetArgs() + { + } + public static new InstanceObservabilityConfigGetArgs Empty => new InstanceObservabilityConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Alloydb/Instance.cs b/sdk/dotnet/Alloydb/Instance.cs index 7a569a1f2f..70af94d936 100644 --- a/sdk/dotnet/Alloydb/Instance.cs +++ b/sdk/dotnet/Alloydb/Instance.cs @@ -324,6 +324,13 @@ public partial class Instance : global::Pulumi.CustomResource [Output("networkConfig")] public Output NetworkConfig { get; private set; } = null!; + /// + /// Configuration for enhanced query insights. + /// Structure is documented below. + /// + [Output("observabilityConfig")] + public Output ObservabilityConfig { get; private set; } = null!; + /// /// Configuration for Private Service Connect (PSC) for the instance. /// Structure is documented below. @@ -539,6 +546,13 @@ public InputMap Labels [Input("networkConfig")] public Input? NetworkConfig { get; set; } + /// + /// Configuration for enhanced query insights. + /// Structure is documented below. + /// + [Input("observabilityConfig")] + public Input? ObservabilityConfig { get; set; } + /// /// Configuration for Private Service Connect (PSC) for the instance. /// Structure is documented below. @@ -714,6 +728,13 @@ public InputMap Labels [Input("networkConfig")] public Input? NetworkConfig { get; set; } + /// + /// Configuration for enhanced query insights. + /// Structure is documented below. + /// + [Input("observabilityConfig")] + public Input? ObservabilityConfig { get; set; } + /// /// Configuration for Private Service Connect (PSC) for the instance. /// Structure is documented below. diff --git a/sdk/dotnet/Alloydb/Outputs/InstanceObservabilityConfig.cs b/sdk/dotnet/Alloydb/Outputs/InstanceObservabilityConfig.cs new file mode 100644 index 0000000000..3a0f4ecc74 --- /dev/null +++ b/sdk/dotnet/Alloydb/Outputs/InstanceObservabilityConfig.cs @@ -0,0 +1,77 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Alloydb.Outputs +{ + + [OutputType] + public sealed class InstanceObservabilityConfig + { + /// + /// Observability feature status for an instance. + /// + public readonly bool? Enabled; + /// + /// Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + /// + public readonly int? MaxQueryStringLength; + /// + /// Preserve comments in the query string. + /// + public readonly bool? PreserveComments; + /// + /// 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. + /// + public readonly int? QueryPlansPerMinute; + /// + /// Record application tags for an instance. This flag is turned "on" by default. + /// + public readonly bool? RecordApplicationTags; + /// + /// Track actively running queries. If not set, default value is "off". + /// + public readonly bool? TrackActiveQueries; + /// + /// Record wait event types during query execution for an instance. + /// + public readonly bool? TrackWaitEventTypes; + /// + /// Record wait events during query execution for an instance. + /// + public readonly bool? TrackWaitEvents; + + [OutputConstructor] + private InstanceObservabilityConfig( + bool? enabled, + + int? maxQueryStringLength, + + bool? preserveComments, + + int? queryPlansPerMinute, + + bool? recordApplicationTags, + + bool? trackActiveQueries, + + bool? trackWaitEventTypes, + + bool? trackWaitEvents) + { + Enabled = enabled; + MaxQueryStringLength = maxQueryStringLength; + PreserveComments = preserveComments; + QueryPlansPerMinute = queryPlansPerMinute; + RecordApplicationTags = recordApplicationTags; + TrackActiveQueries = trackActiveQueries; + TrackWaitEventTypes = trackWaitEventTypes; + TrackWaitEvents = trackWaitEvents; + } + } +} diff --git a/sdk/dotnet/Apigee/EnvironmentKeyvaluemaps.cs b/sdk/dotnet/Apigee/EnvironmentKeyvaluemaps.cs new file mode 100644 index 0000000000..551816278d --- /dev/null +++ b/sdk/dotnet/Apigee/EnvironmentKeyvaluemaps.cs @@ -0,0 +1,239 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee +{ + /// + /// Collection of key/value string pairs. + /// + /// To get more information about EnvironmentKeyvaluemaps, see: + /// + /// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create) + /// * How-to Guides + /// * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + /// + /// ## Example Usage + /// + /// ### Apigee Environment Keyvaluemaps Basic + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var current = Gcp.Organizations.GetClientConfig.Invoke(); + /// + /// var apigeeNetwork = new Gcp.Compute.Network("apigee_network", new() + /// { + /// Name = "apigee-network", + /// }); + /// + /// var apigeeRange = new Gcp.Compute.GlobalAddress("apigee_range", new() + /// { + /// Name = "apigee-range", + /// Purpose = "VPC_PEERING", + /// AddressType = "INTERNAL", + /// PrefixLength = 16, + /// Network = apigeeNetwork.Id, + /// }); + /// + /// var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection("apigee_vpc_connection", new() + /// { + /// Network = apigeeNetwork.Id, + /// Service = "servicenetworking.googleapis.com", + /// ReservedPeeringRanges = new[] + /// { + /// apigeeRange.Name, + /// }, + /// }); + /// + /// var apigeeOrg = new Gcp.Apigee.Organization("apigee_org", new() + /// { + /// AnalyticsRegion = "us-central1", + /// ProjectId = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// AuthorizedNetwork = apigeeNetwork.Id, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// apigeeVpcConnection, + /// }, + /// }); + /// + /// var apigeeEnvironment = new Gcp.Apigee.Environment("apigee_environment", new() + /// { + /// OrgId = apigeeOrg.Id, + /// Name = "tf-test-env", + /// Description = "Apigee Environment", + /// DisplayName = "Apigee Environment", + /// }); + /// + /// var apigeeInstance = new Gcp.Apigee.Instance("apigee_instance", new() + /// { + /// Name = "tf-test-instance", + /// Location = "us-central1", + /// OrgId = apigeeOrg.Id, + /// }); + /// + /// var apigeeInstanceAttachment = new Gcp.Apigee.InstanceAttachment("apigee_instance_attachment", new() + /// { + /// InstanceId = apigeeInstance.Id, + /// Environment = apigeeEnvironment.Name, + /// }); + /// + /// var apigeeEnvironmentKeyvaluemaps = new Gcp.Apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", new() + /// { + /// EnvId = apigeeEnvironment.Id, + /// Name = "tf-test-env-kvms", + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// apigeeOrg, + /// apigeeEnvironment, + /// apigeeInstance, + /// apigeeInstanceAttachment, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// EnvironmentKeyvaluemaps can be imported using any of these accepted formats: + /// + /// * `{{env_id}}/keyvaluemaps/{{name}}` + /// + /// * `{{env_id}}/{{name}}` + /// + /// When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}} + /// ``` + /// + [GcpResourceType("gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps")] + public partial class EnvironmentKeyvaluemaps : global::Pulumi.CustomResource + { + /// + /// The Apigee environment group associated with the Apigee environment, + /// in the format `organizations/{{org_name}}/environments/{{env_name}}`. + /// + /// + /// - - - + /// + [Output("envId")] + public Output EnvId { get; private set; } = null!; + + /// + /// Required. ID of the key value map. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + + /// + /// Create a EnvironmentKeyvaluemaps resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public EnvironmentKeyvaluemaps(string name, EnvironmentKeyvaluemapsArgs args, CustomResourceOptions? options = null) + : base("gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps", name, args ?? new EnvironmentKeyvaluemapsArgs(), MakeResourceOptions(options, "")) + { + } + + private EnvironmentKeyvaluemaps(string name, Input id, EnvironmentKeyvaluemapsState? state = null, CustomResourceOptions? options = null) + : base("gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing EnvironmentKeyvaluemaps resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static EnvironmentKeyvaluemaps Get(string name, Input id, EnvironmentKeyvaluemapsState? state = null, CustomResourceOptions? options = null) + { + return new EnvironmentKeyvaluemaps(name, id, state, options); + } + } + + public sealed class EnvironmentKeyvaluemapsArgs : global::Pulumi.ResourceArgs + { + /// + /// The Apigee environment group associated with the Apigee environment, + /// in the format `organizations/{{org_name}}/environments/{{env_name}}`. + /// + /// + /// - - - + /// + [Input("envId", required: true)] + public Input EnvId { get; set; } = null!; + + /// + /// Required. ID of the key value map. + /// + [Input("name")] + public Input? Name { get; set; } + + public EnvironmentKeyvaluemapsArgs() + { + } + public static new EnvironmentKeyvaluemapsArgs Empty => new EnvironmentKeyvaluemapsArgs(); + } + + public sealed class EnvironmentKeyvaluemapsState : global::Pulumi.ResourceArgs + { + /// + /// The Apigee environment group associated with the Apigee environment, + /// in the format `organizations/{{org_name}}/environments/{{env_name}}`. + /// + /// + /// - - - + /// + [Input("envId")] + public Input? EnvId { get; set; } + + /// + /// Required. ID of the key value map. + /// + [Input("name")] + public Input? Name { get; set; } + + public EnvironmentKeyvaluemapsState() + { + } + public static new EnvironmentKeyvaluemapsState Empty => new EnvironmentKeyvaluemapsState(); + } +} diff --git a/sdk/dotnet/Apigee/EnvironmentKeyvaluemapsEntries.cs b/sdk/dotnet/Apigee/EnvironmentKeyvaluemapsEntries.cs new file mode 100644 index 0000000000..d561b1a460 --- /dev/null +++ b/sdk/dotnet/Apigee/EnvironmentKeyvaluemapsEntries.cs @@ -0,0 +1,274 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Apigee +{ + /// + /// Creates key value entries in a key value map scoped to an environment. + /// + /// To get more information about EnvironmentKeyvaluemapsEntries, see: + /// + /// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.keyvaluemaps.entries/create) + /// * How-to Guides + /// * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + /// + /// ## Example Usage + /// + /// ### Apigee Environment Keyvaluemaps Entries Basic + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var current = Gcp.Organizations.GetClientConfig.Invoke(); + /// + /// var apigeeNetwork = new Gcp.Compute.Network("apigee_network", new() + /// { + /// Name = "apigee-network", + /// }); + /// + /// var apigeeRange = new Gcp.Compute.GlobalAddress("apigee_range", new() + /// { + /// Name = "apigee-range", + /// Purpose = "VPC_PEERING", + /// AddressType = "INTERNAL", + /// PrefixLength = 16, + /// Network = apigeeNetwork.Id, + /// }); + /// + /// var apigeeVpcConnection = new Gcp.ServiceNetworking.Connection("apigee_vpc_connection", new() + /// { + /// Network = apigeeNetwork.Id, + /// Service = "servicenetworking.googleapis.com", + /// ReservedPeeringRanges = new[] + /// { + /// apigeeRange.Name, + /// }, + /// }); + /// + /// var apigeeOrg = new Gcp.Apigee.Organization("apigee_org", new() + /// { + /// AnalyticsRegion = "us-central1", + /// ProjectId = current.Apply(getClientConfigResult => getClientConfigResult.Project), + /// AuthorizedNetwork = apigeeNetwork.Id, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// apigeeVpcConnection, + /// }, + /// }); + /// + /// var apigeeEnvironment = new Gcp.Apigee.Environment("apigee_environment", new() + /// { + /// OrgId = apigeeOrg.Id, + /// Name = "tf-test-env", + /// Description = "Apigee Environment", + /// DisplayName = "Apigee Environment", + /// }); + /// + /// var apigeeInstance = new Gcp.Apigee.Instance("apigee_instance", new() + /// { + /// Name = "tf-test-instance", + /// Location = "us-central1", + /// OrgId = apigeeOrg.Id, + /// }); + /// + /// var apigeeInstanceAttachment = new Gcp.Apigee.InstanceAttachment("apigee_instance_attachment", new() + /// { + /// InstanceId = apigeeInstance.Id, + /// Environment = apigeeEnvironment.Name, + /// }); + /// + /// var apigeeEnvironmentKeyvaluemaps = new Gcp.Apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", new() + /// { + /// EnvId = createApigeeEnvironment.Id, + /// Name = "tf-test-env-kvms", + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// apigeeOrg, + /// apigeeEnvironment, + /// apigeeInstance, + /// apigeeInstanceAttachment, + /// }, + /// }); + /// + /// var apigeeEnvironmentKeyvaluemapsEntries = new Gcp.Apigee.EnvironmentKeyvaluemapsEntries("apigee_environment_keyvaluemaps_entries", new() + /// { + /// EnvKeyvaluemapId = apigeeEnvironmentKeyvaluemaps.Id, + /// Name = "testName", + /// Value = "testValue", + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// apigeeOrg, + /// apigeeEnvironment, + /// apigeeInstance, + /// apigeeInstanceAttachment, + /// apigeeEnvironmentKeyvaluemaps, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// EnvironmentKeyvaluemapsEntries can be imported using any of these accepted formats: + /// + /// * `{{env_keyvaluemap_id}}/entries/{{name}}` + /// + /// * `{{env_keyvaluemap_id}}/{{name}}` + /// + /// When using the `pulumi import` command, EnvironmentKeyvaluemapsEntries can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/entries/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/{{name}} + /// ``` + /// + [GcpResourceType("gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries")] + public partial class EnvironmentKeyvaluemapsEntries : global::Pulumi.CustomResource + { + /// + /// The Apigee environment keyvalumaps Id associated with the Apigee environment, + /// in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + /// + /// + /// - - - + /// + [Output("envKeyvaluemapId")] + public Output EnvKeyvaluemapId { get; private set; } = null!; + + /// + /// Required. Resource URI that can be used to identify the scope of the key value map entries. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Required. Data or payload that is being retrieved and associated with the unique key. + /// + [Output("value")] + public Output Value { get; private set; } = null!; + + + /// + /// Create a EnvironmentKeyvaluemapsEntries resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public EnvironmentKeyvaluemapsEntries(string name, EnvironmentKeyvaluemapsEntriesArgs args, CustomResourceOptions? options = null) + : base("gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries", name, args ?? new EnvironmentKeyvaluemapsEntriesArgs(), MakeResourceOptions(options, "")) + { + } + + private EnvironmentKeyvaluemapsEntries(string name, Input id, EnvironmentKeyvaluemapsEntriesState? state = null, CustomResourceOptions? options = null) + : base("gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing EnvironmentKeyvaluemapsEntries resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static EnvironmentKeyvaluemapsEntries Get(string name, Input id, EnvironmentKeyvaluemapsEntriesState? state = null, CustomResourceOptions? options = null) + { + return new EnvironmentKeyvaluemapsEntries(name, id, state, options); + } + } + + public sealed class EnvironmentKeyvaluemapsEntriesArgs : global::Pulumi.ResourceArgs + { + /// + /// The Apigee environment keyvalumaps Id associated with the Apigee environment, + /// in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + /// + /// + /// - - - + /// + [Input("envKeyvaluemapId", required: true)] + public Input EnvKeyvaluemapId { get; set; } = null!; + + /// + /// Required. Resource URI that can be used to identify the scope of the key value map entries. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Required. Data or payload that is being retrieved and associated with the unique key. + /// + [Input("value", required: true)] + public Input Value { get; set; } = null!; + + public EnvironmentKeyvaluemapsEntriesArgs() + { + } + public static new EnvironmentKeyvaluemapsEntriesArgs Empty => new EnvironmentKeyvaluemapsEntriesArgs(); + } + + public sealed class EnvironmentKeyvaluemapsEntriesState : global::Pulumi.ResourceArgs + { + /// + /// The Apigee environment keyvalumaps Id associated with the Apigee environment, + /// in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + /// + /// + /// - - - + /// + [Input("envKeyvaluemapId")] + public Input? EnvKeyvaluemapId { get; set; } + + /// + /// Required. Resource URI that can be used to identify the scope of the key value map entries. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Required. Data or payload that is being retrieved and associated with the unique key. + /// + [Input("value")] + public Input? Value { get; set; } + + public EnvironmentKeyvaluemapsEntriesState() + { + } + public static new EnvironmentKeyvaluemapsEntriesState Empty => new EnvironmentKeyvaluemapsEntriesState(); + } +} diff --git a/sdk/dotnet/Apigee/Instance.cs b/sdk/dotnet/Apigee/Instance.cs index 5eda47310a..9d7cbb5c8a 100644 --- a/sdk/dotnet/Apigee/Instance.cs +++ b/sdk/dotnet/Apigee/Instance.cs @@ -254,7 +254,7 @@ namespace Pulumi.Gcp.Apigee /// { /// CryptoKeyId = apigeeKey.Id, /// Role = "roles/cloudkms.cryptoKeyEncrypterDecrypter", - /// Member = apigeeSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = apigeeSa.Member, /// }); /// /// var apigeeOrg = new Gcp.Apigee.Organization("apigee_org", new() diff --git a/sdk/dotnet/Apigee/NatAddress.cs b/sdk/dotnet/Apigee/NatAddress.cs index 763892a705..b36d7be23f 100644 --- a/sdk/dotnet/Apigee/NatAddress.cs +++ b/sdk/dotnet/Apigee/NatAddress.cs @@ -79,7 +79,7 @@ namespace Pulumi.Gcp.Apigee /// { /// CryptoKeyId = apigeeKey.Id, /// Role = "roles/cloudkms.cryptoKeyEncrypterDecrypter", - /// Member = apigeeSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = apigeeSa.Member, /// }); /// /// var apigeeOrg = new Gcp.Apigee.Organization("apigee_org", new() diff --git a/sdk/dotnet/Apigee/Organization.cs b/sdk/dotnet/Apigee/Organization.cs index a6ea104d06..aae97cc9a6 100644 --- a/sdk/dotnet/Apigee/Organization.cs +++ b/sdk/dotnet/Apigee/Organization.cs @@ -151,7 +151,7 @@ namespace Pulumi.Gcp.Apigee /// { /// CryptoKeyId = apigeeKey.Id, /// Role = "roles/cloudkms.cryptoKeyEncrypterDecrypter", - /// Member = apigeeSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = apigeeSa.Member, /// }); /// /// var org = new Gcp.Apigee.Organization("org", new() @@ -207,7 +207,7 @@ namespace Pulumi.Gcp.Apigee /// { /// CryptoKeyId = apigeeKey.Id, /// Role = "roles/cloudkms.cryptoKeyEncrypterDecrypter", - /// Member = apigeeSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = apigeeSa.Member, /// }); /// /// var org = new Gcp.Apigee.Organization("org", new() diff --git a/sdk/dotnet/Apphub/ServiceProjectAttachment.cs b/sdk/dotnet/Apphub/ServiceProjectAttachment.cs index 016d1a0609..c2716e8675 100644 --- a/sdk/dotnet/Apphub/ServiceProjectAttachment.cs +++ b/sdk/dotnet/Apphub/ServiceProjectAttachment.cs @@ -134,7 +134,7 @@ public partial class ServiceProjectAttachment : global::Pulumi.CustomResource public Output CreateTime { get; private set; } = null!; /// - /// "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + /// "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" /// [Output("name")] public Output Name { get; private set; } = null!; @@ -149,7 +149,7 @@ public partial class ServiceProjectAttachment : global::Pulumi.CustomResource /// /// "Immutable. Service project name in the format: \"projects/abc\" /// or \"projects/123\". As input, project name with either project id or number - /// are accepted. As output, this field will contain project number. " + /// are accepted. As output, this field will contain project number." /// [Output("serviceProject")] public Output ServiceProject { get; private set; } = null!; @@ -231,7 +231,7 @@ public sealed class ServiceProjectAttachmentArgs : global::Pulumi.ResourceArgs /// /// "Immutable. Service project name in the format: \"projects/abc\" /// or \"projects/123\". As input, project name with either project id or number - /// are accepted. As output, this field will contain project number. " + /// are accepted. As output, this field will contain project number." /// [Input("serviceProject")] public Input? ServiceProject { get; set; } @@ -260,7 +260,7 @@ public sealed class ServiceProjectAttachmentState : global::Pulumi.ResourceArgs public Input? CreateTime { get; set; } /// - /// "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + /// "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" /// [Input("name")] public Input? Name { get; set; } @@ -275,7 +275,7 @@ public sealed class ServiceProjectAttachmentState : global::Pulumi.ResourceArgs /// /// "Immutable. Service project name in the format: \"projects/abc\" /// or \"projects/123\". As input, project name with either project id or number - /// are accepted. As output, this field will contain project number. " + /// are accepted. As output, this field will contain project number." /// [Input("serviceProject")] public Input? ServiceProject { get; set; } diff --git a/sdk/dotnet/BigQuery/AppProfile.cs b/sdk/dotnet/BigQuery/AppProfile.cs index 57c12e114c..7594f09bfb 100644 --- a/sdk/dotnet/BigQuery/AppProfile.cs +++ b/sdk/dotnet/BigQuery/AppProfile.cs @@ -244,6 +244,13 @@ public partial class AppProfile : global::Pulumi.CustomResource [Output("appProfileId")] public Output AppProfileId { get; private set; } = null!; + /// + /// Specifies that this app profile is intended for read-only usage via the Data Boost feature. + /// Structure is documented below. + /// + [Output("dataBoostIsolationReadOnly")] + public Output DataBoostIsolationReadOnly { get; private set; } = null!; + /// /// Long form description of the use case for this app profile. /// @@ -359,6 +366,13 @@ public sealed class AppProfileArgs : global::Pulumi.ResourceArgs [Input("appProfileId", required: true)] public Input AppProfileId { get; set; } = null!; + /// + /// Specifies that this app profile is intended for read-only usage via the Data Boost feature. + /// Structure is documented below. + /// + [Input("dataBoostIsolationReadOnly")] + public Input? DataBoostIsolationReadOnly { get; set; } + /// /// Long form description of the use case for this app profile. /// @@ -436,6 +450,13 @@ public sealed class AppProfileState : global::Pulumi.ResourceArgs [Input("appProfileId")] public Input? AppProfileId { get; set; } + /// + /// Specifies that this app profile is intended for read-only usage via the Data Boost feature. + /// Structure is documented below. + /// + [Input("dataBoostIsolationReadOnly")] + public Input? DataBoostIsolationReadOnly { get; set; } + /// /// Long form description of the use case for this app profile. /// diff --git a/sdk/dotnet/BigQuery/Inputs/AppProfileDataBoostIsolationReadOnlyArgs.cs b/sdk/dotnet/BigQuery/Inputs/AppProfileDataBoostIsolationReadOnlyArgs.cs new file mode 100644 index 0000000000..46df075553 --- /dev/null +++ b/sdk/dotnet/BigQuery/Inputs/AppProfileDataBoostIsolationReadOnlyArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BigQuery.Inputs +{ + + public sealed class AppProfileDataBoostIsolationReadOnlyArgs : global::Pulumi.ResourceArgs + { + /// + /// The Compute Billing Owner for this Data Boost App Profile. + /// Possible values are: `HOST_PAYS`. + /// + [Input("computeBillingOwner", required: true)] + public Input ComputeBillingOwner { get; set; } = null!; + + public AppProfileDataBoostIsolationReadOnlyArgs() + { + } + public static new AppProfileDataBoostIsolationReadOnlyArgs Empty => new AppProfileDataBoostIsolationReadOnlyArgs(); + } +} diff --git a/sdk/dotnet/BigQuery/Inputs/AppProfileDataBoostIsolationReadOnlyGetArgs.cs b/sdk/dotnet/BigQuery/Inputs/AppProfileDataBoostIsolationReadOnlyGetArgs.cs new file mode 100644 index 0000000000..7833753ec9 --- /dev/null +++ b/sdk/dotnet/BigQuery/Inputs/AppProfileDataBoostIsolationReadOnlyGetArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BigQuery.Inputs +{ + + public sealed class AppProfileDataBoostIsolationReadOnlyGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The Compute Billing Owner for this Data Boost App Profile. + /// Possible values are: `HOST_PAYS`. + /// + [Input("computeBillingOwner", required: true)] + public Input ComputeBillingOwner { get; set; } = null!; + + public AppProfileDataBoostIsolationReadOnlyGetArgs() + { + } + public static new AppProfileDataBoostIsolationReadOnlyGetArgs Empty => new AppProfileDataBoostIsolationReadOnlyGetArgs(); + } +} diff --git a/sdk/dotnet/BigQuery/Outputs/AppProfileDataBoostIsolationReadOnly.cs b/sdk/dotnet/BigQuery/Outputs/AppProfileDataBoostIsolationReadOnly.cs new file mode 100644 index 0000000000..8b00832a12 --- /dev/null +++ b/sdk/dotnet/BigQuery/Outputs/AppProfileDataBoostIsolationReadOnly.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.BigQuery.Outputs +{ + + [OutputType] + public sealed class AppProfileDataBoostIsolationReadOnly + { + /// + /// The Compute Billing Owner for this Data Boost App Profile. + /// Possible values are: `HOST_PAYS`. + /// + public readonly string ComputeBillingOwner; + + [OutputConstructor] + private AppProfileDataBoostIsolationReadOnly(string computeBillingOwner) + { + ComputeBillingOwner = computeBillingOwner; + } + } +} diff --git a/sdk/dotnet/BigQuery/Reservation.cs b/sdk/dotnet/BigQuery/Reservation.cs index d22fac018f..c816e4ac2f 100644 --- a/sdk/dotnet/BigQuery/Reservation.cs +++ b/sdk/dotnet/BigQuery/Reservation.cs @@ -109,8 +109,11 @@ public partial class Reservation : global::Pulumi.CustomResource public Output Location { get; private set; } = null!; /// + /// (Optional, Deprecated) /// Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). /// If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + /// + /// > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. /// [Output("multiRegionAuxiliary")] public Output MultiRegionAuxiliary { get; private set; } = null!; @@ -219,8 +222,11 @@ public sealed class ReservationArgs : global::Pulumi.ResourceArgs public Input? Location { get; set; } /// + /// (Optional, Deprecated) /// Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). /// If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + /// + /// > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. /// [Input("multiRegionAuxiliary")] public Input? MultiRegionAuxiliary { get; set; } @@ -291,8 +297,11 @@ public sealed class ReservationState : global::Pulumi.ResourceArgs public Input? Location { get; set; } /// + /// (Optional, Deprecated) /// Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). /// If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + /// + /// > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. /// [Input("multiRegionAuxiliary")] public Input? MultiRegionAuxiliary { get; set; } diff --git a/sdk/dotnet/BigQuery/Table.cs b/sdk/dotnet/BigQuery/Table.cs index 7a70ffa9cb..b1372c9fcd 100644 --- a/sdk/dotnet/BigQuery/Table.cs +++ b/sdk/dotnet/BigQuery/Table.cs @@ -120,8 +120,13 @@ namespace Pulumi.Gcp.BigQuery public partial class Table : global::Pulumi.CustomResource { /// - /// This field is in beta. If set to true, it allows table deletion when there - /// are still resource tags attached. The default value is false. + /// If set to true, it allows table + /// deletion when there are still resource tags attached. The default value is + /// false. + /// + /// ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + /// removed in a future major release. The default behavior will be allowing + /// the presence of resource tags on deletion after the next major release. /// [Output("allowResourceTagsOnDeletion")] public Output AllowResourceTagsOnDeletion { get; private set; } = null!; @@ -303,7 +308,7 @@ public partial class Table : global::Pulumi.CustomResource public Output RequirePartitionFilter { get; private set; } = null!; /// - /// This field is in beta. The tags attached to this table. Tag keys are + /// The tags attached to this table. Tag keys are /// globally unique. Tag key is expected to be in the namespaced format, for /// example "123456789012/environment" where 123456789012 is the ID of the /// parent organization or project resource for this tag key. Tag value is @@ -419,8 +424,13 @@ public static Table Get(string name, Input id, TableState? state = null, public sealed class TableArgs : global::Pulumi.ResourceArgs { /// - /// This field is in beta. If set to true, it allows table deletion when there - /// are still resource tags attached. The default value is false. + /// If set to true, it allows table + /// deletion when there are still resource tags attached. The default value is + /// false. + /// + /// ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + /// removed in a future major release. The default behavior will be allowing + /// the presence of resource tags on deletion after the next major release. /// [Input("allowResourceTagsOnDeletion")] public Input? AllowResourceTagsOnDeletion { get; set; } @@ -548,7 +558,7 @@ public InputMap Labels private InputMap? _resourceTags; /// - /// This field is in beta. The tags attached to this table. Tag keys are + /// The tags attached to this table. Tag keys are /// globally unique. Tag key is expected to be in the namespaced format, for /// example "123456789012/environment" where 123456789012 is the ID of the /// parent organization or project resource for this tag key. Tag value is @@ -612,8 +622,13 @@ public TableArgs() public sealed class TableState : global::Pulumi.ResourceArgs { /// - /// This field is in beta. If set to true, it allows table deletion when there - /// are still resource tags attached. The default value is false. + /// If set to true, it allows table + /// deletion when there are still resource tags attached. The default value is + /// false. + /// + /// ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + /// removed in a future major release. The default behavior will be allowing + /// the presence of resource tags on deletion after the next major release. /// [Input("allowResourceTagsOnDeletion")] public Input? AllowResourceTagsOnDeletion { get; set; } @@ -830,7 +845,7 @@ public InputMap PulumiLabels private InputMap? _resourceTags; /// - /// This field is in beta. The tags attached to this table. Tag keys are + /// The tags attached to this table. Tag keys are /// globally unique. Tag key is expected to be in the namespaced format, for /// example "123456789012/environment" where 123456789012 is the ID of the /// parent organization or project resource for this tag key. Tag value is diff --git a/sdk/dotnet/BigTable/Table.cs b/sdk/dotnet/BigTable/Table.cs index 12cf43c3e2..d95886182a 100644 --- a/sdk/dotnet/BigTable/Table.cs +++ b/sdk/dotnet/BigTable/Table.cs @@ -61,6 +61,11 @@ namespace Pulumi.Gcp.BigTable /// }, /// }, /// ChangeStreamRetention = "24h0m0s", + /// AutomatedBackupPolicy = new Gcp.BigTable.Inputs.TableAutomatedBackupPolicyArgs + /// { + /// RetentionPeriod = "72h0m0s", + /// Frequency = "24h0m0s", + /// }, /// }); /// /// }); @@ -96,16 +101,15 @@ namespace Pulumi.Gcp.BigTable public partial class Table : global::Pulumi.CustomResource { /// - /// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - /// Retention Period and Frequency to 0. + /// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + /// + /// ----- /// [Output("automatedBackupPolicy")] public Output AutomatedBackupPolicy { get; private set; } = null!; /// /// Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - /// - /// ----- /// [Output("changeStreamRetention")] public Output ChangeStreamRetention { get; private set; } = null!; @@ -196,16 +200,15 @@ public static Table Get(string name, Input id, TableState? state = null, public sealed class TableArgs : global::Pulumi.ResourceArgs { /// - /// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - /// Retention Period and Frequency to 0. + /// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + /// + /// ----- /// [Input("automatedBackupPolicy")] public Input? AutomatedBackupPolicy { get; set; } /// /// Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - /// - /// ----- /// [Input("changeStreamRetention")] public Input? ChangeStreamRetention { get; set; } @@ -270,16 +273,15 @@ public TableArgs() public sealed class TableState : global::Pulumi.ResourceArgs { /// - /// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - /// Retention Period and Frequency to 0. + /// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + /// + /// ----- /// [Input("automatedBackupPolicy")] public Input? AutomatedBackupPolicy { get; set; } /// /// Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - /// - /// ----- /// [Input("changeStreamRetention")] public Input? ChangeStreamRetention { get; set; } diff --git a/sdk/dotnet/CertificateAuthority/Authority.cs b/sdk/dotnet/CertificateAuthority/Authority.cs index d6bad97952..ce26385bf0 100644 --- a/sdk/dotnet/CertificateAuthority/Authority.cs +++ b/sdk/dotnet/CertificateAuthority/Authority.cs @@ -246,14 +246,14 @@ namespace Pulumi.Gcp.CertificateAuthority /// { /// CryptoKeyId = "projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", /// Role = "roles/cloudkms.signerVerifier", - /// Member = privatecaSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = privatecaSa.Member, /// }); /// /// var privatecaSaKeyuserViewer = new Gcp.Kms.CryptoKeyIAMMember("privateca_sa_keyuser_viewer", new() /// { /// CryptoKeyId = "projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", /// Role = "roles/viewer", - /// Member = privatecaSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = privatecaSa.Member, /// }); /// /// var @default = new Gcp.CertificateAuthority.Authority("default", new() diff --git a/sdk/dotnet/CloudFunctions/Function.cs b/sdk/dotnet/CloudFunctions/Function.cs index 470f8826c9..25250dc723 100644 --- a/sdk/dotnet/CloudFunctions/Function.cs +++ b/sdk/dotnet/CloudFunctions/Function.cs @@ -163,6 +163,12 @@ public partial class Function : global::Pulumi.CustomResource [Output("buildEnvironmentVariables")] public Output?> BuildEnvironmentVariables { get; private set; } = null!; + /// + /// If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + /// + [Output("buildServiceAccount")] + public Output BuildServiceAccount { get; private set; } = null!; + /// /// Name of the Cloud Build Custom Worker Pool that should be used to build the function. /// @@ -436,6 +442,12 @@ public InputMap BuildEnvironmentVariables set => _buildEnvironmentVariables = value; } + /// + /// If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + /// + [Input("buildServiceAccount")] + public Input? BuildServiceAccount { get; set; } + /// /// Name of the Cloud Build Custom Worker Pool that should be used to build the function. /// @@ -665,6 +677,12 @@ public InputMap BuildEnvironmentVariables set => _buildEnvironmentVariables = value; } + /// + /// If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + /// + [Input("buildServiceAccount")] + public Input? BuildServiceAccount { get; set; } + /// /// Name of the Cloud Build Custom Worker Pool that should be used to build the function. /// diff --git a/sdk/dotnet/CloudFunctions/GetFunction.cs b/sdk/dotnet/CloudFunctions/GetFunction.cs index 6fdc963421..d2fea4cbaa 100644 --- a/sdk/dotnet/CloudFunctions/GetFunction.cs +++ b/sdk/dotnet/CloudFunctions/GetFunction.cs @@ -134,6 +134,7 @@ public sealed class GetFunctionResult /// public readonly int AvailableMemoryMb; public readonly ImmutableDictionary BuildEnvironmentVariables; + public readonly string BuildServiceAccount; public readonly string BuildWorkerPool; /// /// Description of the function. @@ -228,6 +229,8 @@ private GetFunctionResult( ImmutableDictionary buildEnvironmentVariables, + string buildServiceAccount, + string buildWorkerPool, string description, @@ -296,6 +299,7 @@ private GetFunctionResult( { AvailableMemoryMb = availableMemoryMb; BuildEnvironmentVariables = buildEnvironmentVariables; + BuildServiceAccount = buildServiceAccount; BuildWorkerPool = buildWorkerPool; Description = description; DockerRegistry = dockerRegistry; diff --git a/sdk/dotnet/CloudFunctionsV2/Function.cs b/sdk/dotnet/CloudFunctionsV2/Function.cs index fd9c0273c4..6a62f8a155 100644 --- a/sdk/dotnet/CloudFunctionsV2/Function.cs +++ b/sdk/dotnet/CloudFunctionsV2/Function.cs @@ -966,7 +966,7 @@ namespace Pulumi.Gcp.CloudFunctionsV2 /// $"serviceAccount:service-{projectGetProject.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-artifactregistry.iam.gserviceaccount.com", /// $"serviceAccount:service-{projectGetProject.Apply(getProjectResult => getProjectResult.Number)}@gs-project-accounts.iam.gserviceaccount.com", /// $"serviceAccount:service-{projectGetProject.Apply(getProjectResult => getProjectResult.Number)}@serverless-robot-prod.iam.gserviceaccount.com", - /// eaSa.Email.Apply(email => $"serviceAccount:{email}"), + /// eaSa.Member, /// }, /// }, new CustomResourceOptions /// { diff --git a/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataArgs.cs b/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataArgs.cs index d4522353f1..4e07ec7575 100644 --- a/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataArgs.cs @@ -17,8 +17,8 @@ public sealed class DomainMappingMetadataArgs : global::Pulumi.ResourceArgs /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataGetArgs.cs b/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataGetArgs.cs index 5a2b32ca29..aa980d8585 100644 --- a/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataGetArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/DomainMappingMetadataGetArgs.cs @@ -17,8 +17,8 @@ public sealed class DomainMappingMetadataGetArgs : global::Pulumi.ResourceArgs /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Inputs/ServiceMetadataArgs.cs b/sdk/dotnet/CloudRun/Inputs/ServiceMetadataArgs.cs index 81f60709a2..1683875997 100644 --- a/sdk/dotnet/CloudRun/Inputs/ServiceMetadataArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/ServiceMetadataArgs.cs @@ -17,8 +17,8 @@ public sealed class ServiceMetadataArgs : global::Pulumi.ResourceArgs /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Inputs/ServiceMetadataGetArgs.cs b/sdk/dotnet/CloudRun/Inputs/ServiceMetadataGetArgs.cs index 92fd845923..7b7deefdc6 100644 --- a/sdk/dotnet/CloudRun/Inputs/ServiceMetadataGetArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/ServiceMetadataGetArgs.cs @@ -17,8 +17,8 @@ public sealed class ServiceMetadataGetArgs : global::Pulumi.ResourceArgs /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataArgs.cs b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataArgs.cs index 0d2686fc94..fb46d6cef0 100644 --- a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataArgs.cs @@ -17,8 +17,8 @@ public sealed class ServiceTemplateMetadataArgs : global::Pulumi.ResourceArgs /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataGetArgs.cs b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataGetArgs.cs index b15be88d92..f685c9bbc9 100644 --- a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataGetArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateMetadataGetArgs.cs @@ -17,8 +17,8 @@ public sealed class ServiceTemplateMetadataGetArgs : global::Pulumi.ResourceArgs /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecArgs.cs b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecArgs.cs index 585d6c855d..96a05427dd 100644 --- a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecArgs.cs @@ -14,7 +14,8 @@ public sealed class ServiceTemplateSpecArgs : global::Pulumi.ResourceArgs { /// /// ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - /// requests per container of the Revision. Values are: + /// requests per container of the Revision. If not specified or 0, defaults to 80 when + /// requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// [Input("containerConcurrency")] public Input? ContainerConcurrency { get; set; } diff --git a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecGetArgs.cs b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecGetArgs.cs index 5de50b904a..f75341a90c 100644 --- a/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecGetArgs.cs +++ b/sdk/dotnet/CloudRun/Inputs/ServiceTemplateSpecGetArgs.cs @@ -14,7 +14,8 @@ public sealed class ServiceTemplateSpecGetArgs : global::Pulumi.ResourceArgs { /// /// ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - /// requests per container of the Revision. Values are: + /// requests per container of the Revision. If not specified or 0, defaults to 80 when + /// requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// [Input("containerConcurrency")] public Input? ContainerConcurrency { get; set; } diff --git a/sdk/dotnet/CloudRun/Outputs/DomainMappingMetadata.cs b/sdk/dotnet/CloudRun/Outputs/DomainMappingMetadata.cs index 84d470e4ca..2d0d1569c3 100644 --- a/sdk/dotnet/CloudRun/Outputs/DomainMappingMetadata.cs +++ b/sdk/dotnet/CloudRun/Outputs/DomainMappingMetadata.cs @@ -15,8 +15,8 @@ public sealed class DomainMappingMetadata { /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Outputs/GetServiceTemplateSpecResult.cs b/sdk/dotnet/CloudRun/Outputs/GetServiceTemplateSpecResult.cs index 8f9defa3c0..6caa9798a5 100644 --- a/sdk/dotnet/CloudRun/Outputs/GetServiceTemplateSpecResult.cs +++ b/sdk/dotnet/CloudRun/Outputs/GetServiceTemplateSpecResult.cs @@ -15,11 +15,8 @@ public sealed class GetServiceTemplateSpecResult { /// /// ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - /// requests per container of the Revision. Values are: - /// - '0' thread-safe, the system should manage the max concurrency. This is - /// the default value. - /// - '1' not-thread-safe. Single concurrency - /// - '2-N' thread-safe, max concurrency of N + /// requests per container of the Revision. If not specified or 0, defaults to 80 when + /// requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// public readonly int ContainerConcurrency; /// diff --git a/sdk/dotnet/CloudRun/Outputs/ServiceMetadata.cs b/sdk/dotnet/CloudRun/Outputs/ServiceMetadata.cs index 03c5f9dd35..b429fe4ed7 100644 --- a/sdk/dotnet/CloudRun/Outputs/ServiceMetadata.cs +++ b/sdk/dotnet/CloudRun/Outputs/ServiceMetadata.cs @@ -15,8 +15,8 @@ public sealed class ServiceMetadata { /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Outputs/ServiceTemplateMetadata.cs b/sdk/dotnet/CloudRun/Outputs/ServiceTemplateMetadata.cs index bb184a24d4..2d205c7f7b 100644 --- a/sdk/dotnet/CloudRun/Outputs/ServiceTemplateMetadata.cs +++ b/sdk/dotnet/CloudRun/Outputs/ServiceTemplateMetadata.cs @@ -15,8 +15,8 @@ public sealed class ServiceTemplateMetadata { /// /// Annotations is a key value map stored with a resource that - /// may be set by external tools to store and retrieve arbitrary metadata. More - /// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + /// may be set by external tools to store and retrieve arbitrary metadata. + /// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations /// **Note**: The Cloud Run API may add additional annotations that were not provided in your config. /// If the provider plan shows a diff where a server-side annotation is added, you can add it to your config /// or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/dotnet/CloudRun/Outputs/ServiceTemplateSpec.cs b/sdk/dotnet/CloudRun/Outputs/ServiceTemplateSpec.cs index af74fbf47f..7ab84c2a8d 100644 --- a/sdk/dotnet/CloudRun/Outputs/ServiceTemplateSpec.cs +++ b/sdk/dotnet/CloudRun/Outputs/ServiceTemplateSpec.cs @@ -15,7 +15,8 @@ public sealed class ServiceTemplateSpec { /// /// ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - /// requests per container of the Revision. Values are: + /// requests per container of the Revision. If not specified or 0, defaults to 80 when + /// requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// public readonly int? ContainerConcurrency; /// diff --git a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateArgs.cs b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateArgs.cs index 1696cc6d71..e6f6a214a2 100644 --- a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateArgs.cs +++ b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateArgs.cs @@ -70,6 +70,7 @@ public InputMap Labels /// /// Sets the maximum number of requests that each serving instance can receive. + /// If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// [Input("maxInstanceRequestConcurrency")] public Input? MaxInstanceRequestConcurrency { get; set; } diff --git a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateGetArgs.cs b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateGetArgs.cs index 55ab7d5c13..5901871546 100644 --- a/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateGetArgs.cs +++ b/sdk/dotnet/CloudRunV2/Inputs/ServiceTemplateGetArgs.cs @@ -70,6 +70,7 @@ public InputMap Labels /// /// Sets the maximum number of requests that each serving instance can receive. + /// If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// [Input("maxInstanceRequestConcurrency")] public Input? MaxInstanceRequestConcurrency { get; set; } diff --git a/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateResult.cs b/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateResult.cs index 8b4fd86506..fc5ea61935 100644 --- a/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateResult.cs +++ b/sdk/dotnet/CloudRunV2/Outputs/GetServiceTemplateResult.cs @@ -44,6 +44,7 @@ public sealed class GetServiceTemplateResult public readonly ImmutableDictionary Labels; /// /// Sets the maximum number of requests that each serving instance can receive. + /// If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// public readonly int MaxInstanceRequestConcurrency; /// diff --git a/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplate.cs b/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplate.cs index 7bcaf5f834..2248b2c3c4 100644 --- a/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplate.cs +++ b/sdk/dotnet/CloudRunV2/Outputs/ServiceTemplate.cs @@ -43,6 +43,7 @@ public sealed class ServiceTemplate public readonly ImmutableDictionary? Labels; /// /// Sets the maximum number of requests that each serving instance can receive. + /// If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. /// public readonly int? MaxInstanceRequestConcurrency; /// diff --git a/sdk/dotnet/Compute/BackendService.cs b/sdk/dotnet/Compute/BackendService.cs index dd7e78e19c..6761c84ccb 100644 --- a/sdk/dotnet/Compute/BackendService.cs +++ b/sdk/dotnet/Compute/BackendService.cs @@ -23,6 +23,9 @@ namespace Pulumi.Gcp.Compute /// * How-to Guides /// * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) /// + /// > **Warning:** All arguments including the following potentially sensitive + /// values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`. + /// /// ## Example Usage /// /// ### Backend Service Basic diff --git a/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsArgs.cs b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsArgs.cs index 331bf49d3b..a45a180cd3 100644 --- a/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsArgs.cs +++ b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsArgs.cs @@ -12,15 +12,26 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class BackendServiceSecuritySettingsArgs : global::Pulumi.ResourceArgs { + /// + /// The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + /// Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + /// Structure is documented below. + /// + /// + /// <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + /// + [Input("awsV4Authentication")] + public Input? AwsV4Authentication { get; set; } + /// /// ClientTlsPolicy is a resource that specifies how a client should authenticate /// connections to backends of a service. This resource itself does not affect /// configuration unless it is attached to a backend service resource. /// - [Input("clientTlsPolicy", required: true)] - public Input ClientTlsPolicy { get; set; } = null!; + [Input("clientTlsPolicy")] + public Input? ClientTlsPolicy { get; set; } - [Input("subjectAltNames", required: true)] + [Input("subjectAltNames")] private InputList? _subjectAltNames; /// diff --git a/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsAwsV4AuthenticationArgs.cs b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsAwsV4AuthenticationArgs.cs new file mode 100644 index 0000000000..1c26a581f8 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsAwsV4AuthenticationArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class BackendServiceSecuritySettingsAwsV4AuthenticationArgs : global::Pulumi.ResourceArgs + { + [Input("accessKey")] + private Input? _accessKey; + + /// + /// The access key used for s3 bucket authentication. + /// Required 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. + /// + public Input? AccessKey + { + get => _accessKey; + set + { + var emptySecret = Output.CreateSecret(0); + _accessKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The identifier of an access key used for s3 bucket authentication. + /// + [Input("accessKeyId")] + public Input? AccessKeyId { get; set; } + + /// + /// The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + /// + [Input("accessKeyVersion")] + public Input? AccessKeyVersion { get; set; } + + /// + /// 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. + /// For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + /// + [Input("originRegion")] + public Input? OriginRegion { get; set; } + + public BackendServiceSecuritySettingsAwsV4AuthenticationArgs() + { + } + public static new BackendServiceSecuritySettingsAwsV4AuthenticationArgs Empty => new BackendServiceSecuritySettingsAwsV4AuthenticationArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsAwsV4AuthenticationGetArgs.cs b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsAwsV4AuthenticationGetArgs.cs new file mode 100644 index 0000000000..bfd3ff28ab --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsAwsV4AuthenticationGetArgs.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class BackendServiceSecuritySettingsAwsV4AuthenticationGetArgs : global::Pulumi.ResourceArgs + { + [Input("accessKey")] + private Input? _accessKey; + + /// + /// The access key used for s3 bucket authentication. + /// Required 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. + /// + public Input? AccessKey + { + get => _accessKey; + set + { + var emptySecret = Output.CreateSecret(0); + _accessKey = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); + } + } + + /// + /// The identifier of an access key used for s3 bucket authentication. + /// + [Input("accessKeyId")] + public Input? AccessKeyId { get; set; } + + /// + /// The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + /// + [Input("accessKeyVersion")] + public Input? AccessKeyVersion { get; set; } + + /// + /// 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. + /// For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + /// + [Input("originRegion")] + public Input? OriginRegion { get; set; } + + public BackendServiceSecuritySettingsAwsV4AuthenticationGetArgs() + { + } + public static new BackendServiceSecuritySettingsAwsV4AuthenticationGetArgs Empty => new BackendServiceSecuritySettingsAwsV4AuthenticationGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsGetArgs.cs b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsGetArgs.cs index 44aefa4b37..47efec14f7 100644 --- a/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/BackendServiceSecuritySettingsGetArgs.cs @@ -12,15 +12,26 @@ namespace Pulumi.Gcp.Compute.Inputs public sealed class BackendServiceSecuritySettingsGetArgs : global::Pulumi.ResourceArgs { + /// + /// The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + /// Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + /// Structure is documented below. + /// + /// + /// <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + /// + [Input("awsV4Authentication")] + public Input? AwsV4Authentication { get; set; } + /// /// ClientTlsPolicy is a resource that specifies how a client should authenticate /// connections to backends of a service. This resource itself does not affect /// configuration unless it is attached to a backend service resource. /// - [Input("clientTlsPolicy", required: true)] - public Input ClientTlsPolicy { get; set; } = null!; + [Input("clientTlsPolicy")] + public Input? ClientTlsPolicy { get; set; } - [Input("subjectAltNames", required: true)] + [Input("subjectAltNames")] private InputList? _subjectAltNames; /// diff --git a/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsArgs.cs index 22db04d68d..678e7885d3 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsArgs.cs @@ -89,6 +89,15 @@ public InputMap ResourceManagerTags [Input("size")] public Input? Size { get; set; } + /// + /// The URL of the storage pool in which the new disk is created. + /// For example: + /// * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + /// * /projects/{project}/zones/{zone}/storagePools/{storagePool} + /// + [Input("storagePool")] + public Input? StoragePool { get; set; } + /// /// The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. /// diff --git a/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsGetArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsGetArgs.cs index 9a7b0c3be5..0f0128ab91 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceBootDiskInitializeParamsGetArgs.cs @@ -89,6 +89,15 @@ public InputMap ResourceManagerTags [Input("size")] public Input? Size { get; set; } + /// + /// The URL of the storage pool in which the new disk is created. + /// For example: + /// * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + /// * /projects/{project}/zones/{zone}/storagePools/{storagePool} + /// + [Input("storagePool")] + public Input? StoragePool { get; set; } + /// /// The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. /// diff --git a/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.cs index b51e182fb3..f5186c4b44 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.cs @@ -66,6 +66,12 @@ public InputMap ResourceManagerTags [Input("size")] public Input? Size { get; set; } + /// + /// The URL of the storage pool in which the new disk is created + /// + [Input("storagePool")] + public Input? StoragePool { get; set; } + /// /// The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. /// diff --git a/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsGetArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsGetArgs.cs index bc16d646a7..02fa116183 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceFromMachineImageBootDiskInitializeParamsGetArgs.cs @@ -66,6 +66,12 @@ public InputMap ResourceManagerTags [Input("size")] public Input? Size { get; set; } + /// + /// The URL of the storage pool in which the new disk is created + /// + [Input("storagePool")] + public Input? StoragePool { get; set; } + /// /// The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. /// diff --git a/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.cs index 772ba20399..db9a628a13 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.cs @@ -66,6 +66,12 @@ public InputMap ResourceManagerTags [Input("size")] public Input? Size { get; set; } + /// + /// The URL of the storage pool in which the new disk is created + /// + [Input("storagePool")] + public Input? StoragePool { get; set; } + /// /// The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. /// diff --git a/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsGetArgs.cs b/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsGetArgs.cs index d40780d7e1..baef453d26 100644 --- a/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/InstanceFromTemplateBootDiskInitializeParamsGetArgs.cs @@ -66,6 +66,12 @@ public InputMap ResourceManagerTags [Input("size")] public Input? Size { get; set; } + /// + /// The URL of the storage pool in which the new disk is created + /// + [Input("storagePool")] + public Input? StoragePool { get; set; } + /// /// The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. /// diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestRequestedRunDurationArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestRequestedRunDurationArgs.cs new file mode 100644 index 0000000000..6dc33e12bc --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestRequestedRunDurationArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestRequestedRunDurationArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + [Input("nanos")] + public Input? Nanos { get; set; } + + /// + /// 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 + /// + [Input("seconds", required: true)] + public Input Seconds { get; set; } = null!; + + public ResizeRequestRequestedRunDurationArgs() + { + } + public static new ResizeRequestRequestedRunDurationArgs Empty => new ResizeRequestRequestedRunDurationArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestRequestedRunDurationGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestRequestedRunDurationGetArgs.cs new file mode 100644 index 0000000000..6a703321f9 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestRequestedRunDurationGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestRequestedRunDurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// + [Input("nanos")] + public Input? Nanos { get; set; } + + /// + /// 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 + /// + [Input("seconds", required: true)] + public Input Seconds { get; set; } = null!; + + public ResizeRequestRequestedRunDurationGetArgs() + { + } + public static new ResizeRequestRequestedRunDurationGetArgs Empty => new ResizeRequestRequestedRunDurationGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusArgs.cs new file mode 100644 index 0000000000..bbd72966bb --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output only] Fatal 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. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + [Input("lastAttempts")] + private InputList? _lastAttempts; + + /// + /// (Output) + /// [Output only] Information 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. + /// Structure is documented below. + /// + public InputList LastAttempts + { + get => _lastAttempts ?? (_lastAttempts = new InputList()); + set => _lastAttempts = value; + } + + public ResizeRequestStatusArgs() + { + } + public static new ResizeRequestStatusArgs Empty => new ResizeRequestStatusArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorArgs.cs new file mode 100644 index 0000000000..d40b9c74fd --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output Only] The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public ResizeRequestStatusErrorArgs() + { + } + public static new ResizeRequestStatusErrorArgs Empty => new ResizeRequestStatusErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorArgs.cs new file mode 100644 index 0000000000..83bd2b38b1 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// [Output Only] The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// [Output Only] An optional list 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. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Output Only] Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusErrorErrorArgs() + { + } + public static new ResizeRequestStatusErrorErrorArgs Empty => new ResizeRequestStatusErrorErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailArgs.cs new file mode 100644 index 0000000000..3d5ba81d10 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public ResizeRequestStatusErrorErrorErrorDetailArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.cs new file mode 100644 index 0000000000..254893bbe9 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs.cs new file mode 100644 index 0000000000..a41edc6e23 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailErrorInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailGetArgs.cs new file mode 100644 index 0000000000..bea35276ab --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailGetArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailGetArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public ResizeRequestStatusErrorErrorErrorDetailGetArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailGetArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpArgs.cs new file mode 100644 index 0000000000..2549f8bc66 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailHelpArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public ResizeRequestStatusErrorErrorErrorDetailHelpArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailHelpArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailHelpArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpGetArgs.cs new file mode 100644 index 0000000000..71fe071fb9 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailHelpGetArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public ResizeRequestStatusErrorErrorErrorDetailHelpGetArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailHelpGetArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailHelpGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.cs new file mode 100644 index 0000000000..65b63a8843 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs.cs new file mode 100644 index 0000000000..c11b71b413 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailHelpLinkGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.cs new file mode 100644 index 0000000000..9fe23094e8 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs.cs new file mode 100644 index 0000000000..df5a3e9bef --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.cs new file mode 100644 index 0000000000..03235e78c2 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs.cs new file mode 100644 index 0000000000..1313b77d66 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public ResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs() + { + } + public static new ResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs Empty => new ResizeRequestStatusErrorErrorErrorDetailQuotaInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorGetArgs.cs new file mode 100644 index 0000000000..cefffb65f6 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorErrorGetArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorErrorGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// [Output Only] The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// [Output Only] An optional list 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. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Output Only] Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusErrorErrorGetArgs() + { + } + public static new ResizeRequestStatusErrorErrorGetArgs Empty => new ResizeRequestStatusErrorErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorGetArgs.cs new file mode 100644 index 0000000000..2a1b118572 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusErrorGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusErrorGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output Only] The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public ResizeRequestStatusErrorGetArgs() + { + } + public static new ResizeRequestStatusErrorGetArgs Empty => new ResizeRequestStatusErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusGetArgs.cs new file mode 100644 index 0000000000..71ca44cc3f --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusGetArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output only] Fatal 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. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + [Input("lastAttempts")] + private InputList? _lastAttempts; + + /// + /// (Output) + /// [Output only] Information 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. + /// Structure is documented below. + /// + public InputList LastAttempts + { + get => _lastAttempts ?? (_lastAttempts = new InputList()); + set => _lastAttempts = value; + } + + public ResizeRequestStatusGetArgs() + { + } + public static new ResizeRequestStatusGetArgs Empty => new ResizeRequestStatusGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptArgs.cs new file mode 100644 index 0000000000..c7a57343f5 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output only] Fatal 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. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public ResizeRequestStatusLastAttemptArgs() + { + } + public static new ResizeRequestStatusLastAttemptArgs Empty => new ResizeRequestStatusLastAttemptArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorArgs.cs new file mode 100644 index 0000000000..4770316afe --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output Only] The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public ResizeRequestStatusLastAttemptErrorArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorArgs Empty => new ResizeRequestStatusLastAttemptErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorArgs.cs new file mode 100644 index 0000000000..8f2086534d --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// [Output Only] The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// [Output Only] An optional list 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. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Output Only] Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.cs new file mode 100644 index 0000000000..114b510c22 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.cs new file mode 100644 index 0000000000..384d5e21aa --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs.cs new file mode 100644 index 0000000000..f10d2822c9 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs.cs @@ -0,0 +1,48 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("metadatas")] + private InputMap? _metadatas; + + /// + /// (Output) + /// Additional structured details about this error. + /// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + /// + public InputMap Metadatas + { + get => _metadatas ?? (_metadatas = new InputMap()); + set => _metadatas = value; + } + + /// + /// (Output) + /// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + /// + [Input("reason")] + public Input? Reason { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs.cs new file mode 100644 index 0000000000..bbc7052b16 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs.cs @@ -0,0 +1,76 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs : global::Pulumi.ResourceArgs + { + [Input("errorInfos")] + private InputList? _errorInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList ErrorInfos + { + get => _errorInfos ?? (_errorInfos = new InputList()); + set => _errorInfos = value; + } + + [Input("helps")] + private InputList? _helps; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Helps + { + get => _helps ?? (_helps = new InputList()); + set => _helps = value; + } + + [Input("localizedMessages")] + private InputList? _localizedMessages; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList LocalizedMessages + { + get => _localizedMessages ?? (_localizedMessages = new InputList()); + set => _localizedMessages = value; + } + + [Input("quotaInfos")] + private InputList? _quotaInfos; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList QuotaInfos + { + get => _quotaInfos ?? (_quotaInfos = new InputList()); + set => _quotaInfos = value; + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.cs new file mode 100644 index 0000000000..fa0bafe7fe --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs.cs new file mode 100644 index 0000000000..09307e3c14 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs : global::Pulumi.ResourceArgs + { + [Input("links")] + private InputList? _links; + + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public InputList Links + { + get => _links ?? (_links = new InputList()); + set => _links = value; + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.cs new file mode 100644 index 0000000000..a899625aa0 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs.cs new file mode 100644 index 0000000000..8966dfd455 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// (Output) + /// The URL of the link. + /// + [Input("url")] + public Input? Url { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.cs new file mode 100644 index 0000000000..d2ae39a9ad --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs.cs new file mode 100644 index 0000000000..cd23cdd2ea --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + [Input("locale")] + public Input? Locale { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.cs new file mode 100644 index 0000000000..20b87bde50 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs.cs new file mode 100644 index 0000000000..486cf0888b --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs.cs @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs : global::Pulumi.ResourceArgs + { + [Input("dimensions")] + private InputMap? _dimensions; + + /// + /// (Output) + /// The map holding related quota dimensions + /// + public InputMap Dimensions + { + get => _dimensions ?? (_dimensions = new InputMap()); + set => _dimensions = value; + } + + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + [Input("futureLimit")] + public Input? FutureLimit { get; set; } + + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + [Input("limit")] + public Input? Limit { get; set; } + + /// + /// (Output) + /// The name of the quota limit. + /// + [Input("limitName")] + public Input? LimitName { get; set; } + + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + [Input("metricName")] + public Input? MetricName { get; set; } + + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + [Input("rolloutStatus")] + public Input? RolloutStatus { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorGetArgs.cs new file mode 100644 index 0000000000..c61f8a6ce1 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorErrorGetArgs.cs @@ -0,0 +1,55 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorErrorGetArgs : global::Pulumi.ResourceArgs + { + /// + /// (Output) + /// [Output Only] The error type identifier for this error. + /// + [Input("code")] + public Input? Code { get; set; } + + [Input("errorDetails")] + private InputList? _errorDetails; + + /// + /// (Output) + /// [Output Only] An optional list 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. + /// Structure is documented below. + /// + public InputList ErrorDetails + { + get => _errorDetails ?? (_errorDetails = new InputList()); + set => _errorDetails = value; + } + + /// + /// (Output) + /// Output Only] Indicates the field in the request that caused the error. This property is optional. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// (Output) + /// The localized error message in the above locale. + /// + [Input("message")] + public Input? Message { get; set; } + + public ResizeRequestStatusLastAttemptErrorErrorGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorErrorGetArgs Empty => new ResizeRequestStatusLastAttemptErrorErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorGetArgs.cs new file mode 100644 index 0000000000..834f0ea5e3 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptErrorGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptErrorGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output Only] The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public ResizeRequestStatusLastAttemptErrorGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptErrorGetArgs Empty => new ResizeRequestStatusLastAttemptErrorGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptGetArgs.cs b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptGetArgs.cs new file mode 100644 index 0000000000..200a7a4aa9 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/ResizeRequestStatusLastAttemptGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class ResizeRequestStatusLastAttemptGetArgs : global::Pulumi.ResourceArgs + { + [Input("errors")] + private InputList? _errors; + + /// + /// (Output) + /// [Output only] Fatal 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. + /// Structure is documented below. + /// + public InputList Errors + { + get => _errors ?? (_errors = new InputList()); + set => _errors = value; + } + + public ResizeRequestStatusLastAttemptGetArgs() + { + } + public static new ResizeRequestStatusLastAttemptGetArgs Empty => new ResizeRequestStatusLastAttemptGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeArgs.cs b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeArgs.cs new file mode 100644 index 0000000000..523d5858a5 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterPeerCustomLearnedIpRangeArgs : global::Pulumi.ResourceArgs + { + /// + /// The IP range to advertise. The value must be a + /// CIDR-formatted string. + /// + [Input("range", required: true)] + public Input Range { get; set; } = null!; + + public RouterPeerCustomLearnedIpRangeArgs() + { + } + public static new RouterPeerCustomLearnedIpRangeArgs Empty => new RouterPeerCustomLearnedIpRangeArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeGetArgs.cs b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeGetArgs.cs new file mode 100644 index 0000000000..40a38ee98a --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterPeerCustomLearnedIpRangeGetArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterPeerCustomLearnedIpRangeGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The IP range to advertise. The value must be a + /// CIDR-formatted string. + /// + [Input("range", required: true)] + public Input Range { get; set; } = null!; + + public RouterPeerCustomLearnedIpRangeGetArgs() + { + } + public static new RouterPeerCustomLearnedIpRangeGetArgs Empty => new RouterPeerCustomLearnedIpRangeGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermActionArgs.cs b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermActionArgs.cs new file mode 100644 index 0000000000..0aa8095c8d --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermActionArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterRoutePolicyTermActionArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the expression + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Textual representation of an expression in Common Expression + /// Language syntax. + /// + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + /// + /// String indicating the location of the expression for error + /// reporting, e.g. a file name and a position in the file + /// + /// - - - + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Title for the expression, i.e. a short string describing its + /// purpose. + /// + [Input("title")] + public Input? Title { get; set; } + + public RouterRoutePolicyTermActionArgs() + { + } + public static new RouterRoutePolicyTermActionArgs Empty => new RouterRoutePolicyTermActionArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermActionGetArgs.cs b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermActionGetArgs.cs new file mode 100644 index 0000000000..be41f883ee --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermActionGetArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterRoutePolicyTermActionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the expression + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Textual representation of an expression in Common Expression + /// Language syntax. + /// + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + /// + /// String indicating the location of the expression for error + /// reporting, e.g. a file name and a position in the file + /// + /// - - - + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Title for the expression, i.e. a short string describing its + /// purpose. + /// + [Input("title")] + public Input? Title { get; set; } + + public RouterRoutePolicyTermActionGetArgs() + { + } + public static new RouterRoutePolicyTermActionGetArgs Empty => new RouterRoutePolicyTermActionGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermArgs.cs b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermArgs.cs new file mode 100644 index 0000000000..d8bf6b5b92 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterRoutePolicyTermArgs : global::Pulumi.ResourceArgs + { + [Input("actions")] + private InputList? _actions; + + /// + /// 'CEL expressions to evaluate to modify a route when this term matches.'\ + /// Structure is documented below. + /// + public InputList Actions + { + get => _actions ?? (_actions = new InputList()); + set => _actions = value; + } + + /// + /// CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + /// Structure is documented below. + /// + [Input("match")] + public Input? Match { get; set; } + + /// + /// The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + /// + [Input("priority", required: true)] + public Input Priority { get; set; } = null!; + + public RouterRoutePolicyTermArgs() + { + } + public static new RouterRoutePolicyTermArgs Empty => new RouterRoutePolicyTermArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermGetArgs.cs b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermGetArgs.cs new file mode 100644 index 0000000000..2eb55b09cd --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermGetArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterRoutePolicyTermGetArgs : global::Pulumi.ResourceArgs + { + [Input("actions")] + private InputList? _actions; + + /// + /// 'CEL expressions to evaluate to modify a route when this term matches.'\ + /// Structure is documented below. + /// + public InputList Actions + { + get => _actions ?? (_actions = new InputList()); + set => _actions = value; + } + + /// + /// CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + /// Structure is documented below. + /// + [Input("match")] + public Input? Match { get; set; } + + /// + /// The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + /// + [Input("priority", required: true)] + public Input Priority { get; set; } = null!; + + public RouterRoutePolicyTermGetArgs() + { + } + public static new RouterRoutePolicyTermGetArgs Empty => new RouterRoutePolicyTermGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermMatchArgs.cs b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermMatchArgs.cs new file mode 100644 index 0000000000..1cea391e10 --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermMatchArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterRoutePolicyTermMatchArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the expression + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Textual representation of an expression in Common Expression Language syntax. + /// + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + /// + /// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Title for the expression, i.e. a short string describing its purpose. + /// + [Input("title")] + public Input? Title { get; set; } + + public RouterRoutePolicyTermMatchArgs() + { + } + public static new RouterRoutePolicyTermMatchArgs Empty => new RouterRoutePolicyTermMatchArgs(); + } +} diff --git a/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermMatchGetArgs.cs b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermMatchGetArgs.cs new file mode 100644 index 0000000000..e790d9106c --- /dev/null +++ b/sdk/dotnet/Compute/Inputs/RouterRoutePolicyTermMatchGetArgs.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Inputs +{ + + public sealed class RouterRoutePolicyTermMatchGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Description of the expression + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Textual representation of an expression in Common Expression Language syntax. + /// + [Input("expression", required: true)] + public Input Expression { get; set; } = null!; + + /// + /// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Title for the expression, i.e. a short string describing its purpose. + /// + [Input("title")] + public Input? Title { get; set; } + + public RouterRoutePolicyTermMatchGetArgs() + { + } + public static new RouterRoutePolicyTermMatchGetArgs Empty => new RouterRoutePolicyTermMatchGetArgs(); + } +} diff --git a/sdk/dotnet/Compute/Outputs/BackendServiceSecuritySettings.cs b/sdk/dotnet/Compute/Outputs/BackendServiceSecuritySettings.cs index 1a451595f1..ba36c689c3 100644 --- a/sdk/dotnet/Compute/Outputs/BackendServiceSecuritySettings.cs +++ b/sdk/dotnet/Compute/Outputs/BackendServiceSecuritySettings.cs @@ -13,12 +13,21 @@ namespace Pulumi.Gcp.Compute.Outputs [OutputType] public sealed class BackendServiceSecuritySettings { + /// + /// The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + /// Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + /// Structure is documented below. + /// + /// + /// <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + /// + public readonly Outputs.BackendServiceSecuritySettingsAwsV4Authentication? AwsV4Authentication; /// /// ClientTlsPolicy is a resource that specifies how a client should authenticate /// connections to backends of a service. This resource itself does not affect /// configuration unless it is attached to a backend service resource. /// - public readonly string ClientTlsPolicy; + public readonly string? ClientTlsPolicy; /// /// A list of alternate names to verify the subject identity in the certificate. /// If specified, the client will verify that the server certificate's subject @@ -28,10 +37,13 @@ public sealed class BackendServiceSecuritySettings [OutputConstructor] private BackendServiceSecuritySettings( - string clientTlsPolicy, + Outputs.BackendServiceSecuritySettingsAwsV4Authentication? awsV4Authentication, + + string? clientTlsPolicy, ImmutableArray subjectAltNames) { + AwsV4Authentication = awsV4Authentication; ClientTlsPolicy = clientTlsPolicy; SubjectAltNames = subjectAltNames; } diff --git a/sdk/dotnet/Compute/Outputs/BackendServiceSecuritySettingsAwsV4Authentication.cs b/sdk/dotnet/Compute/Outputs/BackendServiceSecuritySettingsAwsV4Authentication.cs new file mode 100644 index 0000000000..5a5873d6db --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/BackendServiceSecuritySettingsAwsV4Authentication.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class BackendServiceSecuritySettingsAwsV4Authentication + { + /// + /// The access key used for s3 bucket authentication. + /// Required 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. + /// + public readonly string? AccessKey; + /// + /// The identifier of an access key used for s3 bucket authentication. + /// + public readonly string? AccessKeyId; + /// + /// The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + /// + public readonly string? AccessKeyVersion; + /// + /// 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. + /// For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + /// + public readonly string? OriginRegion; + + [OutputConstructor] + private BackendServiceSecuritySettingsAwsV4Authentication( + string? accessKey, + + string? accessKeyId, + + string? accessKeyVersion, + + string? originRegion) + { + AccessKey = accessKey; + AccessKeyId = accessKeyId; + AccessKeyVersion = accessKeyVersion; + OriginRegion = originRegion; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/GetBackendServiceSecuritySettingAwsV4AuthenticationResult.cs b/sdk/dotnet/Compute/Outputs/GetBackendServiceSecuritySettingAwsV4AuthenticationResult.cs new file mode 100644 index 0000000000..e1a44dbf11 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/GetBackendServiceSecuritySettingAwsV4AuthenticationResult.cs @@ -0,0 +1,51 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class GetBackendServiceSecuritySettingAwsV4AuthenticationResult + { + /// + /// The access key used for s3 bucket authentication. + /// Required 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. + /// + public readonly string AccessKey; + /// + /// The identifier of an access key used for s3 bucket authentication. + /// + public readonly string AccessKeyId; + /// + /// The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + /// + public readonly string AccessKeyVersion; + /// + /// 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. + /// For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + /// + public readonly string OriginRegion; + + [OutputConstructor] + private GetBackendServiceSecuritySettingAwsV4AuthenticationResult( + string accessKey, + + string accessKeyId, + + string accessKeyVersion, + + string originRegion) + { + AccessKey = accessKey; + AccessKeyId = accessKeyId; + AccessKeyVersion = accessKeyVersion; + OriginRegion = originRegion; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/GetBackendServiceSecuritySettingResult.cs b/sdk/dotnet/Compute/Outputs/GetBackendServiceSecuritySettingResult.cs index c84d5d46b7..5cee46ed97 100644 --- a/sdk/dotnet/Compute/Outputs/GetBackendServiceSecuritySettingResult.cs +++ b/sdk/dotnet/Compute/Outputs/GetBackendServiceSecuritySettingResult.cs @@ -13,6 +13,11 @@ namespace Pulumi.Gcp.Compute.Outputs [OutputType] public sealed class GetBackendServiceSecuritySettingResult { + /// + /// The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + /// Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + /// + public readonly ImmutableArray AwsV4Authentications; /// /// ClientTlsPolicy is a resource that specifies how a client should authenticate /// connections to backends of a service. This resource itself does not affect @@ -28,10 +33,13 @@ public sealed class GetBackendServiceSecuritySettingResult [OutputConstructor] private GetBackendServiceSecuritySettingResult( + ImmutableArray awsV4Authentications, + string clientTlsPolicy, ImmutableArray subjectAltNames) { + AwsV4Authentications = awsV4Authentications; ClientTlsPolicy = clientTlsPolicy; SubjectAltNames = subjectAltNames; } diff --git a/sdk/dotnet/Compute/Outputs/GetInstanceBootDiskInitializeParamResult.cs b/sdk/dotnet/Compute/Outputs/GetInstanceBootDiskInitializeParamResult.cs index f1b437a6f5..ae1f8290b1 100644 --- a/sdk/dotnet/Compute/Outputs/GetInstanceBootDiskInitializeParamResult.cs +++ b/sdk/dotnet/Compute/Outputs/GetInstanceBootDiskInitializeParamResult.cs @@ -42,6 +42,10 @@ public sealed class GetInstanceBootDiskInitializeParamResult /// public readonly int Size; /// + /// The URL of the storage pool in which the new disk is created + /// + public readonly string StoragePool; + /// /// The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. /// public readonly string Type; @@ -62,6 +66,8 @@ private GetInstanceBootDiskInitializeParamResult( int size, + string storagePool, + string type) { EnableConfidentialCompute = enableConfidentialCompute; @@ -71,6 +77,7 @@ private GetInstanceBootDiskInitializeParamResult( ProvisionedThroughput = provisionedThroughput; ResourceManagerTags = resourceManagerTags; Size = size; + StoragePool = storagePool; Type = type; } } diff --git a/sdk/dotnet/Compute/Outputs/InstanceBootDiskInitializeParams.cs b/sdk/dotnet/Compute/Outputs/InstanceBootDiskInitializeParams.cs index 760af58da2..2db595c10a 100644 --- a/sdk/dotnet/Compute/Outputs/InstanceBootDiskInitializeParams.cs +++ b/sdk/dotnet/Compute/Outputs/InstanceBootDiskInitializeParams.cs @@ -65,6 +65,13 @@ public sealed class InstanceBootDiskInitializeParams /// public readonly int? Size; /// + /// The URL of the storage pool in which the new disk is created. + /// For example: + /// * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + /// * /projects/{project}/zones/{zone}/storagePools/{storagePool} + /// + public readonly string? StoragePool; + /// /// The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. /// public readonly string? Type; @@ -85,6 +92,8 @@ private InstanceBootDiskInitializeParams( int? size, + string? storagePool, + string? type) { EnableConfidentialCompute = enableConfidentialCompute; @@ -94,6 +103,7 @@ private InstanceBootDiskInitializeParams( ProvisionedThroughput = provisionedThroughput; ResourceManagerTags = resourceManagerTags; Size = size; + StoragePool = storagePool; Type = type; } } diff --git a/sdk/dotnet/Compute/Outputs/InstanceFromMachineImageBootDiskInitializeParams.cs b/sdk/dotnet/Compute/Outputs/InstanceFromMachineImageBootDiskInitializeParams.cs index a09bcaa14f..0729f78ee7 100644 --- a/sdk/dotnet/Compute/Outputs/InstanceFromMachineImageBootDiskInitializeParams.cs +++ b/sdk/dotnet/Compute/Outputs/InstanceFromMachineImageBootDiskInitializeParams.cs @@ -42,6 +42,10 @@ public sealed class InstanceFromMachineImageBootDiskInitializeParams /// public readonly int? Size; /// + /// The URL of the storage pool in which the new disk is created + /// + public readonly string? StoragePool; + /// /// The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. /// public readonly string? Type; @@ -62,6 +66,8 @@ private InstanceFromMachineImageBootDiskInitializeParams( int? size, + string? storagePool, + string? type) { EnableConfidentialCompute = enableConfidentialCompute; @@ -71,6 +77,7 @@ private InstanceFromMachineImageBootDiskInitializeParams( ProvisionedThroughput = provisionedThroughput; ResourceManagerTags = resourceManagerTags; Size = size; + StoragePool = storagePool; Type = type; } } diff --git a/sdk/dotnet/Compute/Outputs/InstanceFromTemplateBootDiskInitializeParams.cs b/sdk/dotnet/Compute/Outputs/InstanceFromTemplateBootDiskInitializeParams.cs index 69e4af7f57..1aad13f7cf 100644 --- a/sdk/dotnet/Compute/Outputs/InstanceFromTemplateBootDiskInitializeParams.cs +++ b/sdk/dotnet/Compute/Outputs/InstanceFromTemplateBootDiskInitializeParams.cs @@ -42,6 +42,10 @@ public sealed class InstanceFromTemplateBootDiskInitializeParams /// public readonly int? Size; /// + /// The URL of the storage pool in which the new disk is created + /// + public readonly string? StoragePool; + /// /// The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. /// public readonly string? Type; @@ -62,6 +66,8 @@ private InstanceFromTemplateBootDiskInitializeParams( int? size, + string? storagePool, + string? type) { EnableConfidentialCompute = enableConfidentialCompute; @@ -71,6 +77,7 @@ private InstanceFromTemplateBootDiskInitializeParams( ProvisionedThroughput = provisionedThroughput; ResourceManagerTags = resourceManagerTags; Size = size; + StoragePool = storagePool; Type = type; } } diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestRequestedRunDuration.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestRequestedRunDuration.cs new file mode 100644 index 0000000000..0d7204d2cf --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestRequestedRunDuration.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestRequestedRunDuration + { + /// + /// 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. + /// + public readonly int? Nanos; + /// + /// 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 + /// + public readonly string Seconds; + + [OutputConstructor] + private ResizeRequestRequestedRunDuration( + int? nanos, + + string seconds) + { + Nanos = nanos; + Seconds = seconds; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatus.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatus.cs new file mode 100644 index 0000000000..7aab55d4f3 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatus.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatus + { + /// + /// (Output) + /// [Output only] Fatal 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. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + /// + /// (Output) + /// [Output only] Information 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. + /// Structure is documented below. + /// + public readonly ImmutableArray LastAttempts; + + [OutputConstructor] + private ResizeRequestStatus( + ImmutableArray errors, + + ImmutableArray lastAttempts) + { + Errors = errors; + LastAttempts = lastAttempts; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusError.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusError.cs new file mode 100644 index 0000000000..f74e8f4276 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusError.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusError + { + /// + /// (Output) + /// [Output Only] The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + + [OutputConstructor] + private ResizeRequestStatusError(ImmutableArray errors) + { + Errors = errors; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorError.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorError.cs new file mode 100644 index 0000000000..070cee4e4f --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorError.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusErrorError + { + /// + /// (Output) + /// [Output Only] The error type identifier for this error. + /// + public readonly string? Code; + /// + /// (Output) + /// [Output Only] An optional list 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. + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorDetails; + /// + /// (Output) + /// Output Only] Indicates the field in the request that caused the error. This property is optional. + /// + public readonly string? Location; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private ResizeRequestStatusErrorError( + string? code, + + ImmutableArray errorDetails, + + string? location, + + string? message) + { + Code = code; + ErrorDetails = errorDetails; + Location = location; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetail.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetail.cs new file mode 100644 index 0000000000..7c447a8377 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetail.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusErrorErrorErrorDetail + { + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorInfos; + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray Helps; + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray LocalizedMessages; + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray QuotaInfos; + + [OutputConstructor] + private ResizeRequestStatusErrorErrorErrorDetail( + ImmutableArray errorInfos, + + ImmutableArray helps, + + ImmutableArray localizedMessages, + + ImmutableArray quotaInfos) + { + ErrorInfos = errorInfos; + Helps = helps; + LocalizedMessages = localizedMessages; + QuotaInfos = quotaInfos; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfo.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfo.cs new file mode 100644 index 0000000000..1df42a4d4b --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfo.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusErrorErrorErrorDetailErrorInfo + { + /// + /// (Output) + /// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + /// + public readonly string? Domain; + /// + /// (Output) + /// Additional structured details about this error. + /// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + /// + public readonly ImmutableDictionary? Metadatas; + /// + /// (Output) + /// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + /// + public readonly string? Reason; + + [OutputConstructor] + private ResizeRequestStatusErrorErrorErrorDetailErrorInfo( + string? domain, + + ImmutableDictionary? metadatas, + + string? reason) + { + Domain = domain; + Metadatas = metadatas; + Reason = reason; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailHelp.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailHelp.cs new file mode 100644 index 0000000000..abdd9b1449 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailHelp.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusErrorErrorErrorDetailHelp + { + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray Links; + + [OutputConstructor] + private ResizeRequestStatusErrorErrorErrorDetailHelp(ImmutableArray links) + { + Links = links; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailHelpLink.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailHelpLink.cs new file mode 100644 index 0000000000..e9a6545c01 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailHelpLink.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusErrorErrorErrorDetailHelpLink + { + /// + /// An optional description of this resize-request. + /// + public readonly string? Description; + /// + /// (Output) + /// The URL of the link. + /// + public readonly string? Url; + + [OutputConstructor] + private ResizeRequestStatusErrorErrorErrorDetailHelpLink( + string? description, + + string? url) + { + Description = description; + Url = url; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.cs new file mode 100644 index 0000000000..d7163aa1e8 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + public readonly string? Locale; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage( + string? locale, + + string? message) + { + Locale = locale; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.cs new file mode 100644 index 0000000000..2acc790308 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusErrorErrorErrorDetailQuotaInfo + { + /// + /// (Output) + /// The map holding related quota dimensions + /// + public readonly ImmutableDictionary? Dimensions; + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + public readonly int? FutureLimit; + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + public readonly int? Limit; + /// + /// (Output) + /// The name of the quota limit. + /// + public readonly string? LimitName; + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + public readonly string? MetricName; + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + public readonly string? RolloutStatus; + + [OutputConstructor] + private ResizeRequestStatusErrorErrorErrorDetailQuotaInfo( + ImmutableDictionary? dimensions, + + int? futureLimit, + + int? limit, + + string? limitName, + + string? metricName, + + string? rolloutStatus) + { + Dimensions = dimensions; + FutureLimit = futureLimit; + Limit = limit; + LimitName = limitName; + MetricName = metricName; + RolloutStatus = rolloutStatus; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttempt.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttempt.cs new file mode 100644 index 0000000000..abef1a4df9 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttempt.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttempt + { + /// + /// (Output) + /// [Output only] Fatal 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. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + + [OutputConstructor] + private ResizeRequestStatusLastAttempt(ImmutableArray errors) + { + Errors = errors; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptError.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptError.cs new file mode 100644 index 0000000000..300448da4d --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptError.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptError + { + /// + /// (Output) + /// [Output Only] The array of errors encountered while processing this operation. + /// Structure is documented below. + /// + public readonly ImmutableArray Errors; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptError(ImmutableArray errors) + { + Errors = errors; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorError.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorError.cs new file mode 100644 index 0000000000..21eaf41d16 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorError.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptErrorError + { + /// + /// (Output) + /// [Output Only] The error type identifier for this error. + /// + public readonly string? Code; + /// + /// (Output) + /// [Output Only] An optional list 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. + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorDetails; + /// + /// (Output) + /// Output Only] Indicates the field in the request that caused the error. This property is optional. + /// + public readonly string? Location; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptErrorError( + string? code, + + ImmutableArray errorDetails, + + string? location, + + string? message) + { + Code = code; + ErrorDetails = errorDetails; + Location = location; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetail.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetail.cs new file mode 100644 index 0000000000..2af17ae5bc --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetail.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetail + { + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray ErrorInfos; + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray Helps; + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray LocalizedMessages; + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray QuotaInfos; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptErrorErrorErrorDetail( + ImmutableArray errorInfos, + + ImmutableArray helps, + + ImmutableArray localizedMessages, + + ImmutableArray quotaInfos) + { + ErrorInfos = errorInfos; + Helps = helps; + LocalizedMessages = localizedMessages; + QuotaInfos = quotaInfos; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.cs new file mode 100644 index 0000000000..4b7ae1e2ad --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo + { + /// + /// (Output) + /// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + /// + public readonly string? Domain; + /// + /// (Output) + /// Additional structured details about this error. + /// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + /// + public readonly ImmutableDictionary? Metadatas; + /// + /// (Output) + /// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + /// + public readonly string? Reason; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo( + string? domain, + + ImmutableDictionary? metadatas, + + string? reason) + { + Domain = domain; + Metadatas = metadatas; + Reason = reason; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.cs new file mode 100644 index 0000000000..02537a3dee --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp + { + /// + /// (Output) + /// [Output Only] + /// Structure is documented below. + /// + public readonly ImmutableArray Links; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(ImmutableArray links) + { + Links = links; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.cs new file mode 100644 index 0000000000..a2593e0215 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink + { + /// + /// An optional description of this resize-request. + /// + public readonly string? Description; + /// + /// (Output) + /// The URL of the link. + /// + public readonly string? Url; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink( + string? description, + + string? url) + { + Description = description; + Url = url; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.cs new file mode 100644 index 0000000000..ee9572bf4b --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage + { + /// + /// (Output) + /// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + /// + public readonly string? Locale; + /// + /// (Output) + /// The localized error message in the above locale. + /// + public readonly string? Message; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage( + string? locale, + + string? message) + { + Locale = locale; + Message = message; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.cs b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.cs new file mode 100644 index 0000000000..040823f09c --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.cs @@ -0,0 +1,69 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo + { + /// + /// (Output) + /// The map holding related quota dimensions + /// + public readonly ImmutableDictionary? Dimensions; + /// + /// (Output) + /// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + /// + public readonly int? FutureLimit; + /// + /// (Output) + /// Current effective quota limit. The limit's unit depends on the quota type or metric. + /// + public readonly int? Limit; + /// + /// (Output) + /// The name of the quota limit. + /// + public readonly string? LimitName; + /// + /// (Output) + /// The Compute Engine quota metric name. + /// + public readonly string? MetricName; + /// + /// (Output) + /// Rollout status of the future quota limit. + /// + public readonly string? RolloutStatus; + + [OutputConstructor] + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo( + ImmutableDictionary? dimensions, + + int? futureLimit, + + int? limit, + + string? limitName, + + string? metricName, + + string? rolloutStatus) + { + Dimensions = dimensions; + FutureLimit = futureLimit; + Limit = limit; + LimitName = limitName; + MetricName = metricName; + RolloutStatus = rolloutStatus; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RouterPeerCustomLearnedIpRange.cs b/sdk/dotnet/Compute/Outputs/RouterPeerCustomLearnedIpRange.cs new file mode 100644 index 0000000000..63d770f34f --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RouterPeerCustomLearnedIpRange.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RouterPeerCustomLearnedIpRange + { + /// + /// The IP range to advertise. The value must be a + /// CIDR-formatted string. + /// + public readonly string Range; + + [OutputConstructor] + private RouterPeerCustomLearnedIpRange(string range) + { + Range = range; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTerm.cs b/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTerm.cs new file mode 100644 index 0000000000..14ea87ab85 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTerm.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RouterRoutePolicyTerm + { + /// + /// 'CEL expressions to evaluate to modify a route when this term matches.'\ + /// Structure is documented below. + /// + public readonly ImmutableArray Actions; + /// + /// CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + /// Structure is documented below. + /// + public readonly Outputs.RouterRoutePolicyTermMatch? Match; + /// + /// The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + /// + public readonly int Priority; + + [OutputConstructor] + private RouterRoutePolicyTerm( + ImmutableArray actions, + + Outputs.RouterRoutePolicyTermMatch? match, + + int priority) + { + Actions = actions; + Match = match; + Priority = priority; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTermAction.cs b/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTermAction.cs new file mode 100644 index 0000000000..f3f4da6c4e --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTermAction.cs @@ -0,0 +1,54 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RouterRoutePolicyTermAction + { + /// + /// Description of the expression + /// + public readonly string? Description; + /// + /// Textual representation of an expression in Common Expression + /// Language syntax. + /// + public readonly string Expression; + /// + /// String indicating the location of the expression for error + /// reporting, e.g. a file name and a position in the file + /// + /// - - - + /// + public readonly string? Location; + /// + /// Title for the expression, i.e. a short string describing its + /// purpose. + /// + public readonly string? Title; + + [OutputConstructor] + private RouterRoutePolicyTermAction( + string? description, + + string expression, + + string? location, + + string? title) + { + Description = description; + Expression = expression; + Location = location; + Title = title; + } + } +} diff --git a/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTermMatch.cs b/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTermMatch.cs new file mode 100644 index 0000000000..89aa9cc2d2 --- /dev/null +++ b/sdk/dotnet/Compute/Outputs/RouterRoutePolicyTermMatch.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute.Outputs +{ + + [OutputType] + public sealed class RouterRoutePolicyTermMatch + { + /// + /// Description of the expression + /// + public readonly string? Description; + /// + /// Textual representation of an expression in Common Expression Language syntax. + /// + public readonly string Expression; + /// + /// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + /// + public readonly string? Location; + /// + /// Title for the expression, i.e. a short string describing its purpose. + /// + public readonly string? Title; + + [OutputConstructor] + private RouterRoutePolicyTermMatch( + string? description, + + string expression, + + string? location, + + string? title) + { + Description = description; + Expression = expression; + Location = location; + Title = title; + } + } +} diff --git a/sdk/dotnet/Compute/PublicAdvertisedPrefix.cs b/sdk/dotnet/Compute/PublicAdvertisedPrefix.cs index 0b87d508a9..c725d08135 100644 --- a/sdk/dotnet/Compute/PublicAdvertisedPrefix.cs +++ b/sdk/dotnet/Compute/PublicAdvertisedPrefix.cs @@ -113,6 +113,12 @@ public partial class PublicAdvertisedPrefix : global::Pulumi.CustomResource [Output("selfLink")] public Output SelfLink { get; private set; } = null!; + /// + /// Output Only. The shared secret to be used for reverse DNS verification. + /// + [Output("sharedSecret")] + public Output SharedSecret { get; private set; } = null!; + /// /// Create a PublicAdvertisedPrefix resource with the given unique name, arguments, and options. @@ -251,6 +257,12 @@ public sealed class PublicAdvertisedPrefixState : global::Pulumi.ResourceArgs [Input("selfLink")] public Input? SelfLink { get; set; } + /// + /// Output Only. The shared secret to be used for reverse DNS verification. + /// + [Input("sharedSecret")] + public Input? SharedSecret { get; set; } + public PublicAdvertisedPrefixState() { } diff --git a/sdk/dotnet/Compute/ResizeRequest.cs b/sdk/dotnet/Compute/ResizeRequest.cs new file mode 100644 index 0000000000..7c5c2606fb --- /dev/null +++ b/sdk/dotnet/Compute/ResizeRequest.cs @@ -0,0 +1,407 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute +{ + /// + /// Represents a Managed Instance Group Resize Request + /// + /// Resize Requests are the Managed Instance Group implementation of Dynamic Workload Scheduler Flex Start. + /// + /// With Dynamic Workload Scheduler in Flex Start mode, you submit a GPU capacity request for your AI/ML jobs by indicating how many you need, a duration, and your preferred region. Dynamic Workload Scheduler intelligently persists the request; once the capacity becomes available, it automatically provisions your VMs enabling your workloads to run continuously for the entire duration of the capacity allocation. + /// + /// To get more information about ResizeRequest, see: + /// + /// * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagerResizeRequests) + /// * How-to Guides + /// * [QUICKSTART_TITLE](https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig) + /// + /// ## Example Usage + /// + /// ### Compute Mig Resize Request + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var a3Dws = new Gcp.Compute.RegionInstanceTemplate("a3_dws", new() + /// { + /// Name = "a3-dws", + /// Region = "us-central1", + /// Description = "This template is used to create a mig instance that is compatible with DWS resize requests.", + /// InstanceDescription = "A3 GPU", + /// MachineType = "a3-highgpu-8g", + /// CanIpForward = false, + /// Scheduling = new Gcp.Compute.Inputs.RegionInstanceTemplateSchedulingArgs + /// { + /// AutomaticRestart = false, + /// OnHostMaintenance = "TERMINATE", + /// }, + /// Disks = new[] + /// { + /// new Gcp.Compute.Inputs.RegionInstanceTemplateDiskArgs + /// { + /// SourceImage = "cos-cloud/cos-105-lts", + /// AutoDelete = true, + /// Boot = true, + /// DiskType = "pd-ssd", + /// DiskSizeGb = 960, + /// Mode = "READ_WRITE", + /// }, + /// }, + /// GuestAccelerators = new[] + /// { + /// new Gcp.Compute.Inputs.RegionInstanceTemplateGuestAcceleratorArgs + /// { + /// Type = "nvidia-h100-80gb", + /// Count = 8, + /// }, + /// }, + /// ReservationAffinity = new Gcp.Compute.Inputs.RegionInstanceTemplateReservationAffinityArgs + /// { + /// Type = "NO_RESERVATION", + /// }, + /// ShieldedInstanceConfig = new Gcp.Compute.Inputs.RegionInstanceTemplateShieldedInstanceConfigArgs + /// { + /// EnableVtpm = true, + /// EnableIntegrityMonitoring = true, + /// }, + /// NetworkInterfaces = new[] + /// { + /// new Gcp.Compute.Inputs.RegionInstanceTemplateNetworkInterfaceArgs + /// { + /// Network = "default", + /// }, + /// }, + /// }); + /// + /// var a3DwsInstanceGroupManager = new Gcp.Compute.InstanceGroupManager("a3_dws", new() + /// { + /// Name = "a3-dws", + /// BaseInstanceName = "a3-dws", + /// Zone = "us-central1-a", + /// Versions = new[] + /// { + /// new Gcp.Compute.Inputs.InstanceGroupManagerVersionArgs + /// { + /// InstanceTemplate = a3Dws.SelfLink, + /// }, + /// }, + /// InstanceLifecyclePolicy = new Gcp.Compute.Inputs.InstanceGroupManagerInstanceLifecyclePolicyArgs + /// { + /// DefaultActionOnFailure = "DO_NOTHING", + /// }, + /// WaitForInstances = false, + /// }); + /// + /// var a3ResizeRequest = new Gcp.Compute.ResizeRequest("a3_resize_request", new() + /// { + /// Name = "a3-dws", + /// InstanceGroupManager = a3DwsInstanceGroupManager.Name, + /// Zone = "us-central1-a", + /// Description = "Test resize request resource", + /// ResizeBy = 2, + /// RequestedRunDuration = new Gcp.Compute.Inputs.ResizeRequestRequestedRunDurationArgs + /// { + /// Seconds = "14400", + /// Nanos = 0, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// ResizeRequest can be imported using any of these accepted formats: + /// + /// * `projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + /// + /// * `{{project}}/{{zone}}/{{instance_group_manager}}/{{name}}` + /// + /// * `{{zone}}/{{instance_group_manager}}/{{name}}` + /// + /// * `{{instance_group_manager}}/{{name}}` + /// + /// When using the `pulumi import` command, ResizeRequest can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{zone}}/{{instance_group_manager}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{instance_group_manager}}/{{name}} + /// ``` + /// + [GcpResourceType("gcp:compute/resizeRequest:ResizeRequest")] + public partial class ResizeRequest : global::Pulumi.CustomResource + { + /// + /// The creation timestamp for this resize request in RFC3339 text format. + /// + [Output("creationTimestamp")] + public Output CreationTimestamp { get; private set; } = null!; + + /// + /// An optional description of this resize-request. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + /// Authorization requires the following IAM permission on the specified resource instanceGroupManager: + /// *compute.instanceGroupManagers.update + /// + /// + /// - - - + /// + [Output("instanceGroupManager")] + public Output InstanceGroupManager { get; private set; } = null!; + + /// + /// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + /// Structure is documented below. + /// + [Output("requestedRunDuration")] + public Output RequestedRunDuration { get; private set; } = null!; + + /// + /// The number of instances to be created by this resize request. The group's target size will be increased by this number. + /// + [Output("resizeBy")] + public Output ResizeBy { get; private set; } = null!; + + /// + /// [Output only] Current state of the request. + /// + [Output("state")] + public Output State { get; private set; } = null!; + + /// + /// [Output only] Status of the request. + /// Structure is documented below. + /// + [Output("statuses")] + public Output> Statuses { get; private set; } = null!; + + /// + /// Name of the compute zone scoping this request. Name should conform to RFC1035. + /// + [Output("zone")] + public Output Zone { get; private set; } = null!; + + + /// + /// Create a ResizeRequest resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public ResizeRequest(string name, ResizeRequestArgs args, CustomResourceOptions? options = null) + : base("gcp:compute/resizeRequest:ResizeRequest", name, args ?? new ResizeRequestArgs(), MakeResourceOptions(options, "")) + { + } + + private ResizeRequest(string name, Input id, ResizeRequestState? state = null, CustomResourceOptions? options = null) + : base("gcp:compute/resizeRequest:ResizeRequest", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing ResizeRequest resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static ResizeRequest Get(string name, Input id, ResizeRequestState? state = null, CustomResourceOptions? options = null) + { + return new ResizeRequest(name, id, state, options); + } + } + + public sealed class ResizeRequestArgs : global::Pulumi.ResourceArgs + { + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + /// Authorization requires the following IAM permission on the specified resource instanceGroupManager: + /// *compute.instanceGroupManagers.update + /// + /// + /// - - - + /// + [Input("instanceGroupManager", required: true)] + public Input InstanceGroupManager { get; set; } = null!; + + /// + /// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + /// Structure is documented below. + /// + [Input("requestedRunDuration")] + public Input? RequestedRunDuration { get; set; } + + /// + /// The number of instances to be created by this resize request. The group's target size will be increased by this number. + /// + [Input("resizeBy", required: true)] + public Input ResizeBy { get; set; } = null!; + + /// + /// Name of the compute zone scoping this request. Name should conform to RFC1035. + /// + [Input("zone", required: true)] + public Input Zone { get; set; } = null!; + + public ResizeRequestArgs() + { + } + public static new ResizeRequestArgs Empty => new ResizeRequestArgs(); + } + + public sealed class ResizeRequestState : global::Pulumi.ResourceArgs + { + /// + /// The creation timestamp for this resize request in RFC3339 text format. + /// + [Input("creationTimestamp")] + public Input? CreationTimestamp { get; set; } + + /// + /// An optional description of this resize-request. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + /// Authorization requires the following IAM permission on the specified resource instanceGroupManager: + /// *compute.instanceGroupManagers.update + /// + /// + /// - - - + /// + [Input("instanceGroupManager")] + public Input? InstanceGroupManager { get; set; } + + /// + /// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. + /// + [Input("project")] + public Input? Project { get; set; } + + /// + /// Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + /// Structure is documented below. + /// + [Input("requestedRunDuration")] + public Input? RequestedRunDuration { get; set; } + + /// + /// The number of instances to be created by this resize request. The group's target size will be increased by this number. + /// + [Input("resizeBy")] + public Input? ResizeBy { get; set; } + + /// + /// [Output only] Current state of the request. + /// + [Input("state")] + public Input? State { get; set; } + + [Input("statuses")] + private InputList? _statuses; + + /// + /// [Output only] Status of the request. + /// Structure is documented below. + /// + public InputList Statuses + { + get => _statuses ?? (_statuses = new InputList()); + set => _statuses = value; + } + + /// + /// Name of the compute zone scoping this request. Name should conform to RFC1035. + /// + [Input("zone")] + public Input? Zone { get; set; } + + public ResizeRequestState() + { + } + public static new ResizeRequestState Empty => new ResizeRequestState(); + } +} diff --git a/sdk/dotnet/Compute/RouterPeer.cs b/sdk/dotnet/Compute/RouterPeer.cs index f60edda8c9..ce2d92856c 100644 --- a/sdk/dotnet/Compute/RouterPeer.cs +++ b/sdk/dotnet/Compute/RouterPeer.cs @@ -267,6 +267,192 @@ namespace Pulumi.Gcp.Compute /// }); /// ``` /// + /// ### Router Peer Export And Import Policies + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var network = new Gcp.Compute.Network("network", new() + /// { + /// Name = "my-router-net", + /// AutoCreateSubnetworks = false, + /// }); + /// + /// var subnetwork = new Gcp.Compute.Subnetwork("subnetwork", new() + /// { + /// Name = "my-router-subnet", + /// Network = network.SelfLink, + /// IpCidrRange = "10.0.0.0/16", + /// Region = "us-central1", + /// }); + /// + /// var address = new Gcp.Compute.Address("address", new() + /// { + /// Name = "my-router", + /// Region = subnetwork.Region, + /// }); + /// + /// var vpnGateway = new Gcp.Compute.HaVpnGateway("vpn_gateway", new() + /// { + /// Name = "my-router-gateway", + /// Network = network.SelfLink, + /// Region = subnetwork.Region, + /// }); + /// + /// var externalGateway = new Gcp.Compute.ExternalVpnGateway("external_gateway", new() + /// { + /// Name = "my-router-external-gateway", + /// RedundancyType = "SINGLE_IP_INTERNALLY_REDUNDANT", + /// Description = "An externally managed VPN gateway", + /// Interfaces = new[] + /// { + /// new Gcp.Compute.Inputs.ExternalVpnGatewayInterfaceArgs + /// { + /// Id = 0, + /// IpAddress = "8.8.8.8", + /// }, + /// }, + /// }); + /// + /// var router = new Gcp.Compute.Router("router", new() + /// { + /// Name = "my-router", + /// Region = subnetwork.Region, + /// Network = network.SelfLink, + /// Bgp = new Gcp.Compute.Inputs.RouterBgpArgs + /// { + /// Asn = 64514, + /// }, + /// }); + /// + /// var vpnTunnel = new Gcp.Compute.VPNTunnel("vpn_tunnel", new() + /// { + /// Name = "my-router", + /// Region = subnetwork.Region, + /// VpnGateway = vpnGateway.Id, + /// PeerExternalGateway = externalGateway.Id, + /// PeerExternalGatewayInterface = 0, + /// SharedSecret = "unguessable", + /// Router = router.Name, + /// VpnGatewayInterface = 0, + /// }); + /// + /// var routerInterface = new Gcp.Compute.RouterInterface("router_interface", new() + /// { + /// Name = "my-router", + /// Router = router.Name, + /// Region = router.Region, + /// VpnTunnel = vpnTunnel.Name, + /// }); + /// + /// var rp_export = new Gcp.Compute.RouterRoutePolicy("rp-export", new() + /// { + /// Name = "my-router-rp-export", + /// Router = router.Name, + /// Region = router.Region, + /// Type = "ROUTE_POLICY_TYPE_EXPORT", + /// Terms = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs + /// { + /// Priority = 2, + /// Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs + /// { + /// Expression = "destination == '10.0.0.0/12'", + /// Title = "export_expression", + /// Description = "acceptance expression for export", + /// }, + /// Actions = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs + /// { + /// Expression = "accept()", + /// }, + /// }, + /// }, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// routerInterface, + /// }, + /// }); + /// + /// var rp_import = new Gcp.Compute.RouterRoutePolicy("rp-import", new() + /// { + /// Name = "my-router-rp-import", + /// Router = router.Name, + /// Region = router.Region, + /// Type = "ROUTE_POLICY_TYPE_IMPORT", + /// Terms = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs + /// { + /// Priority = 1, + /// Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs + /// { + /// Expression = "destination == '10.0.0.0/12'", + /// Title = "import_expression", + /// Description = "acceptance expression for import", + /// }, + /// Actions = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs + /// { + /// Expression = "accept()", + /// }, + /// }, + /// }, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// routerInterface, + /// rp_export, + /// }, + /// }); + /// + /// var routerPeer = new Gcp.Compute.RouterPeer("router_peer", new() + /// { + /// Name = "my-router-peer", + /// Router = router.Name, + /// Region = router.Region, + /// PeerAsn = 65515, + /// AdvertisedRoutePriority = 100, + /// Interface = routerInterface.Name, + /// Md5AuthenticationKey = new Gcp.Compute.Inputs.RouterPeerMd5AuthenticationKeyArgs + /// { + /// Name = "my-router-peer-key", + /// Key = "my-router-peer-key-value", + /// }, + /// ImportPolicies = new[] + /// { + /// rp_import.Name, + /// }, + /// ExportPolicies = new[] + /// { + /// rp_export.Name, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// rp_export, + /// rp_import, + /// routerInterface, + /// }, + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// RouterBgpPeer can be imported using any of these accepted formats: @@ -350,6 +536,21 @@ public partial class RouterPeer : global::Pulumi.CustomResource [Output("bfd")] public Output Bfd { get; private set; } = null!; + /// + /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + /// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + /// + [Output("customLearnedIpRanges")] + public Output> CustomLearnedIpRanges { get; private set; } = null!; + + /// + /// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + /// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + /// priority of 100 to the ranges. + /// + [Output("customLearnedRoutePriority")] + public Output CustomLearnedRoutePriority { get; private set; } = null!; + /// /// The status of the BGP peer connection. If set to false, any active session /// with the peer is terminated and all associated routing information is removed. @@ -371,6 +572,20 @@ public partial class RouterPeer : global::Pulumi.CustomResource [Output("enableIpv6")] public Output EnableIpv6 { get; private set; } = null!; + /// + /// routers.list of export policies applied to this peer, in the order they must be evaluated. + /// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + /// + [Output("exportPolicies")] + public Output> ExportPolicies { get; private set; } = null!; + + /// + /// routers.list of import policies applied to this peer, in the order they must be evaluated. + /// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + /// + [Output("importPolicies")] + public Output> ImportPolicies { get; private set; } = null!; + /// /// Name of the interface the BGP peer is associated with. /// @@ -600,6 +815,27 @@ public InputList AdvertisedIpRanges [Input("bfd")] public Input? Bfd { get; set; } + [Input("customLearnedIpRanges")] + private InputList? _customLearnedIpRanges; + + /// + /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + /// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + /// + public InputList CustomLearnedIpRanges + { + get => _customLearnedIpRanges ?? (_customLearnedIpRanges = new InputList()); + set => _customLearnedIpRanges = value; + } + + /// + /// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + /// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + /// priority of 100 to the ranges. + /// + [Input("customLearnedRoutePriority")] + public Input? CustomLearnedRoutePriority { get; set; } + /// /// The status of the BGP peer connection. If set to false, any active session /// with the peer is terminated and all associated routing information is removed. @@ -621,6 +857,32 @@ public InputList AdvertisedIpRanges [Input("enableIpv6")] public Input? EnableIpv6 { get; set; } + [Input("exportPolicies")] + private InputList? _exportPolicies; + + /// + /// routers.list of export policies applied to this peer, in the order they must be evaluated. + /// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + /// + public InputList ExportPolicies + { + get => _exportPolicies ?? (_exportPolicies = new InputList()); + set => _exportPolicies = value; + } + + [Input("importPolicies")] + private InputList? _importPolicies; + + /// + /// routers.list of import policies applied to this peer, in the order they must be evaluated. + /// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + /// + public InputList ImportPolicies + { + get => _importPolicies ?? (_importPolicies = new InputList()); + set => _importPolicies = value; + } + /// /// Name of the interface the BGP peer is associated with. /// @@ -798,6 +1060,27 @@ public InputList AdvertisedIpRanges [Input("bfd")] public Input? Bfd { get; set; } + [Input("customLearnedIpRanges")] + private InputList? _customLearnedIpRanges; + + /// + /// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + /// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + /// + public InputList CustomLearnedIpRanges + { + get => _customLearnedIpRanges ?? (_customLearnedIpRanges = new InputList()); + set => _customLearnedIpRanges = value; + } + + /// + /// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + /// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + /// priority of 100 to the ranges. + /// + [Input("customLearnedRoutePriority")] + public Input? CustomLearnedRoutePriority { get; set; } + /// /// The status of the BGP peer connection. If set to false, any active session /// with the peer is terminated and all associated routing information is removed. @@ -819,6 +1102,32 @@ public InputList AdvertisedIpRanges [Input("enableIpv6")] public Input? EnableIpv6 { get; set; } + [Input("exportPolicies")] + private InputList? _exportPolicies; + + /// + /// routers.list of export policies applied to this peer, in the order they must be evaluated. + /// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + /// + public InputList ExportPolicies + { + get => _exportPolicies ?? (_exportPolicies = new InputList()); + set => _exportPolicies = value; + } + + [Input("importPolicies")] + private InputList? _importPolicies; + + /// + /// routers.list of import policies applied to this peer, in the order they must be evaluated. + /// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + /// + public InputList ImportPolicies + { + get => _importPolicies ?? (_importPolicies = new InputList()); + set => _importPolicies = value; + } + /// /// Name of the interface the BGP peer is associated with. /// diff --git a/sdk/dotnet/Compute/RouterRoutePolicy.cs b/sdk/dotnet/Compute/RouterRoutePolicy.cs new file mode 100644 index 0000000000..e1ebe03ba5 --- /dev/null +++ b/sdk/dotnet/Compute/RouterRoutePolicy.cs @@ -0,0 +1,357 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Compute +{ + /// + /// ## Example Usage + /// + /// ### Router Route Policy Export + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var net = new Gcp.Compute.Network("net", new() + /// { + /// Name = "my-network", + /// AutoCreateSubnetworks = false, + /// }); + /// + /// var subnet = new Gcp.Compute.Subnetwork("subnet", new() + /// { + /// Name = "my-subnetwork", + /// Network = net.Id, + /// IpCidrRange = "10.0.0.0/16", + /// Region = "us-central1", + /// }); + /// + /// var router = new Gcp.Compute.Router("router", new() + /// { + /// Name = "my-router", + /// Region = subnet.Region, + /// Network = net.Id, + /// }); + /// + /// var rp_export = new Gcp.Compute.RouterRoutePolicy("rp-export", new() + /// { + /// Router = router.Name, + /// Region = router.Region, + /// Name = "my-rp1", + /// Type = "ROUTE_POLICY_TYPE_EXPORT", + /// Terms = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs + /// { + /// Priority = 1, + /// Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs + /// { + /// Expression = "destination == '10.0.0.0/12'", + /// }, + /// Actions = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs + /// { + /// Expression = "accept()", + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// ### Router Route Policy Import + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var net = new Gcp.Compute.Network("net", new() + /// { + /// Name = "my-network", + /// AutoCreateSubnetworks = false, + /// }); + /// + /// var subnet = new Gcp.Compute.Subnetwork("subnet", new() + /// { + /// Name = "my-subnetwork", + /// Network = net.Id, + /// IpCidrRange = "10.0.0.0/16", + /// Region = "us-central1", + /// }); + /// + /// var router = new Gcp.Compute.Router("router", new() + /// { + /// Name = "my-router", + /// Region = subnet.Region, + /// Network = net.Id, + /// }); + /// + /// var rp_import = new Gcp.Compute.RouterRoutePolicy("rp-import", new() + /// { + /// Name = "my-rp2", + /// Router = router.Name, + /// Region = router.Region, + /// Type = "ROUTE_POLICY_TYPE_IMPORT", + /// Terms = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermArgs + /// { + /// Priority = 2, + /// Match = new Gcp.Compute.Inputs.RouterRoutePolicyTermMatchArgs + /// { + /// Expression = "destination == '10.0.0.0/12'", + /// }, + /// Actions = new[] + /// { + /// new Gcp.Compute.Inputs.RouterRoutePolicyTermActionArgs + /// { + /// Expression = "accept()", + /// }, + /// }, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// RouterRoutePolicy can be imported using any of these accepted formats: + /// + /// * `{{project}}/{{region}}/{{router}}/routePolicies/{{name}}` + /// + /// * `{{project}}/{{region}}/{{router}}/{{name}}` + /// + /// * `{{region}}/{{router}}/{{name}}` + /// + /// * `{{router}}/{{name}}` + /// + /// When using the `pulumi import` command, RouterRoutePolicy can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/routePolicies/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{region}}/{{router}}/{{name}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{router}}/{{name}} + /// ``` + /// + [GcpResourceType("gcp:compute/routerRoutePolicy:RouterRoutePolicy")] + public partial class RouterRoutePolicy : global::Pulumi.CustomResource + { + /// + /// The fingerprint used for optimistic locking of this resource. Used + /// internally during updates. + /// + [Output("fingerprint")] + public Output Fingerprint { get; private set; } = null!; + + /// + /// Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + [Output("project")] + public Output Project { get; private set; } = null!; + + /// + /// Region where the router and NAT reside. + /// + [Output("region")] + public Output Region { get; private set; } = null!; + + /// + /// The name of the Cloud Router in which this route policy will be configured. + /// + [Output("router")] + public Output Router { get; private set; } = null!; + + /// + /// List of terms (the order in the list is not important, they are evaluated in order of priority). + /// Structure is documented below. + /// + [Output("terms")] + public Output> Terms { get; private set; } = null!; + + /// + /// This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + /// "ROUTE_POLICY_TYPE_EXPORT"] + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + + /// + /// Create a RouterRoutePolicy resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public RouterRoutePolicy(string name, RouterRoutePolicyArgs args, CustomResourceOptions? options = null) + : base("gcp:compute/routerRoutePolicy:RouterRoutePolicy", name, args ?? new RouterRoutePolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private RouterRoutePolicy(string name, Input id, RouterRoutePolicyState? state = null, CustomResourceOptions? options = null) + : base("gcp:compute/routerRoutePolicy:RouterRoutePolicy", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing RouterRoutePolicy resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static RouterRoutePolicy Get(string name, Input id, RouterRoutePolicyState? state = null, CustomResourceOptions? options = null) + { + return new RouterRoutePolicy(name, id, state, options); + } + } + + public sealed class RouterRoutePolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("project")] + public Input? Project { get; set; } + + /// + /// Region where the router and NAT reside. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The name of the Cloud Router in which this route policy will be configured. + /// + [Input("router", required: true)] + public Input Router { get; set; } = null!; + + [Input("terms", required: true)] + private InputList? _terms; + + /// + /// List of terms (the order in the list is not important, they are evaluated in order of priority). + /// Structure is documented below. + /// + public InputList Terms + { + get => _terms ?? (_terms = new InputList()); + set => _terms = value; + } + + /// + /// This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + /// "ROUTE_POLICY_TYPE_EXPORT"] + /// + [Input("type")] + public Input? Type { get; set; } + + public RouterRoutePolicyArgs() + { + } + public static new RouterRoutePolicyArgs Empty => new RouterRoutePolicyArgs(); + } + + public sealed class RouterRoutePolicyState : global::Pulumi.ResourceArgs + { + /// + /// The fingerprint used for optimistic locking of this resource. Used + /// internally during updates. + /// + [Input("fingerprint")] + public Input? Fingerprint { get; set; } + + /// + /// Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + /// + [Input("name")] + public Input? Name { get; set; } + + [Input("project")] + public Input? Project { get; set; } + + /// + /// Region where the router and NAT reside. + /// + [Input("region")] + public Input? Region { get; set; } + + /// + /// The name of the Cloud Router in which this route policy will be configured. + /// + [Input("router")] + public Input? Router { get; set; } + + [Input("terms")] + private InputList? _terms; + + /// + /// List of terms (the order in the list is not important, they are evaluated in order of priority). + /// Structure is documented below. + /// + public InputList Terms + { + get => _terms ?? (_terms = new InputList()); + set => _terms = value; + } + + /// + /// This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + /// "ROUTE_POLICY_TYPE_EXPORT"] + /// + [Input("type")] + public Input? Type { get; set; } + + public RouterRoutePolicyState() + { + } + public static new RouterRoutePolicyState Empty => new RouterRoutePolicyState(); + } +} diff --git a/sdk/dotnet/Compute/ServiceAttachment.cs b/sdk/dotnet/Compute/ServiceAttachment.cs index fd6dba0d56..e27941b0f8 100644 --- a/sdk/dotnet/Compute/ServiceAttachment.cs +++ b/sdk/dotnet/Compute/ServiceAttachment.cs @@ -590,8 +590,7 @@ public partial class ServiceAttachment : global::Pulumi.CustomResource public Output SelfLink { get; private set; } = null!; /// - /// The URL of a forwarding rule that represents the service identified by - /// this service attachment. + /// The URL of a service serving the endpoint identified by this service attachment. /// [Output("targetService")] public Output TargetService { get; private set; } = null!; @@ -753,8 +752,7 @@ public InputList NatSubnets public Input? Region { get; set; } /// - /// The URL of a forwarding rule that represents the service identified by - /// this service attachment. + /// The URL of a service serving the endpoint identified by this service attachment. /// [Input("targetService", required: true)] public Input TargetService { get; set; } = null!; @@ -905,8 +903,7 @@ public InputList NatSubnets public Input? SelfLink { get; set; } /// - /// The URL of a forwarding rule that represents the service identified by - /// this service attachment. + /// The URL of a service serving the endpoint identified by this service attachment. /// [Input("targetService")] public Input? TargetService { get; set; } diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs index 0c2e1b6083..0873f5582a 100644 --- a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigArgs.cs @@ -113,12 +113,36 @@ public sealed class ClusterAddonsConfigArgs : global::Pulumi.ResourceArgs [Input("networkPolicyConfig")] public Input? NetworkPolicyConfig { get; set; } + [Input("rayOperatorConfigs")] + private InputList? _rayOperatorConfigs; + + /// + /// . The status of the [Ray Operator + /// addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + /// It is disabled by default. Set `enabled = true` to enable. The minimum + /// cluster version to enable Ray is 1.30.0-gke.1747000. + /// + /// Ray Operator config has optional subfields + /// `ray_cluster_logging_config.enabled` and + /// `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + /// and monitoring respectively. See [Collect and view logs and metrics for Ray + /// clusters on + /// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + /// for more information. + /// + /// + /// This example `addons_config` disables two addons: + /// + public InputList RayOperatorConfigs + { + get => _rayOperatorConfigs ?? (_rayOperatorConfigs = new InputList()); + set => _rayOperatorConfigs = value; + } + /// /// . /// The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. /// It is disabled by default for Standard clusters. Set `enabled = true` to enable. - /// - /// This example `addons_config` disables two addons: /// [Input("statefulHaConfig")] public Input? StatefulHaConfig { get; set; } diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs index fd185befbf..607673141b 100644 --- a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigGetArgs.cs @@ -113,12 +113,36 @@ public sealed class ClusterAddonsConfigGetArgs : global::Pulumi.ResourceArgs [Input("networkPolicyConfig")] public Input? NetworkPolicyConfig { get; set; } + [Input("rayOperatorConfigs")] + private InputList? _rayOperatorConfigs; + + /// + /// . The status of the [Ray Operator + /// addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + /// It is disabled by default. Set `enabled = true` to enable. The minimum + /// cluster version to enable Ray is 1.30.0-gke.1747000. + /// + /// Ray Operator config has optional subfields + /// `ray_cluster_logging_config.enabled` and + /// `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + /// and monitoring respectively. See [Collect and view logs and metrics for Ray + /// clusters on + /// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + /// for more information. + /// + /// + /// This example `addons_config` disables two addons: + /// + public InputList RayOperatorConfigs + { + get => _rayOperatorConfigs ?? (_rayOperatorConfigs = new InputList()); + set => _rayOperatorConfigs = value; + } + /// /// . /// The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. /// It is disabled by default for Standard clusters. Set `enabled = true` to enable. - /// - /// This example `addons_config` disables two addons: /// [Input("statefulHaConfig")] public Input? StatefulHaConfig { get; set; } diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigArgs.cs new file mode 100644 index 0000000000..28ec5f9e43 --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigRayOperatorConfigArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + /// + /// The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + /// + [Input("rayClusterLoggingConfig")] + public Input? RayClusterLoggingConfig { get; set; } + + /// + /// The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + /// + [Input("rayClusterMonitoringConfig")] + public Input? RayClusterMonitoringConfig { get; set; } + + public ClusterAddonsConfigRayOperatorConfigArgs() + { + } + public static new ClusterAddonsConfigRayOperatorConfigArgs Empty => new ClusterAddonsConfigRayOperatorConfigArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigGetArgs.cs new file mode 100644 index 0000000000..0af2cb6ee9 --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigGetArgs.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigRayOperatorConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + /// + /// The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + /// + [Input("rayClusterLoggingConfig")] + public Input? RayClusterLoggingConfig { get; set; } + + /// + /// The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + /// + [Input("rayClusterMonitoringConfig")] + public Input? RayClusterMonitoringConfig { get; set; } + + public ClusterAddonsConfigRayOperatorConfigGetArgs() + { + } + public static new ClusterAddonsConfigRayOperatorConfigGetArgs Empty => new ClusterAddonsConfigRayOperatorConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs.cs new file mode 100644 index 0000000000..ee49f5f60c --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + public ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs() + { + } + public static new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs Empty => new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigGetArgs.cs new file mode 100644 index 0000000000..a5285f39af --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigGetArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + public ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigGetArgs() + { + } + public static new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigGetArgs Empty => new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs.cs new file mode 100644 index 0000000000..5adf15a8b2 --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + public ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs() + { + } + public static new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs Empty => new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigGetArgs.cs new file mode 100644 index 0000000000..25bb31e04c --- /dev/null +++ b/sdk/dotnet/Container/Inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigGetArgs.cs @@ -0,0 +1,23 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Inputs +{ + + public sealed class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigGetArgs : global::Pulumi.ResourceArgs + { + [Input("enabled", required: true)] + public Input Enabled { get; set; } = null!; + + public ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigGetArgs() + { + } + public static new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigGetArgs Empty => new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigArgs.cs b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigArgs.cs index 4970ae3ca6..f1d7dcf9d2 100644 --- a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigArgs.cs +++ b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigArgs.cs @@ -211,7 +211,10 @@ public InputList OauthScopes public Input? Preemptible { get; set; } /// - /// The reservation affinity configuration for the node pool. + /// The configuration of the desired reservation which instances could take capacity from. + /// Structure is documented below. + /// + /// <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): /// [Input("reservationAffinity")] public Input? ReservationAffinity { get; set; } diff --git a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigGetArgs.cs b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigGetArgs.cs index d99e726a71..9370fcb3dc 100644 --- a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigGetArgs.cs +++ b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigGetArgs.cs @@ -211,7 +211,10 @@ public InputList OauthScopes public Input? Preemptible { get; set; } /// - /// The reservation affinity configuration for the node pool. + /// The configuration of the desired reservation which instances could take capacity from. + /// Structure is documented below. + /// + /// <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): /// [Input("reservationAffinity")] public Input? ReservationAffinity { get; set; } diff --git a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityArgs.cs b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityArgs.cs index 645ff40e08..771dc6feaa 100644 --- a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityArgs.cs +++ b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityArgs.cs @@ -13,13 +13,19 @@ namespace Pulumi.Gcp.Container.Inputs public sealed class NodePoolNodeConfigReservationAffinityArgs : global::Pulumi.ResourceArgs { /// - /// Corresponds to the type of reservation consumption. + /// The type of reservation consumption + /// Accepted values are: + /// + /// * `"UNSPECIFIED"`: Default value. This should not be used. + /// * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + /// * `"ANY_RESERVATION"`: Consume any reservation available. + /// * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. /// [Input("consumeReservationType", required: true)] public Input ConsumeReservationType { get; set; } = null!; /// - /// The label key of a reservation resource. + /// 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. /// [Input("key")] public Input? Key { get; set; } @@ -28,7 +34,7 @@ public sealed class NodePoolNodeConfigReservationAffinityArgs : global::Pulumi.R private InputList? _values; /// - /// The label values of the reservation resource. + /// 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" /// public InputList Values { diff --git a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityGetArgs.cs b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityGetArgs.cs index 8cf007945e..2cf9a1f482 100644 --- a/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityGetArgs.cs +++ b/sdk/dotnet/Container/Inputs/NodePoolNodeConfigReservationAffinityGetArgs.cs @@ -13,13 +13,19 @@ namespace Pulumi.Gcp.Container.Inputs public sealed class NodePoolNodeConfigReservationAffinityGetArgs : global::Pulumi.ResourceArgs { /// - /// Corresponds to the type of reservation consumption. + /// The type of reservation consumption + /// Accepted values are: + /// + /// * `"UNSPECIFIED"`: Default value. This should not be used. + /// * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + /// * `"ANY_RESERVATION"`: Consume any reservation available. + /// * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. /// [Input("consumeReservationType", required: true)] public Input ConsumeReservationType { get; set; } = null!; /// - /// The label key of a reservation resource. + /// 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. /// [Input("key")] public Input? Key { get; set; } @@ -28,7 +34,7 @@ public sealed class NodePoolNodeConfigReservationAffinityGetArgs : global::Pulum private InputList? _values; /// - /// The label values of the reservation resource. + /// 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" /// public InputList Values { diff --git a/sdk/dotnet/Container/NodePool.cs b/sdk/dotnet/Container/NodePool.cs index e7c9aab430..d1a42bdaff 100644 --- a/sdk/dotnet/Container/NodePool.cs +++ b/sdk/dotnet/Container/NodePool.cs @@ -277,8 +277,6 @@ public partial class NodePool : global::Pulumi.CustomResource /// /// Specifies node pool-level settings of queued provisioning. /// Structure is documented below. - /// - /// <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): /// [Output("queuedProvisioning")] public Output QueuedProvisioning { get; private set; } = null!; @@ -471,8 +469,6 @@ public InputList NodeLocations /// /// Specifies node pool-level settings of queued provisioning. /// Structure is documented below. - /// - /// <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): /// [Input("queuedProvisioning")] public Input? QueuedProvisioning { get; set; } @@ -654,8 +650,6 @@ public InputList NodeLocations /// /// Specifies node pool-level settings of queued provisioning. /// Structure is documented below. - /// - /// <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): /// [Input("queuedProvisioning")] public Input? QueuedProvisioning { get; set; } diff --git a/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs b/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs index 5174cc95db..b569a31f84 100644 --- a/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs +++ b/sdk/dotnet/Container/Outputs/ClusterAddonsConfig.cs @@ -91,11 +91,27 @@ public sealed class ClusterAddonsConfig /// public readonly Outputs.ClusterAddonsConfigNetworkPolicyConfig? NetworkPolicyConfig; /// + /// . The status of the [Ray Operator + /// addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + /// It is disabled by default. Set `enabled = true` to enable. The minimum + /// cluster version to enable Ray is 1.30.0-gke.1747000. + /// + /// Ray Operator config has optional subfields + /// `ray_cluster_logging_config.enabled` and + /// `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + /// and monitoring respectively. See [Collect and view logs and metrics for Ray + /// clusters on + /// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + /// for more information. + /// + /// + /// This example `addons_config` disables two addons: + /// + public readonly ImmutableArray RayOperatorConfigs; + /// /// . /// The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. /// It is disabled by default for Standard clusters. Set `enabled = true` to enable. - /// - /// This example `addons_config` disables two addons: /// public readonly Outputs.ClusterAddonsConfigStatefulHaConfig? StatefulHaConfig; @@ -125,6 +141,8 @@ private ClusterAddonsConfig( Outputs.ClusterAddonsConfigNetworkPolicyConfig? networkPolicyConfig, + ImmutableArray rayOperatorConfigs, + Outputs.ClusterAddonsConfigStatefulHaConfig? statefulHaConfig) { CloudrunConfig = cloudrunConfig; @@ -139,6 +157,7 @@ private ClusterAddonsConfig( IstioConfig = istioConfig; KalmConfig = kalmConfig; NetworkPolicyConfig = networkPolicyConfig; + RayOperatorConfigs = rayOperatorConfigs; StatefulHaConfig = statefulHaConfig; } } diff --git a/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfig.cs b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfig.cs new file mode 100644 index 0000000000..4e3b38abee --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfig.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterAddonsConfigRayOperatorConfig + { + public readonly bool Enabled; + /// + /// The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + /// + public readonly Outputs.ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig? RayClusterLoggingConfig; + /// + /// The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + /// + public readonly Outputs.ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig? RayClusterMonitoringConfig; + + [OutputConstructor] + private ClusterAddonsConfigRayOperatorConfig( + bool enabled, + + Outputs.ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig? rayClusterLoggingConfig, + + Outputs.ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig? rayClusterMonitoringConfig) + { + Enabled = enabled; + RayClusterLoggingConfig = rayClusterLoggingConfig; + RayClusterMonitoringConfig = rayClusterMonitoringConfig; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.cs b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.cs new file mode 100644 index 0000000000..9ca946b090 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig + { + public readonly bool Enabled; + + [OutputConstructor] + private ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig(bool enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.cs b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.cs new file mode 100644 index 0000000000..555e660614 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig + { + public readonly bool Enabled; + + [OutputConstructor] + private ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig(bool enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult.cs new file mode 100644 index 0000000000..31e11bef6a --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult + { + public readonly bool Enabled; + + [OutputConstructor] + private GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult(bool enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult.cs new file mode 100644 index 0000000000..b5ec522e69 --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult.cs @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult + { + public readonly bool Enabled; + + [OutputConstructor] + private GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult(bool enabled) + { + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigResult.cs new file mode 100644 index 0000000000..15c452e98f --- /dev/null +++ b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigRayOperatorConfigResult.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Container.Outputs +{ + + [OutputType] + public sealed class GetClusterAddonsConfigRayOperatorConfigResult + { + public readonly bool Enabled; + /// + /// The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + /// + public readonly ImmutableArray RayClusterLoggingConfigs; + /// + /// The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + /// + public readonly ImmutableArray RayClusterMonitoringConfigs; + + [OutputConstructor] + private GetClusterAddonsConfigRayOperatorConfigResult( + bool enabled, + + ImmutableArray rayClusterLoggingConfigs, + + ImmutableArray rayClusterMonitoringConfigs) + { + Enabled = enabled; + RayClusterLoggingConfigs = rayClusterLoggingConfigs; + RayClusterMonitoringConfigs = rayClusterMonitoringConfigs; + } + } +} diff --git a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs index 8980eb81ab..ec3db350ce 100644 --- a/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs +++ b/sdk/dotnet/Container/Outputs/GetClusterAddonsConfigResult.cs @@ -62,6 +62,10 @@ public sealed class GetClusterAddonsConfigResult /// public readonly ImmutableArray NetworkPolicyConfigs; /// + /// 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. + /// + public readonly ImmutableArray RayOperatorConfigs; + /// /// The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. /// public readonly ImmutableArray StatefulHaConfigs; @@ -92,6 +96,8 @@ private GetClusterAddonsConfigResult( ImmutableArray networkPolicyConfigs, + ImmutableArray rayOperatorConfigs, + ImmutableArray statefulHaConfigs) { CloudrunConfigs = cloudrunConfigs; @@ -106,6 +112,7 @@ private GetClusterAddonsConfigResult( IstioConfigs = istioConfigs; KalmConfigs = kalmConfigs; NetworkPolicyConfigs = networkPolicyConfigs; + RayOperatorConfigs = rayOperatorConfigs; StatefulHaConfigs = statefulHaConfigs; } } diff --git a/sdk/dotnet/Container/Outputs/NodePoolNodeConfig.cs b/sdk/dotnet/Container/Outputs/NodePoolNodeConfig.cs index 8e3d42bc54..f8486c5fa9 100644 --- a/sdk/dotnet/Container/Outputs/NodePoolNodeConfig.cs +++ b/sdk/dotnet/Container/Outputs/NodePoolNodeConfig.cs @@ -126,7 +126,10 @@ public sealed class NodePoolNodeConfig /// public readonly bool? Preemptible; /// - /// The reservation affinity configuration for the node pool. + /// The configuration of the desired reservation which instances could take capacity from. + /// Structure is documented below. + /// + /// <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): /// public readonly Outputs.NodePoolNodeConfigReservationAffinity? ReservationAffinity; /// diff --git a/sdk/dotnet/Container/Outputs/NodePoolNodeConfigReservationAffinity.cs b/sdk/dotnet/Container/Outputs/NodePoolNodeConfigReservationAffinity.cs index 711ad18245..64add3b87f 100644 --- a/sdk/dotnet/Container/Outputs/NodePoolNodeConfigReservationAffinity.cs +++ b/sdk/dotnet/Container/Outputs/NodePoolNodeConfigReservationAffinity.cs @@ -14,15 +14,21 @@ namespace Pulumi.Gcp.Container.Outputs public sealed class NodePoolNodeConfigReservationAffinity { /// - /// Corresponds to the type of reservation consumption. + /// The type of reservation consumption + /// Accepted values are: + /// + /// * `"UNSPECIFIED"`: Default value. This should not be used. + /// * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + /// * `"ANY_RESERVATION"`: Consume any reservation available. + /// * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. /// public readonly string ConsumeReservationType; /// - /// The label key of a reservation resource. + /// 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. /// public readonly string? Key; /// - /// The label values of the reservation resource. + /// 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" /// public readonly ImmutableArray Values; diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetArgs.cs index 806db9d20c..2cb67488a7 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetArgs.cs @@ -26,6 +26,13 @@ public sealed class PreventionDiscoveryConfigTargetArgs : global::Pulumi.Resourc [Input("cloudSqlTarget")] public Input? CloudSqlTarget { get; set; } + /// + /// Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + /// Structure is documented below. + /// + [Input("cloudStorageTarget")] + public Input? CloudStorageTarget { get; set; } + /// /// 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. /// diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.cs index 2f2cd9dd66..f672c84a64 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs : global::Pulumi.ResourceArgs { /// - /// A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + /// 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. /// [Input("createdAfter")] public Input? CreatedAfter { get; set; } diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsGetArgs.cs index 3103864fc0..7d43b5978c 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsGetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetBigQueryTargetConditionsGetArgs : global::Pulumi.ResourceArgs { /// - /// A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + /// 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. /// [Input("createdAfter")] public Input? CreatedAfter { get; set; } diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.cs index 4c205a6188..dbc127b4cc 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.cs @@ -16,7 +16,7 @@ public sealed class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesInc private InputList? _patterns; /// - /// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. /// Structure is documented below. /// public InputList Patterns diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesGetArgs.cs index 2a6cee5f00..0e9d00af38 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesGetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesGetArgs.cs @@ -16,7 +16,7 @@ public sealed class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesInc private InputList? _patterns; /// - /// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. /// Structure is documented below. /// public InputList Patterns diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs.cs index 57e895a4d0..1d4d7d7622 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs : global::Pulumi.ResourceArgs { /// - /// A specific set of database resources for this filter to apply to. + /// A specific set of buckets for this filter to apply to. /// Structure is documented below. /// [Input("collection")] @@ -27,7 +27,7 @@ public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs : gl public Input? DatabaseResourceReference { get; set; } /// - /// Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + /// Match discovery resources not covered by any other filter. /// [Input("others")] public Input? Others { get; set; } diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs.cs index 8b43bb8bbe..e82bd80993 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs : global::Pulumi.ResourceArgs { /// - /// A collection of regular expressions to match a database resource against. + /// A collection of regular expressions to match a file store against. /// Structure is documented below. /// [Input("includeRegexes")] diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionGetArgs.cs index 5d2f92ad53..d986112b61 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionGetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionGetArgs : global::Pulumi.ResourceArgs { /// - /// A collection of regular expressions to match a database resource against. + /// A collection of regular expressions to match a file store against. /// Structure is documented below. /// [Input("includeRegexes")] diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs.cs index e196f7c5c1..9e83537fc6 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs.cs @@ -16,7 +16,7 @@ public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectio private InputList? _patterns; /// - /// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. /// Structure is documented below. /// public InputList Patterns diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesGetArgs.cs index 8132f0ed32..7102649d0b 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesGetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesGetArgs.cs @@ -16,7 +16,7 @@ public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectio private InputList? _patterns; /// - /// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. /// Structure is documented below. /// public InputList Patterns diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterGetArgs.cs index cd27d01d14..4e6adc9a5a 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterGetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterGetArgs : global::Pulumi.ResourceArgs { /// - /// A specific set of database resources for this filter to apply to. + /// A specific set of buckets for this filter to apply to. /// Structure is documented below. /// [Input("collection")] @@ -27,7 +27,7 @@ public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterGetArgs : public Input? DatabaseResourceReference { get; set; } /// - /// Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + /// Match discovery resources not covered by any other filter. /// [Input("others")] public Input? Others { get; set; } diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgs.cs index 6b9196943f..2970a7dd4b 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgs : global::Pulumi.ResourceArgs { /// - /// Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + /// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. /// [Input("refreshFrequency")] diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceGetArgs.cs index 2d5ae5b15e..09981677d4 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceGetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.DataLoss.Inputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceGetArgs : global::Pulumi.ResourceArgs { /// - /// Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + /// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. /// [Input("refreshFrequency")] diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetArgs.cs new file mode 100644 index 0000000000..b347abe2e8 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetArgs : global::Pulumi.ResourceArgs + { + /// + /// In addition to matching the filter, these conditions must be true before a profile is generated. + /// Structure is documented below. + /// + [Input("conditions")] + public Input? Conditions { get; set; } + + /// + /// Disable profiling for buckets that match this filter. + /// + [Input("disabled")] + public Input? Disabled { get; set; } + + /// + /// The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + /// Structure is documented below. + /// + [Input("filter", required: true)] + public Input Filter { get; set; } = null!; + + /// + /// 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. + /// Structure is documented below. + /// + [Input("generationCadence")] + public Input? GenerationCadence { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs.cs new file mode 100644 index 0000000000..32462fa24d --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs : global::Pulumi.ResourceArgs + { + /// + /// Cloud Storage conditions. + /// Structure is documented below. + /// + [Input("cloudStorageConditions")] + public Input? CloudStorageConditions { get; set; } + + /// + /// 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. + /// + [Input("createdAfter")] + public Input? CreatedAfter { get; set; } + + /// + /// Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + /// + [Input("minAge")] + public Input? MinAge { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs.cs new file mode 100644 index 0000000000..ed0c730765 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs : global::Pulumi.ResourceArgs + { + [Input("includedBucketAttributes")] + private InputList? _includedBucketAttributes; + + /// + /// Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + /// Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + /// + public InputList IncludedBucketAttributes + { + get => _includedBucketAttributes ?? (_includedBucketAttributes = new InputList()); + set => _includedBucketAttributes = value; + } + + [Input("includedObjectAttributes")] + private InputList? _includedObjectAttributes; + + /// + /// 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. + /// Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + /// + public InputList IncludedObjectAttributes + { + get => _includedObjectAttributes ?? (_includedObjectAttributes = new InputList()); + set => _includedObjectAttributes = value; + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsGetArgs.cs new file mode 100644 index 0000000000..f3c8c9de12 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsGetArgs.cs @@ -0,0 +1,46 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsGetArgs : global::Pulumi.ResourceArgs + { + [Input("includedBucketAttributes")] + private InputList? _includedBucketAttributes; + + /// + /// Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + /// Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + /// + public InputList IncludedBucketAttributes + { + get => _includedBucketAttributes ?? (_includedBucketAttributes = new InputList()); + set => _includedBucketAttributes = value; + } + + [Input("includedObjectAttributes")] + private InputList? _includedObjectAttributes; + + /// + /// 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. + /// Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + /// + public InputList IncludedObjectAttributes + { + get => _includedObjectAttributes ?? (_includedObjectAttributes = new InputList()); + set => _includedObjectAttributes = value; + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsGetArgs.cs new file mode 100644 index 0000000000..15634ebf84 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Cloud Storage conditions. + /// Structure is documented below. + /// + [Input("cloudStorageConditions")] + public Input? CloudStorageConditions { get; set; } + + /// + /// 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. + /// + [Input("createdAfter")] + public Input? CreatedAfter { get; set; } + + /// + /// Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + /// + [Input("minAge")] + public Input? MinAge { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetConditionsGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs.cs new file mode 100644 index 0000000000..4025533190 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs : global::Pulumi.ResourceArgs + { + public PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledGetArgs.cs new file mode 100644 index 0000000000..f972e66a75 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledGetArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetDisabledGetArgs : global::Pulumi.ResourceArgs + { + public PreventionDiscoveryConfigTargetCloudStorageTargetDisabledGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetDisabledGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetDisabledGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs.cs new file mode 100644 index 0000000000..1275ccc081 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// Structure is documented below. + /// + [Input("cloudStorageResourceReference")] + public Input? CloudStorageResourceReference { get; set; } + + /// + /// A specific set of buckets for this filter to apply to. + /// Structure is documented below. + /// + [Input("collection")] + public Input? Collection { get; set; } + + /// + /// Match discovery resources not covered by any other filter. + /// + [Input("others")] + public Input? Others { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs.cs new file mode 100644 index 0000000000..6c423e9aae --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs : global::Pulumi.ResourceArgs + { + /// + /// The bucket to scan. + /// + [Input("bucketName")] + public Input? BucketName { get; set; } + + /// + /// If within a project-level config, then this must match the config's project id. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceGetArgs.cs new file mode 100644 index 0000000000..dbce891221 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The bucket to scan. + /// + [Input("bucketName")] + public Input? BucketName { get; set; } + + /// + /// If within a project-level config, then this must match the config's project id. + /// + [Input("projectId")] + public Input? ProjectId { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs.cs new file mode 100644 index 0000000000..1ffc61aa18 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs : global::Pulumi.ResourceArgs + { + /// + /// A collection of regular expressions to match a file store against. + /// Structure is documented below. + /// + [Input("includeRegexes")] + public Input? IncludeRegexes { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionGetArgs.cs new file mode 100644 index 0000000000..e15a94dd9c --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionGetArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionGetArgs : global::Pulumi.ResourceArgs + { + /// + /// A collection of regular expressions to match a file store against. + /// Structure is documented below. + /// + [Input("includeRegexes")] + public Input? IncludeRegexes { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs.cs new file mode 100644 index 0000000000..d6c3c07d9d --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs : global::Pulumi.ResourceArgs + { + [Input("patterns")] + private InputList? _patterns; + + /// + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + /// Structure is documented below. + /// + public InputList Patterns + { + get => _patterns ?? (_patterns = new InputList()); + set => _patterns = value; + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesGetArgs.cs new file mode 100644 index 0000000000..41014440fe --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesGetArgs : global::Pulumi.ResourceArgs + { + [Input("patterns")] + private InputList? _patterns; + + /// + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + /// Structure is documented below. + /// + public InputList Patterns + { + get => _patterns ?? (_patterns = new InputList()); + set => _patterns = value; + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs.cs new file mode 100644 index 0000000000..ebdb352335 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs : global::Pulumi.ResourceArgs + { + /// + /// Regex for Cloud Storage. + /// Structure is documented below. + /// + [Input("cloudStorageRegex")] + public Input? CloudStorageRegex { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs.cs new file mode 100644 index 0000000000..3e7035d89f --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("bucketNameRegex")] + public Input? BucketNameRegex { get; set; } + + /// + /// For organizations, if unset, will match all projects. + /// + [Input("projectIdRegex")] + public Input? ProjectIdRegex { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexGetArgs.cs new file mode 100644 index 0000000000..4a8554b35d --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexGetArgs.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexGetArgs : global::Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("bucketNameRegex")] + public Input? BucketNameRegex { get; set; } + + /// + /// For organizations, if unset, will match all projects. + /// + [Input("projectIdRegex")] + public Input? ProjectIdRegex { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternGetArgs.cs new file mode 100644 index 0000000000..e6213df5c1 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternGetArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Regex for Cloud Storage. + /// Structure is documented below. + /// + [Input("cloudStorageRegex")] + public Input? CloudStorageRegex { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterGetArgs.cs new file mode 100644 index 0000000000..b32603973f --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterGetArgs.cs @@ -0,0 +1,40 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterGetArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// Structure is documented below. + /// + [Input("cloudStorageResourceReference")] + public Input? CloudStorageResourceReference { get; set; } + + /// + /// A specific set of buckets for this filter to apply to. + /// Structure is documented below. + /// + [Input("collection")] + public Input? Collection { get; set; } + + /// + /// Match discovery resources not covered by any other filter. + /// + [Input("others")] + public Input? Others { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs.cs new file mode 100644 index 0000000000..4111c49a3a --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs : global::Pulumi.ResourceArgs + { + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersGetArgs.cs new file mode 100644 index 0000000000..988699fc18 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersGetArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersGetArgs : global::Pulumi.ResourceArgs + { + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs.cs new file mode 100644 index 0000000000..f9f2675536 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// Structure is documented below. + /// + [Input("inspectTemplateModifiedCadence")] + public Input? InspectTemplateModifiedCadence { get; set; } + + /// + /// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + /// + [Input("refreshFrequency")] + public Input? RefreshFrequency { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceGetArgs.cs new file mode 100644 index 0000000000..b2e7fcf757 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceGetArgs.cs @@ -0,0 +1,34 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceGetArgs : global::Pulumi.ResourceArgs + { + /// + /// 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. + /// Structure is documented below. + /// + [Input("inspectTemplateModifiedCadence")] + public Input? InspectTemplateModifiedCadence { get; set; } + + /// + /// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + /// + [Input("refreshFrequency")] + public Input? RefreshFrequency { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs.cs new file mode 100644 index 0000000000..75ff8db5b8 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs : global::Pulumi.ResourceArgs + { + /// + /// How frequently data profiles can be updated when the template is modified. Defaults to never. + /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + /// + [Input("frequency")] + public Input? Frequency { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceGetArgs.cs new file mode 100644 index 0000000000..822add570f --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceGetArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceGetArgs : global::Pulumi.ResourceArgs + { + /// + /// How frequently data profiles can be updated when the template is modified. Defaults to never. + /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + /// + [Input("frequency")] + public Input? Frequency { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGetArgs.cs new file mode 100644 index 0000000000..2b9fd6f5c9 --- /dev/null +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGetArgs.cs @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Inputs +{ + + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetGetArgs : global::Pulumi.ResourceArgs + { + /// + /// In addition to matching the filter, these conditions must be true before a profile is generated. + /// Structure is documented below. + /// + [Input("conditions")] + public Input? Conditions { get; set; } + + /// + /// Disable profiling for buckets that match this filter. + /// + [Input("disabled")] + public Input? Disabled { get; set; } + + /// + /// The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + /// Structure is documented below. + /// + [Input("filter", required: true)] + public Input Filter { get; set; } = null!; + + /// + /// 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. + /// Structure is documented below. + /// + [Input("generationCadence")] + public Input? GenerationCadence { get; set; } + + public PreventionDiscoveryConfigTargetCloudStorageTargetGetArgs() + { + } + public static new PreventionDiscoveryConfigTargetCloudStorageTargetGetArgs Empty => new PreventionDiscoveryConfigTargetCloudStorageTargetGetArgs(); + } +} diff --git a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetGetArgs.cs b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetGetArgs.cs index d3fcdf7b30..2fd96016b9 100644 --- a/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetGetArgs.cs +++ b/sdk/dotnet/DataLoss/Inputs/PreventionDiscoveryConfigTargetGetArgs.cs @@ -26,6 +26,13 @@ public sealed class PreventionDiscoveryConfigTargetGetArgs : global::Pulumi.Reso [Input("cloudSqlTarget")] public Input? CloudSqlTarget { get; set; } + /// + /// Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + /// Structure is documented below. + /// + [Input("cloudStorageTarget")] + public Input? CloudStorageTarget { get; set; } + /// /// 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. /// diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTarget.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTarget.cs index 0f3bd23fdf..0d41a8d6c6 100644 --- a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTarget.cs +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTarget.cs @@ -24,6 +24,11 @@ public sealed class PreventionDiscoveryConfigTarget /// public readonly Outputs.PreventionDiscoveryConfigTargetCloudSqlTarget? CloudSqlTarget; /// + /// Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTarget? CloudStorageTarget; + /// /// 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. /// public readonly Outputs.PreventionDiscoveryConfigTargetSecretsTarget? SecretsTarget; @@ -34,10 +39,13 @@ private PreventionDiscoveryConfigTarget( Outputs.PreventionDiscoveryConfigTargetCloudSqlTarget? cloudSqlTarget, + Outputs.PreventionDiscoveryConfigTargetCloudStorageTarget? cloudStorageTarget, + Outputs.PreventionDiscoveryConfigTargetSecretsTarget? secretsTarget) { BigQueryTarget = bigQueryTarget; CloudSqlTarget = cloudSqlTarget; + CloudStorageTarget = cloudStorageTarget; SecretsTarget = secretsTarget; } } diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.cs index dc2287956c..b3715392e5 100644 --- a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.cs +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.DataLoss.Outputs public sealed class PreventionDiscoveryConfigTargetBigQueryTargetConditions { /// - /// A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + /// 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. /// public readonly string? CreatedAfter; /// diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.cs index afc5269f2c..f415bb39d1 100644 --- a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.cs +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.DataLoss.Outputs public sealed class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes { /// - /// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. /// Structure is documented below. /// public readonly ImmutableArray Patterns; diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.cs index 7e90482d07..e9a892d666 100644 --- a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.cs +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.DataLoss.Outputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilter { /// - /// A specific set of database resources for this filter to apply to. + /// A specific set of buckets for this filter to apply to. /// Structure is documented below. /// public readonly Outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection? Collection; @@ -24,7 +24,7 @@ public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilter /// public readonly Outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference? DatabaseResourceReference; /// - /// Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + /// Match discovery resources not covered by any other filter. /// public readonly Outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers? Others; diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.cs index 667c2375d7..b8ea9fb9fa 100644 --- a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.cs +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.DataLoss.Outputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection { /// - /// A collection of regular expressions to match a database resource against. + /// A collection of regular expressions to match a file store against. /// Structure is documented below. /// public readonly Outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes? IncludeRegexes; diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.cs index 868c798e7d..7c83e9a77e 100644 --- a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.cs +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.DataLoss.Outputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes { /// - /// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. /// Structure is documented below. /// public readonly ImmutableArray Patterns; diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.cs index f14726b938..2809a35d7a 100644 --- a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.cs +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.DataLoss.Outputs public sealed class PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence { /// - /// Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + /// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. /// public readonly string? RefreshFrequency; diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTarget.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTarget.cs new file mode 100644 index 0000000000..36a8d0705a --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTarget.cs @@ -0,0 +1,52 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTarget + { + /// + /// In addition to matching the filter, these conditions must be true before a profile is generated. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditions? Conditions; + /// + /// Disable profiling for buckets that match this filter. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetDisabled? Disabled; + /// + /// The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilter Filter; + /// + /// 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. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence? GenerationCadence; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTarget( + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditions? conditions, + + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetDisabled? disabled, + + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilter filter, + + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence? generationCadence) + { + Conditions = conditions; + Disabled = disabled; + Filter = filter; + GenerationCadence = generationCadence; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditions.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditions.cs new file mode 100644 index 0000000000..ef6bad948b --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditions.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetConditions + { + /// + /// Cloud Storage conditions. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions? CloudStorageConditions; + /// + /// 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. + /// + public readonly string? CreatedAfter; + /// + /// Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + /// + public readonly string? MinAge; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetConditions( + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions? cloudStorageConditions, + + string? createdAfter, + + string? minAge) + { + CloudStorageConditions = cloudStorageConditions; + CreatedAfter = createdAfter; + MinAge = minAge; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.cs new file mode 100644 index 0000000000..f79bae0755 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions + { + /// + /// Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + /// Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + /// + public readonly ImmutableArray IncludedBucketAttributes; + /// + /// 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. + /// Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + /// + public readonly ImmutableArray IncludedObjectAttributes; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions( + ImmutableArray includedBucketAttributes, + + ImmutableArray includedObjectAttributes) + { + IncludedBucketAttributes = includedBucketAttributes; + IncludedObjectAttributes = includedObjectAttributes; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled.cs new file mode 100644 index 0000000000..e832e47b34 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled.cs @@ -0,0 +1,21 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetDisabled + { + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetDisabled() + { + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilter.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilter.cs new file mode 100644 index 0000000000..5015b8712b --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilter.cs @@ -0,0 +1,44 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilter + { + /// + /// 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. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference? CloudStorageResourceReference; + /// + /// A specific set of buckets for this filter to apply to. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection? Collection; + /// + /// Match discovery resources not covered by any other filter. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers? Others; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetFilter( + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference? cloudStorageResourceReference, + + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection? collection, + + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers? others) + { + CloudStorageResourceReference = cloudStorageResourceReference; + Collection = collection; + Others = others; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.cs new file mode 100644 index 0000000000..2c5e6fb3d5 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference + { + /// + /// The bucket to scan. + /// + public readonly string? BucketName; + /// + /// If within a project-level config, then this must match the config's project id. + /// + public readonly string? ProjectId; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference( + string? bucketName, + + string? projectId) + { + BucketName = bucketName; + ProjectId = projectId; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.cs new file mode 100644 index 0000000000..68567f8272 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection + { + /// + /// A collection of regular expressions to match a file store against. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes? IncludeRegexes; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection(Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes? includeRegexes) + { + IncludeRegexes = includeRegexes; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes.cs new file mode 100644 index 0000000000..cd318c6d5c --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes + { + /// + /// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + /// Structure is documented below. + /// + public readonly ImmutableArray Patterns; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes(ImmutableArray patterns) + { + Patterns = patterns; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.cs new file mode 100644 index 0000000000..4b9bb37ee2 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern + { + /// + /// Regex for Cloud Storage. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex? CloudStorageRegex; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern(Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex? cloudStorageRegex) + { + CloudStorageRegex = cloudStorageRegex; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.cs new file mode 100644 index 0000000000..7932621516 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex + { + /// + /// 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 + /// + public readonly string? BucketNameRegex; + /// + /// For organizations, if unset, will match all projects. + /// + public readonly string? ProjectIdRegex; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex( + string? bucketNameRegex, + + string? projectIdRegex) + { + BucketNameRegex = bucketNameRegex; + ProjectIdRegex = projectIdRegex; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers.cs new file mode 100644 index 0000000000..617aabcd2f --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers.cs @@ -0,0 +1,21 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers + { + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers() + { + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.cs new file mode 100644 index 0000000000..742fa111e1 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence + { + /// + /// 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. + /// Structure is documented below. + /// + public readonly Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence? InspectTemplateModifiedCadence; + /// + /// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + /// + public readonly string? RefreshFrequency; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence( + Outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence? inspectTemplateModifiedCadence, + + string? refreshFrequency) + { + InspectTemplateModifiedCadence = inspectTemplateModifiedCadence; + RefreshFrequency = refreshFrequency; + } + } +} diff --git a/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence.cs b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence.cs new file mode 100644 index 0000000000..3a44b9a9b1 --- /dev/null +++ b/sdk/dotnet/DataLoss/Outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.DataLoss.Outputs +{ + + [OutputType] + public sealed class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence + { + /// + /// How frequently data profiles can be updated when the template is modified. Defaults to never. + /// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + /// + public readonly string? Frequency; + + [OutputConstructor] + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence(string? frequency) + { + Frequency = frequency; + } + } +} diff --git a/sdk/dotnet/DatabaseMigrationService/PrivateConnection.cs b/sdk/dotnet/DatabaseMigrationService/PrivateConnection.cs index e5d850a62c..fae65d2de2 100644 --- a/sdk/dotnet/DatabaseMigrationService/PrivateConnection.cs +++ b/sdk/dotnet/DatabaseMigrationService/PrivateConnection.cs @@ -30,12 +30,7 @@ namespace Pulumi.Gcp.DatabaseMigrationService /// /// return await Deployment.RunAsync(() => /// { - /// var @default = Gcp.Compute.GetNetwork.Invoke(new() - /// { - /// Name = "my-network", - /// }); - /// - /// var defaultPrivateConnection = new Gcp.DatabaseMigrationService.PrivateConnection("default", new() + /// var @default = new Gcp.DatabaseMigrationService.PrivateConnection("default", new() /// { /// DisplayName = "dbms_pc", /// Location = "us-central1", @@ -46,11 +41,17 @@ namespace Pulumi.Gcp.DatabaseMigrationService /// }, /// VpcPeeringConfig = new Gcp.DatabaseMigrationService.Inputs.PrivateConnectionVpcPeeringConfigArgs /// { - /// VpcName = @default.Apply(@default => @default.Apply(getNetworkResult => getNetworkResult.Id)), + /// VpcName = googleComputeNetwork.Default.Id, /// Subnet = "10.0.0.0/29", /// }, /// }); /// + /// var defaultNetwork = new Gcp.Compute.Network("default", new() + /// { + /// Name = "my-network", + /// AutoCreateSubnetworks = false, + /// }); + /// /// }); /// ``` /// diff --git a/sdk/dotnet/Datastore/DataStoreIndex.cs b/sdk/dotnet/Datastore/DataStoreIndex.cs index 16cf7856da..10d08316f0 100644 --- a/sdk/dotnet/Datastore/DataStoreIndex.cs +++ b/sdk/dotnet/Datastore/DataStoreIndex.cs @@ -10,7 +10,9 @@ namespace Pulumi.Gcp.Datastore { /// - /// Describes a composite index for Cloud Datastore. + /// > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. `firestore_index` supports both Firestore in Datastore Mode and Firestore Native indexes and supports both named and the (default) database. + /// + /// Describes a composite index for Firestore in Datastore Mode. /// /// To get more information about Index, see: /// @@ -18,11 +20,15 @@ namespace Pulumi.Gcp.Datastore /// * How-to Guides /// * [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes) /// - /// > **Warning:** This resource creates a Datastore Index on a project that has already - /// enabled a Datastore-compatible database. If you haven't already enabled - /// one, you can create a `gcp.appengine.Application` resource with - /// `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"` to do so. Your - /// Datastore location will be the same as the App Engine location specified. + /// > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. + /// Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. + /// This resource creates a Datastore Index on a project that has already + /// enabled a Datastore-compatible database. If you haven't already created it, you may + /// create a `gcp.firestore.Database` resource with `location_id` set + /// to your chosen location, and `type` set to `"DATASTORE_MODE"`. + /// If you wish to use App Engine, you may instead create a `gcp.appengine.Application` resource with + /// `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"`. + /// Your Datastore location will be the same as the App Engine location specified. /// /// ## Example Usage /// diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigArgs.cs index 9e3fce373a..f17c1741dc 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Datastream.Inputs public sealed class StreamDestinationConfigArgs : global::Pulumi.ResourceArgs { /// - /// A configuration for how data should be loaded to Cloud Storage. + /// A configuration for how data should be loaded to Google BigQuery. /// Structure is documented below. /// [Input("bigqueryDestinationConfig")] diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs.cs new file mode 100644 index 0000000000..ff45323075 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs : global::Pulumi.ResourceArgs + { + public StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs() + { + } + public static new StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs Empty => new StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnlyGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnlyGetArgs.cs new file mode 100644 index 0000000000..2c51db34e7 --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnlyGetArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamDestinationConfigBigqueryDestinationConfigAppendOnlyGetArgs : global::Pulumi.ResourceArgs + { + public StreamDestinationConfigBigqueryDestinationConfigAppendOnlyGetArgs() + { + } + public static new StreamDestinationConfigBigqueryDestinationConfigAppendOnlyGetArgs Empty => new StreamDestinationConfigBigqueryDestinationConfigAppendOnlyGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigArgs.cs index 0d87e5ae87..a07bce316d 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigArgs.cs @@ -12,6 +12,14 @@ namespace Pulumi.Gcp.Datastream.Inputs public sealed class StreamDestinationConfigBigqueryDestinationConfigArgs : global::Pulumi.ResourceArgs { + /// + /// AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + /// events) to a source table will be written to the destination Google BigQuery table, retaining the + /// historical state of the data. + /// + [Input("appendOnly")] + public Input? AppendOnly { get; set; } + /// /// The guaranteed data freshness (in seconds) when querying tables created by the stream. /// Editing this field will only affect new tables created in the future, but existing tables @@ -21,6 +29,14 @@ public sealed class StreamDestinationConfigBigqueryDestinationConfigArgs : globa [Input("dataFreshness")] public Input? DataFreshness { get; set; } + /// + /// Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + /// table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + /// in the source database. With Merge mode, no historical record of the change events is kept. + /// + [Input("merge")] + public Input? Merge { get; set; } + /// /// A single target dataset to which all data will be streamed. /// Structure is documented below. diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigGetArgs.cs index a95508009b..84a40d4baa 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigGetArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigGetArgs.cs @@ -12,6 +12,14 @@ namespace Pulumi.Gcp.Datastream.Inputs public sealed class StreamDestinationConfigBigqueryDestinationConfigGetArgs : global::Pulumi.ResourceArgs { + /// + /// AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + /// events) to a source table will be written to the destination Google BigQuery table, retaining the + /// historical state of the data. + /// + [Input("appendOnly")] + public Input? AppendOnly { get; set; } + /// /// The guaranteed data freshness (in seconds) when querying tables created by the stream. /// Editing this field will only affect new tables created in the future, but existing tables @@ -21,6 +29,14 @@ public sealed class StreamDestinationConfigBigqueryDestinationConfigGetArgs : gl [Input("dataFreshness")] public Input? DataFreshness { get; set; } + /// + /// Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + /// table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + /// in the source database. With Merge mode, no historical record of the change events is kept. + /// + [Input("merge")] + public Input? Merge { get; set; } + /// /// A single target dataset to which all data will be streamed. /// Structure is documented below. diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigMergeArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigMergeArgs.cs new file mode 100644 index 0000000000..ad9737771b --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigMergeArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamDestinationConfigBigqueryDestinationConfigMergeArgs : global::Pulumi.ResourceArgs + { + public StreamDestinationConfigBigqueryDestinationConfigMergeArgs() + { + } + public static new StreamDestinationConfigBigqueryDestinationConfigMergeArgs Empty => new StreamDestinationConfigBigqueryDestinationConfigMergeArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigMergeGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigMergeGetArgs.cs new file mode 100644 index 0000000000..0b5f7a3ddf --- /dev/null +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigBigqueryDestinationConfigMergeGetArgs.cs @@ -0,0 +1,20 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Inputs +{ + + public sealed class StreamDestinationConfigBigqueryDestinationConfigMergeGetArgs : global::Pulumi.ResourceArgs + { + public StreamDestinationConfigBigqueryDestinationConfigMergeGetArgs() + { + } + public static new StreamDestinationConfigBigqueryDestinationConfigMergeGetArgs Empty => new StreamDestinationConfigBigqueryDestinationConfigMergeGetArgs(); + } +} diff --git a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigGetArgs.cs b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigGetArgs.cs index d419509ce7..f65d883a5a 100644 --- a/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigGetArgs.cs +++ b/sdk/dotnet/Datastream/Inputs/StreamDestinationConfigGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Gcp.Datastream.Inputs public sealed class StreamDestinationConfigGetArgs : global::Pulumi.ResourceArgs { /// - /// A configuration for how data should be loaded to Cloud Storage. + /// A configuration for how data should be loaded to Google BigQuery. /// Structure is documented below. /// [Input("bigqueryDestinationConfig")] diff --git a/sdk/dotnet/Datastream/Outputs/StreamDestinationConfig.cs b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfig.cs index ca2c9adc81..2e5f23e9f4 100644 --- a/sdk/dotnet/Datastream/Outputs/StreamDestinationConfig.cs +++ b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfig.cs @@ -14,7 +14,7 @@ namespace Pulumi.Gcp.Datastream.Outputs public sealed class StreamDestinationConfig { /// - /// A configuration for how data should be loaded to Cloud Storage. + /// A configuration for how data should be loaded to Google BigQuery. /// Structure is documented below. /// public readonly Outputs.StreamDestinationConfigBigqueryDestinationConfig? BigqueryDestinationConfig; diff --git a/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfig.cs b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfig.cs index b4bf56b023..8563a8450f 100644 --- a/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfig.cs +++ b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfig.cs @@ -13,6 +13,12 @@ namespace Pulumi.Gcp.Datastream.Outputs [OutputType] public sealed class StreamDestinationConfigBigqueryDestinationConfig { + /// + /// AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + /// events) to a source table will be written to the destination Google BigQuery table, retaining the + /// historical state of the data. + /// + public readonly Outputs.StreamDestinationConfigBigqueryDestinationConfigAppendOnly? AppendOnly; /// /// The guaranteed data freshness (in seconds) when querying tables created by the stream. /// Editing this field will only affect new tables created in the future, but existing tables @@ -21,6 +27,12 @@ public sealed class StreamDestinationConfigBigqueryDestinationConfig /// public readonly string? DataFreshness; /// + /// Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + /// table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + /// in the source database. With Merge mode, no historical record of the change events is kept. + /// + public readonly Outputs.StreamDestinationConfigBigqueryDestinationConfigMerge? Merge; + /// /// A single target dataset to which all data will be streamed. /// Structure is documented below. /// @@ -33,13 +45,19 @@ public sealed class StreamDestinationConfigBigqueryDestinationConfig [OutputConstructor] private StreamDestinationConfigBigqueryDestinationConfig( + Outputs.StreamDestinationConfigBigqueryDestinationConfigAppendOnly? appendOnly, + string? dataFreshness, + Outputs.StreamDestinationConfigBigqueryDestinationConfigMerge? merge, + Outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset? singleTargetDataset, Outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets? sourceHierarchyDatasets) { + AppendOnly = appendOnly; DataFreshness = dataFreshness; + Merge = merge; SingleTargetDataset = singleTargetDataset; SourceHierarchyDatasets = sourceHierarchyDatasets; } diff --git a/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnly.cs b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnly.cs new file mode 100644 index 0000000000..4f6e40dc07 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnly.cs @@ -0,0 +1,21 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamDestinationConfigBigqueryDestinationConfigAppendOnly + { + [OutputConstructor] + private StreamDestinationConfigBigqueryDestinationConfigAppendOnly() + { + } + } +} diff --git a/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfigMerge.cs b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfigMerge.cs new file mode 100644 index 0000000000..7cf4ec6056 --- /dev/null +++ b/sdk/dotnet/Datastream/Outputs/StreamDestinationConfigBigqueryDestinationConfigMerge.cs @@ -0,0 +1,21 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Datastream.Outputs +{ + + [OutputType] + public sealed class StreamDestinationConfigBigqueryDestinationConfigMerge + { + [OutputConstructor] + private StreamDestinationConfigBigqueryDestinationConfigMerge() + { + } + } +} diff --git a/sdk/dotnet/Datastream/Stream.cs b/sdk/dotnet/Datastream/Stream.cs index 0c6eb63acd..09a7c80811 100644 --- a/sdk/dotnet/Datastream/Stream.cs +++ b/sdk/dotnet/Datastream/Stream.cs @@ -992,6 +992,133 @@ namespace Pulumi.Gcp.Datastream /// /// }); /// ``` + /// ### Datastream Stream Bigquery Append Only + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// using Random = Pulumi.Random; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var instance = new Gcp.Sql.DatabaseInstance("instance", new() + /// { + /// Name = "my-instance", + /// DatabaseVersion = "MYSQL_8_0", + /// Region = "us-central1", + /// Settings = new Gcp.Sql.Inputs.DatabaseInstanceSettingsArgs + /// { + /// Tier = "db-f1-micro", + /// BackupConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsBackupConfigurationArgs + /// { + /// Enabled = true, + /// BinaryLogEnabled = true, + /// }, + /// IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs + /// { + /// AuthorizedNetworks = new[] + /// { + /// new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs + /// { + /// Value = "34.71.242.81", + /// }, + /// new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs + /// { + /// Value = "34.72.28.29", + /// }, + /// new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs + /// { + /// Value = "34.67.6.157", + /// }, + /// new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs + /// { + /// Value = "34.67.234.134", + /// }, + /// new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs + /// { + /// Value = "34.72.239.218", + /// }, + /// }, + /// }, + /// }, + /// DeletionProtection = true, + /// }); + /// + /// var db = new Gcp.Sql.Database("db", new() + /// { + /// Instance = instance.Name, + /// Name = "db", + /// }); + /// + /// var pwd = new Random.RandomPassword("pwd", new() + /// { + /// Length = 16, + /// Special = false, + /// }); + /// + /// var user = new Gcp.Sql.User("user", new() + /// { + /// Name = "user", + /// Instance = instance.Name, + /// Host = "%", + /// Password = pwd.Result, + /// }); + /// + /// var sourceConnectionProfile = new Gcp.Datastream.ConnectionProfile("source_connection_profile", new() + /// { + /// DisplayName = "Source connection profile", + /// Location = "us-central1", + /// ConnectionProfileId = "source-profile", + /// MysqlProfile = new Gcp.Datastream.Inputs.ConnectionProfileMysqlProfileArgs + /// { + /// Hostname = instance.PublicIpAddress, + /// Username = user.Name, + /// Password = user.Password, + /// }, + /// }); + /// + /// var destinationConnectionProfile = new Gcp.Datastream.ConnectionProfile("destination_connection_profile", new() + /// { + /// DisplayName = "Connection profile", + /// Location = "us-central1", + /// ConnectionProfileId = "destination-profile", + /// BigqueryProfile = null, + /// }); + /// + /// var @default = new Gcp.Datastream.Stream("default", new() + /// { + /// StreamId = "my-stream", + /// Location = "us-central1", + /// DisplayName = "my stream", + /// SourceConfig = new Gcp.Datastream.Inputs.StreamSourceConfigArgs + /// { + /// SourceConnectionProfile = sourceConnectionProfile.Id, + /// MysqlSourceConfig = null, + /// }, + /// DestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigArgs + /// { + /// DestinationConnectionProfile = destinationConnectionProfile.Id, + /// BigqueryDestinationConfig = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigArgs + /// { + /// SourceHierarchyDatasets = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs + /// { + /// DatasetTemplate = new Gcp.Datastream.Inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs + /// { + /// Location = "us-central1", + /// }, + /// }, + /// AppendOnly = null, + /// }, + /// }, + /// BackfillNone = null, + /// }); + /// + /// }); + /// ``` /// /// ## Import /// diff --git a/sdk/dotnet/Firebase/DatabaseInstance.cs b/sdk/dotnet/Firebase/DatabaseInstance.cs index f760d58bb1..ad91ba57e8 100644 --- a/sdk/dotnet/Firebase/DatabaseInstance.cs +++ b/sdk/dotnet/Firebase/DatabaseInstance.cs @@ -158,8 +158,8 @@ public partial class DatabaseInstance : global::Pulumi.CustomResource public Output InstanceId { get; private set; } = null!; /// - /// The fully-qualified resource name of the Firebase Realtime Database, in the - /// format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + /// The fully-qualified resource name of the Firebase Realtime Database, in + /// the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID /// PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) /// Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). /// @@ -316,8 +316,8 @@ public sealed class DatabaseInstanceState : global::Pulumi.ResourceArgs public Input? InstanceId { get; set; } /// - /// The fully-qualified resource name of the Firebase Realtime Database, in the - /// format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + /// The fully-qualified resource name of the Firebase Realtime Database, in + /// the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID /// PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) /// Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). /// diff --git a/sdk/dotnet/Firebase/HostingSite.cs b/sdk/dotnet/Firebase/HostingSite.cs index 41943f4ccf..976fe13444 100644 --- a/sdk/dotnet/Firebase/HostingSite.cs +++ b/sdk/dotnet/Firebase/HostingSite.cs @@ -103,8 +103,8 @@ public partial class HostingSite : global::Pulumi.CustomResource public Output DefaultUrl { get; private set; } = null!; /// - /// Output only. The fully-qualified resource name of the Hosting site, in the - /// format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + /// Output only. The fully-qualified resource name of the Hosting site, in + /// the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the /// Firebase project's /// [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its /// [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -219,8 +219,8 @@ public sealed class HostingSiteState : global::Pulumi.ResourceArgs public Input? DefaultUrl { get; set; } /// - /// Output only. The fully-qualified resource name of the Hosting site, in the - /// format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + /// Output only. The fully-qualified resource name of the Hosting site, in + /// the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the /// Firebase project's /// [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its /// [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). diff --git a/sdk/dotnet/Firestore/Index.cs b/sdk/dotnet/Firestore/Index.cs index 5e583bb89f..03853cb2c8 100644 --- a/sdk/dotnet/Firestore/Index.cs +++ b/sdk/dotnet/Firestore/Index.cs @@ -11,8 +11,9 @@ namespace Pulumi.Gcp.Firestore { /// /// Cloud Firestore indexes enable simple and complex queries against documents in a database. - /// This resource manages composite indexes and not single - /// field indexes. + /// Both Firestore Native and Datastore Mode indexes are supported. + /// This resource manages composite indexes and not single field indexes. + /// To manage single field indexes, use the `gcp.firestore.Field` resource instead. /// /// To get more information about Index, see: /// @@ -24,9 +25,8 @@ namespace Pulumi.Gcp.Firestore /// a Firestore database. If you haven't already created it, you may /// create a `gcp.firestore.Database` resource and `location_id` set /// to your chosen location. If you wish to use App Engine, you may - /// instead create a `gcp.appengine.Application` resource with - /// `database_type` set to `"CLOUD_FIRESTORE"`. Your Firestore location - /// will be the same as the App Engine location specified. + /// instead create a `gcp.appengine.Application` resource. + /// Your Firestore location will be the same as the App Engine location specified. /// /// ## Example Usage /// diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs index 19eee4865a..3e9adc1d0b 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigN /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs index dde12a45c3..6388aa36cb 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigN /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs index 59d8c8dab0..90c6a7ee61 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigN /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs index 1ac794f753..c0bb5e4654 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigN /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyArgs.cs index 75d792d226..4bcb5ce54a 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyArgs.cs @@ -17,7 +17,7 @@ public sealed class BareMetalAdminClusterProxyArgs : global::Pulumi.ResourceArgs /// /// A list of IPs, hostnames, and domains that should skip the proxy. - /// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + /// For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. /// public InputList NoProxies { @@ -27,9 +27,9 @@ public InputList NoProxies /// /// Specifies the address of your proxy server. - /// Examples: http://domain + /// For Example: http://domain /// WARNING: Do not provide credentials in the format - /// http://(username:password@)domain these will be rejected by the server. + /// of http://(username:password@)domain these will be rejected by the server. /// [Input("uri", required: true)] public Input Uri { get; set; } = null!; diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyGetArgs.cs index fc91b4e9a5..7021ee8c9b 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalAdminClusterProxyGetArgs.cs @@ -17,7 +17,7 @@ public sealed class BareMetalAdminClusterProxyGetArgs : global::Pulumi.ResourceA /// /// A list of IPs, hostnames, and domains that should skip the proxy. - /// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + /// For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. /// public InputList NoProxies { @@ -27,9 +27,9 @@ public InputList NoProxies /// /// Specifies the address of your proxy server. - /// Examples: http://domain + /// For Example: http://domain /// WARNING: Do not provide credentials in the format - /// http://(username:password@)domain these will be rejected by the server. + /// of http://(username:password@)domain these will be rejected by the server. /// [Input("uri", required: true)] public Input Uri { get; set; } = null!; diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs index 40b58b0fff..e25a71e047 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs index a2384bc642..10cda767a6 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs index 5a1020f990..64e8426ee1 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs index 0911523ab4..79468fffb9 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs index a822af330d..0357abaf17 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs @@ -30,9 +30,9 @@ public sealed class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolC /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs index 2531e4257d..3b755f8292 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs @@ -30,9 +30,9 @@ public sealed class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolC /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs index 4dfa54444c..d4fba53e69 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolC /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs index a67b534862..c5b85fa413 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolC /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs index 1145c267d2..1b03d0d9b2 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs index 436c6eba3c..83fdf1344c 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs index ebdf4a9a93..fa4e1afb6a 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs index 22c6914a88..122f2cbab5 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyArgs.cs index 55c4d4b3a3..2cc865c727 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyArgs.cs @@ -17,7 +17,7 @@ public sealed class BareMetalClusterProxyArgs : global::Pulumi.ResourceArgs /// /// A list of IPs, hostnames, and domains that should skip the proxy. - /// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + /// For example ["127.0.0.1", "example.com", ".corp", "localhost"]. /// public InputList NoProxies { @@ -27,9 +27,9 @@ public InputList NoProxies /// /// Specifies the address of your proxy server. - /// Examples: http://domain + /// For example: http://domain /// WARNING: Do not provide credentials in the format - /// http://(username:password@)domain these will be rejected by the server. + /// of http://(username:password@)domain these will be rejected by the server. /// [Input("uri", required: true)] public Input Uri { get; set; } = null!; diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyGetArgs.cs index 09664fb058..6861716581 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalClusterProxyGetArgs.cs @@ -17,7 +17,7 @@ public sealed class BareMetalClusterProxyGetArgs : global::Pulumi.ResourceArgs /// /// A list of IPs, hostnames, and domains that should skip the proxy. - /// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + /// For example ["127.0.0.1", "example.com", ".corp", "localhost"]. /// public InputList NoProxies { @@ -27,9 +27,9 @@ public InputList NoProxies /// /// Specifies the address of your proxy server. - /// Examples: http://domain + /// For example: http://domain /// WARNING: Do not provide credentials in the format - /// http://(username:password@)domain these will be rejected by the server. + /// of http://(username:password@)domain these will be rejected by the server. /// [Input("uri", required: true)] public Input Uri { get; set; } = null!; diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigArgs.cs index d8f1f7677b..68c798d15d 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalNodePoolNodePoolConfigArgs : global::Pulumi.Resourc /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigGetArgs.cs index 037d4b6675..f8ab2b7758 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalNodePoolNodePoolConfigGetArgs : global::Pulumi.Reso /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.cs index db9ff576cd..7ddff7897f 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalNodePoolNodePoolConfigNodeConfigArgs : global::Pulu /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigGetArgs.cs b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigGetArgs.cs index 5238e708bd..68d7976ad0 100644 --- a/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigGetArgs.cs +++ b/sdk/dotnet/GkeOnPrem/Inputs/BareMetalNodePoolNodePoolConfigNodeConfigGetArgs.cs @@ -23,9 +23,9 @@ public sealed class BareMetalNodePoolNodePoolConfigNodeConfigGetArgs : global::P /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public InputMap Labels { diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs index ec64186db6..9fa772d3e5 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigN /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs index 842bc73ed3..217f552ba6 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigN /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterProxy.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterProxy.cs index 54392f51c7..101e39e8e9 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterProxy.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalAdminClusterProxy.cs @@ -15,14 +15,14 @@ public sealed class BareMetalAdminClusterProxy { /// /// A list of IPs, hostnames, and domains that should skip the proxy. - /// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + /// For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. /// public readonly ImmutableArray NoProxies; /// /// Specifies the address of your proxy server. - /// Examples: http://domain + /// For Example: http://domain /// WARNING: Do not provide credentials in the format - /// http://(username:password@)domain these will be rejected by the server. + /// of http://(username:password@)domain these will be rejected by the server. /// public readonly string Uri; diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs index dc62379edb..224bc6bb88 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs index 6fe9b4a682..e83dccdde2 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs index 05ebe53370..b645a0253f 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs @@ -26,9 +26,9 @@ public sealed class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolC /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs index 9f7c4b4193..bd37b87ff3 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolC /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs index daba0dda55..643738daf3 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs index a344b287d3..e6aa7ece5b 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoo /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterProxy.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterProxy.cs index 9e2547bcbf..1086719583 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterProxy.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalClusterProxy.cs @@ -15,14 +15,14 @@ public sealed class BareMetalClusterProxy { /// /// A list of IPs, hostnames, and domains that should skip the proxy. - /// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + /// For example ["127.0.0.1", "example.com", ".corp", "localhost"]. /// public readonly ImmutableArray NoProxies; /// /// Specifies the address of your proxy server. - /// Examples: http://domain + /// For example: http://domain /// WARNING: Do not provide credentials in the format - /// http://(username:password@)domain these will be rejected by the server. + /// of http://(username:password@)domain these will be rejected by the server. /// public readonly string Uri; diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfig.cs index a28e50c119..f4ad0ea0d7 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalNodePoolNodePoolConfig /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfigNodeConfig.cs b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfigNodeConfig.cs index b5289591ef..f86ce45fef 100644 --- a/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfigNodeConfig.cs +++ b/sdk/dotnet/GkeOnPrem/Outputs/BareMetalNodePoolNodePoolConfigNodeConfig.cs @@ -21,9 +21,9 @@ public sealed class BareMetalNodePoolNodePoolConfigNodeConfig /// version -- it's best to assume the behavior is undefined and /// conflicts should be avoided. For more information, including usage /// and the valid values, see: - /// http://kubernetes.io/v1.1/docs/user-guide/labels.html + /// - http://kubernetes.io/v1.1/docs/user-guide/labels.html /// An object containing a list of "key": value pairs. - /// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + /// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. /// public readonly ImmutableDictionary? Labels; /// diff --git a/sdk/dotnet/Iap/Client.cs b/sdk/dotnet/Iap/Client.cs index cca77273eb..1d6118fa56 100644 --- a/sdk/dotnet/Iap/Client.cs +++ b/sdk/dotnet/Iap/Client.cs @@ -96,7 +96,7 @@ public partial class Client : global::Pulumi.CustomResource public Output Brand { get; private set; } = null!; /// - /// The OAuth2 ID of the client. + /// Output only. Unique identifier of the OAuth client. /// [Output("clientId")] public Output ClientId { get; private set; } = null!; @@ -201,7 +201,7 @@ public sealed class ClientState : global::Pulumi.ResourceArgs public Input? Brand { get; set; } /// - /// The OAuth2 ID of the client. + /// Output only. Unique identifier of the OAuth client. /// [Input("clientId")] public Input? ClientId { get; set; } diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs index 56a9e0541f..1f95773087 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs index 9bba0577fe..87c8268004 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionAuthConfigAdditionalVariableEncryptionKeyValueGetArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueArgs.cs index 2190ce6173..5d7a9cf7da 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionConfigVariableEncryptionKeyValueArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueGetArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueGetArgs.cs index 0ff209b8ae..66d91c77c6 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueGetArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionConfigVariableEncryptionKeyValueGetArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionConfigVariableEncryptionKeyValueGetArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.cs index 24e0c23ff6..512761553e 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueGetArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueGetArgs.cs index 04fab7a5ac..d98db36a04 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueGetArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueGetArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionEventingConfigAdditionalVariableEncryptionKeyValueGetArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs index 27fd98e283..259fa3b601 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs index 8a770c0951..e050dbf687 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueGetArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueGetArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.cs index 03cb7d866b..fa8f480623 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueGetArgs.cs b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueGetArgs.cs index e6bc351f43..86ea267116 100644 --- a/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueGetArgs.cs +++ b/sdk/dotnet/IntegrationConnectors/Inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueGetArgs.cs @@ -13,8 +13,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Inputs public sealed class ConnectionSslConfigAdditionalVariableEncryptionKeyValueGetArgs : global::Pulumi.ResourceArgs { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// [Input("kmsKeyName")] diff --git a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.cs b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.cs index 321f435876..d7656c25d4 100644 --- a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.cs +++ b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.cs @@ -14,8 +14,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Outputs public sealed class ConnectionAuthConfigAdditionalVariableEncryptionKeyValue { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// public readonly string? KmsKeyName; diff --git a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionConfigVariableEncryptionKeyValue.cs b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionConfigVariableEncryptionKeyValue.cs index bcab05a212..b89470495e 100644 --- a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionConfigVariableEncryptionKeyValue.cs +++ b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionConfigVariableEncryptionKeyValue.cs @@ -14,8 +14,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Outputs public sealed class ConnectionConfigVariableEncryptionKeyValue { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// public readonly string? KmsKeyName; diff --git a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.cs b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.cs index bb417955ce..db71b58c04 100644 --- a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.cs +++ b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.cs @@ -14,8 +14,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Outputs public sealed class ConnectionEventingConfigAdditionalVariableEncryptionKeyValue { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// public readonly string? KmsKeyName; diff --git a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.cs b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.cs index 726a3efc91..3e8536168d 100644 --- a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.cs +++ b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.cs @@ -14,8 +14,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Outputs public sealed class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// public readonly string? KmsKeyName; diff --git a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.cs b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.cs index 49844c6f53..a96d5a3721 100644 --- a/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.cs +++ b/sdk/dotnet/IntegrationConnectors/Outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.cs @@ -14,8 +14,8 @@ namespace Pulumi.Gcp.IntegrationConnectors.Outputs public sealed class ConnectionSslConfigAdditionalVariableEncryptionKeyValue { /// - /// The [KMS key name] with which the content of the Operation is encrypted. The expected - /// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + /// The [KMS key name] with which the content of the Operation is encrypted. The + /// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. /// Will be empty string if google managed. /// public readonly string? KmsKeyName; diff --git a/sdk/dotnet/NetworkConnectivity/Hub.cs b/sdk/dotnet/NetworkConnectivity/Hub.cs index 68345e448f..3a2735e941 100644 --- a/sdk/dotnet/NetworkConnectivity/Hub.cs +++ b/sdk/dotnet/NetworkConnectivity/Hub.cs @@ -12,10 +12,16 @@ namespace Pulumi.Gcp.NetworkConnectivity /// /// The NetworkConnectivity Hub resource /// + /// To get more information about Hub, see: + /// + /// * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs) + /// * How-to Guides + /// * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + /// /// ## Example Usage /// - /// ### Basic_hub - /// A basic test of a networkconnectivity hub + /// ### Network Connectivity Hub Basic + /// /// ```csharp /// using System.Collections.Generic; /// using System.Linq; @@ -26,9 +32,8 @@ namespace Pulumi.Gcp.NetworkConnectivity /// { /// var primary = new Gcp.NetworkConnectivity.Hub("primary", new() /// { - /// Name = "hub", + /// Name = "basic", /// Description = "A sample hub", - /// Project = "my-project-name", /// Labels = /// { /// { "label-one", "value-one" }, @@ -81,11 +86,10 @@ public partial class Hub : global::Pulumi.CustomResource /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. /// [Output("effectiveLabels")] - public Output> EffectiveLabels { get; private set; } = null!; + public Output> EffectiveLabels { get; private set; } = null!; /// /// Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - /// /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. /// Please refer to the field `effective_labels` for all of the labels present on the resource. /// @@ -96,32 +100,34 @@ public partial class Hub : global::Pulumi.CustomResource /// Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` /// /// - /// /// - - - /// [Output("name")] public Output Name { get; private set; } = null!; /// - /// The project for the resource + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. /// [Output("project")] public Output Project { get; private set; } = null!; /// - /// The combination of labels configured directly on the resource and default labels configured on the provider. + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. /// [Output("pulumiLabels")] - public Output> PulumiLabels { get; private set; } = null!; + public Output> PulumiLabels { get; private set; } = null!; /// /// The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + /// Structure is documented below. /// [Output("routingVpcs")] public Output> RoutingVpcs { get; private set; } = null!; /// - /// Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + /// Output only. The current lifecycle state of this hub. /// [Output("state")] public Output State { get; private set; } = null!; @@ -200,7 +206,6 @@ public sealed class HubArgs : global::Pulumi.ResourceArgs /// /// Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - /// /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. /// Please refer to the field `effective_labels` for all of the labels present on the resource. /// @@ -214,14 +219,14 @@ public InputMap Labels /// Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` /// /// - /// /// - - - /// [Input("name")] public Input? Name { get; set; } /// - /// The project for the resource + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. /// [Input("project")] public Input? Project { get; set; } @@ -247,17 +252,17 @@ public sealed class HubState : global::Pulumi.ResourceArgs public Input? Description { get; set; } [Input("effectiveLabels")] - private InputMap? _effectiveLabels; + private InputMap? _effectiveLabels; /// /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. /// - public InputMap EffectiveLabels + public InputMap EffectiveLabels { - get => _effectiveLabels ?? (_effectiveLabels = new InputMap()); + get => _effectiveLabels ?? (_effectiveLabels = new InputMap()); set { - var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); _effectiveLabels = Output.All(value, emptySecret).Apply(v => v[0]); } } @@ -267,7 +272,6 @@ public InputMap EffectiveLabels /// /// Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - /// /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. /// Please refer to the field `effective_labels` for all of the labels present on the resource. /// @@ -281,30 +285,31 @@ public InputMap Labels /// Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` /// /// - /// /// - - - /// [Input("name")] public Input? Name { get; set; } /// - /// The project for the resource + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. /// [Input("project")] public Input? Project { get; set; } [Input("pulumiLabels")] - private InputMap? _pulumiLabels; + private InputMap? _pulumiLabels; /// - /// The combination of labels configured directly on the resource and default labels configured on the provider. + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. /// - public InputMap PulumiLabels + public InputMap PulumiLabels { - get => _pulumiLabels ?? (_pulumiLabels = new InputMap()); + get => _pulumiLabels ?? (_pulumiLabels = new InputMap()); set { - var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); _pulumiLabels = Output.All(value, emptySecret).Apply(v => v[0]); } } @@ -314,6 +319,7 @@ public InputMap PulumiLabels /// /// The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + /// Structure is documented below. /// public InputList RoutingVpcs { @@ -322,7 +328,7 @@ public InputList RoutingVpcs } /// - /// Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + /// Output only. The current lifecycle state of this hub. /// [Input("state")] public Input? State { get; set; } diff --git a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesArgs.cs b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesArgs.cs index a4ba658380..51615bc8dc 100644 --- a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesArgs.cs +++ b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesArgs.cs @@ -17,6 +17,7 @@ public sealed class SpokeLinkedRouterApplianceInstancesArgs : global::Pulumi.Res /// /// The list of router appliance instances + /// Structure is documented below. /// public InputList Instances { diff --git a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesGetArgs.cs b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesGetArgs.cs index b653dbc156..5676c9ecd2 100644 --- a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesGetArgs.cs +++ b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesGetArgs.cs @@ -17,6 +17,7 @@ public sealed class SpokeLinkedRouterApplianceInstancesGetArgs : global::Pulumi. /// /// The list of router appliance instances + /// Structure is documented below. /// public InputList Instances { diff --git a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.cs b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.cs index c6566428fd..4406733869 100644 --- a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.cs +++ b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.cs @@ -20,8 +20,6 @@ public sealed class SpokeLinkedRouterApplianceInstancesInstanceArgs : global::Pu /// /// The URI of the virtual machine resource - /// - /// - - - /// [Input("virtualMachine")] public Input? VirtualMachine { get; set; } diff --git a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceGetArgs.cs b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceGetArgs.cs index ef49ccca47..f8162a056a 100644 --- a/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceGetArgs.cs +++ b/sdk/dotnet/NetworkConnectivity/Inputs/SpokeLinkedRouterApplianceInstancesInstanceGetArgs.cs @@ -20,8 +20,6 @@ public sealed class SpokeLinkedRouterApplianceInstancesInstanceGetArgs : global: /// /// The URI of the virtual machine resource - /// - /// - - - /// [Input("virtualMachine")] public Input? VirtualMachine { get; set; } diff --git a/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstances.cs b/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstances.cs index ae4b1477ea..6057e66a5f 100644 --- a/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstances.cs +++ b/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstances.cs @@ -15,6 +15,7 @@ public sealed class SpokeLinkedRouterApplianceInstances { /// /// The list of router appliance instances + /// Structure is documented below. /// public readonly ImmutableArray Instances; /// diff --git a/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstancesInstance.cs b/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstancesInstance.cs index 922f572ca6..de0f3e905e 100644 --- a/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstancesInstance.cs +++ b/sdk/dotnet/NetworkConnectivity/Outputs/SpokeLinkedRouterApplianceInstancesInstance.cs @@ -19,8 +19,6 @@ public sealed class SpokeLinkedRouterApplianceInstancesInstance public readonly string? IpAddress; /// /// The URI of the virtual machine resource - /// - /// - - - /// public readonly string? VirtualMachine; diff --git a/sdk/dotnet/NetworkConnectivity/Spoke.cs b/sdk/dotnet/NetworkConnectivity/Spoke.cs index 2f6f36bedd..ca613dad59 100644 --- a/sdk/dotnet/NetworkConnectivity/Spoke.cs +++ b/sdk/dotnet/NetworkConnectivity/Spoke.cs @@ -12,9 +12,16 @@ namespace Pulumi.Gcp.NetworkConnectivity /// /// The NetworkConnectivity Spoke resource /// + /// To get more information about Spoke, see: + /// + /// * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes) + /// * How-to Guides + /// * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + /// /// ## Example Usage /// - /// ### Linked_vpc_network + /// ### Network Connectivity Spoke Linked Vpc Network Basic + /// /// ```csharp /// using System.Collections.Generic; /// using System.Linq; @@ -25,13 +32,13 @@ namespace Pulumi.Gcp.NetworkConnectivity /// { /// var network = new Gcp.Compute.Network("network", new() /// { - /// Name = "network", + /// Name = "net", /// AutoCreateSubnetworks = false, /// }); /// /// var basicHub = new Gcp.NetworkConnectivity.Hub("basic_hub", new() /// { - /// Name = "hub", + /// Name = "hub1", /// Description = "A sample hub", /// Labels = /// { @@ -41,9 +48,9 @@ namespace Pulumi.Gcp.NetworkConnectivity /// /// var primary = new Gcp.NetworkConnectivity.Spoke("primary", new() /// { - /// Name = "name", + /// Name = "spoke1", /// Location = "global", - /// Description = "A sample spoke with a linked routher appliance instance", + /// Description = "A sample spoke with a linked router appliance instance", /// Labels = /// { /// { "label-one", "value-one" }, @@ -62,7 +69,8 @@ namespace Pulumi.Gcp.NetworkConnectivity /// /// }); /// ``` - /// ### Router_appliance + /// ### Network Connectivity Spoke Router Appliance Basic + /// /// ```csharp /// using System.Collections.Generic; /// using System.Linq; @@ -73,24 +81,24 @@ namespace Pulumi.Gcp.NetworkConnectivity /// { /// var network = new Gcp.Compute.Network("network", new() /// { - /// Name = "network", + /// Name = "tf-test-network_2067", /// AutoCreateSubnetworks = false, /// }); /// /// var subnetwork = new Gcp.Compute.Subnetwork("subnetwork", new() /// { - /// Name = "subnet", + /// Name = "tf-test-subnet_40785", /// IpCidrRange = "10.0.0.0/28", - /// Region = "us-west1", + /// Region = "us-central1", /// Network = network.SelfLink, /// }); /// /// var instance = new Gcp.Compute.Instance("instance", new() /// { - /// Name = "instance", + /// Name = "tf-test-instance_79169", /// MachineType = "e2-medium", /// CanIpForward = true, - /// Zone = "us-west1-a", + /// Zone = "us-central1-a", /// BootDisk = new Gcp.Compute.Inputs.InstanceBootDiskArgs /// { /// InitializeParams = new Gcp.Compute.Inputs.InstanceBootDiskInitializeParamsArgs @@ -117,7 +125,7 @@ namespace Pulumi.Gcp.NetworkConnectivity /// /// var basicHub = new Gcp.NetworkConnectivity.Hub("basic_hub", new() /// { - /// Name = "hub", + /// Name = "tf-test-hub_56529", /// Description = "A sample hub", /// Labels = /// { @@ -127,8 +135,8 @@ namespace Pulumi.Gcp.NetworkConnectivity /// /// var primary = new Gcp.NetworkConnectivity.Spoke("primary", new() /// { - /// Name = "name", - /// Location = "us-west1", + /// Name = "tf-test-name_75413", + /// Location = "us-central1", /// Description = "A sample spoke with a linked routher appliance instance", /// Labels = /// { @@ -195,7 +203,7 @@ public partial class Spoke : global::Pulumi.CustomResource /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. /// [Output("effectiveLabels")] - public Output> EffectiveLabels { get; private set; } = null!; + public Output> EffectiveLabels { get; private set; } = null!; /// /// Immutable. The URI of the hub that this spoke is attached to. @@ -204,42 +212,46 @@ public partial class Spoke : global::Pulumi.CustomResource public Output Hub { get; private set; } = null!; /// - /// Optional labels in key:value format. For more information about labels, see [Requirements for - /// labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - /// non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - /// `effective_labels` for all of the labels present on the resource. + /// Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. /// [Output("labels")] public Output?> Labels { get; private set; } = null!; /// - /// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - /// prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - /// advertising the same prefixes. + /// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + /// Structure is documented below. /// [Output("linkedInterconnectAttachments")] public Output LinkedInterconnectAttachments { get; private set; } = null!; /// /// The URIs of linked Router appliance resources + /// Structure is documented below. /// [Output("linkedRouterApplianceInstances")] public Output LinkedRouterApplianceInstances { get; private set; } = null!; /// /// VPC network that is associated with the spoke. + /// Structure is documented below. /// [Output("linkedVpcNetwork")] public Output LinkedVpcNetwork { get; private set; } = null!; /// /// The URIs of linked VPN tunnel resources + /// Structure is documented below. /// [Output("linkedVpnTunnels")] public Output LinkedVpnTunnels { get; private set; } = null!; /// /// The location for the resource + /// + /// + /// - - - /// [Output("location")] public Output Location { get; private set; } = null!; @@ -251,19 +263,21 @@ public partial class Spoke : global::Pulumi.CustomResource public Output Name { get; private set; } = null!; /// - /// The project for the resource + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. /// [Output("project")] public Output Project { get; private set; } = null!; /// - /// The combination of labels configured directly on the resource and default labels configured on the provider. + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. /// [Output("pulumiLabels")] - public Output> PulumiLabels { get; private set; } = null!; + public Output> PulumiLabels { get; private set; } = null!; /// - /// Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + /// Output only. The current lifecycle state of this spoke. /// [Output("state")] public Output State { get; private set; } = null!; @@ -347,10 +361,9 @@ public sealed class SpokeArgs : global::Pulumi.ResourceArgs private InputMap? _labels; /// - /// Optional labels in key:value format. For more information about labels, see [Requirements for - /// labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - /// non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - /// `effective_labels` for all of the labels present on the resource. + /// Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. /// public InputMap Labels { @@ -359,33 +372,38 @@ public InputMap Labels } /// - /// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - /// prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - /// advertising the same prefixes. + /// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + /// Structure is documented below. /// [Input("linkedInterconnectAttachments")] public Input? LinkedInterconnectAttachments { get; set; } /// /// The URIs of linked Router appliance resources + /// Structure is documented below. /// [Input("linkedRouterApplianceInstances")] public Input? LinkedRouterApplianceInstances { get; set; } /// /// VPC network that is associated with the spoke. + /// Structure is documented below. /// [Input("linkedVpcNetwork")] public Input? LinkedVpcNetwork { get; set; } /// /// The URIs of linked VPN tunnel resources + /// Structure is documented below. /// [Input("linkedVpnTunnels")] public Input? LinkedVpnTunnels { get; set; } /// /// The location for the resource + /// + /// + /// - - - /// [Input("location", required: true)] public Input Location { get; set; } = null!; @@ -397,7 +415,8 @@ public InputMap Labels public Input? Name { get; set; } /// - /// The project for the resource + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. /// [Input("project")] public Input? Project { get; set; } @@ -423,17 +442,17 @@ public sealed class SpokeState : global::Pulumi.ResourceArgs public Input? Description { get; set; } [Input("effectiveLabels")] - private InputMap? _effectiveLabels; + private InputMap? _effectiveLabels; /// /// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. /// - public InputMap EffectiveLabels + public InputMap EffectiveLabels { - get => _effectiveLabels ?? (_effectiveLabels = new InputMap()); + get => _effectiveLabels ?? (_effectiveLabels = new InputMap()); set { - var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); _effectiveLabels = Output.All(value, emptySecret).Apply(v => v[0]); } } @@ -448,10 +467,9 @@ public InputMap EffectiveLabels private InputMap? _labels; /// - /// Optional labels in key:value format. For more information about labels, see [Requirements for - /// labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - /// non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - /// `effective_labels` for all of the labels present on the resource. + /// Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + /// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + /// Please refer to the field `effective_labels` for all of the labels present on the resource. /// public InputMap Labels { @@ -460,33 +478,38 @@ public InputMap Labels } /// - /// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - /// prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - /// advertising the same prefixes. + /// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + /// Structure is documented below. /// [Input("linkedInterconnectAttachments")] public Input? LinkedInterconnectAttachments { get; set; } /// /// The URIs of linked Router appliance resources + /// Structure is documented below. /// [Input("linkedRouterApplianceInstances")] public Input? LinkedRouterApplianceInstances { get; set; } /// /// VPC network that is associated with the spoke. + /// Structure is documented below. /// [Input("linkedVpcNetwork")] public Input? LinkedVpcNetwork { get; set; } /// /// The URIs of linked VPN tunnel resources + /// Structure is documented below. /// [Input("linkedVpnTunnels")] public Input? LinkedVpnTunnels { get; set; } /// /// The location for the resource + /// + /// + /// - - - /// [Input("location")] public Input? Location { get; set; } @@ -498,29 +521,31 @@ public InputMap Labels public Input? Name { get; set; } /// - /// The project for the resource + /// The ID of the project in which the resource belongs. + /// If it is not provided, the provider project is used. /// [Input("project")] public Input? Project { get; set; } [Input("pulumiLabels")] - private InputMap? _pulumiLabels; + private InputMap? _pulumiLabels; /// - /// The combination of labels configured directly on the resource and default labels configured on the provider. + /// The combination of labels configured directly on the resource + /// and default labels configured on the provider. /// - public InputMap PulumiLabels + public InputMap PulumiLabels { - get => _pulumiLabels ?? (_pulumiLabels = new InputMap()); + get => _pulumiLabels ?? (_pulumiLabels = new InputMap()); set { - var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); + var emptySecret = Output.CreateSecret(ImmutableDictionary.Create()); _pulumiLabels = Output.All(value, emptySecret).Apply(v => v[0]); } } /// - /// Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + /// Output only. The current lifecycle state of this spoke. /// [Input("state")] public Input? State { get; set; } diff --git a/sdk/dotnet/NetworkSecurity/TlsInspectionPolicy.cs b/sdk/dotnet/NetworkSecurity/TlsInspectionPolicy.cs index f3cc5721fb..8c0d5a3068 100644 --- a/sdk/dotnet/NetworkSecurity/TlsInspectionPolicy.cs +++ b/sdk/dotnet/NetworkSecurity/TlsInspectionPolicy.cs @@ -231,7 +231,7 @@ namespace Pulumi.Gcp.NetworkSecurity /// { /// CaPool = @default.Id, /// Role = "roles/privateca.certificateManager", - /// Member = nsSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = nsSa.Member, /// }); /// /// var defaultTrustConfig = new Gcp.CertificateManager.TrustConfig("default", new() diff --git a/sdk/dotnet/OrgPolicy/Policy.cs b/sdk/dotnet/OrgPolicy/Policy.cs index 652a8d3b8f..bb196114e6 100644 --- a/sdk/dotnet/OrgPolicy/Policy.cs +++ b/sdk/dotnet/OrgPolicy/Policy.cs @@ -143,7 +143,7 @@ namespace Pulumi.Gcp.OrgPolicy /// Condition = new Gcp.OrgPolicy.Inputs.PolicySpecRuleConditionArgs /// { /// Description = "A sample condition for the policy", - /// Expression = "resource.matchLabels('labelKeys/123', 'labelValues/345')", + /// Expression = "resource.matchTagId('tagKeys/123', 'tagValues/345')", /// Location = "sample-location.log", /// Title = "sample-condition", /// }, @@ -181,7 +181,7 @@ namespace Pulumi.Gcp.OrgPolicy /// { /// var constraint = new Gcp.OrgPolicy.CustomConstraint("constraint", new() /// { - /// Name = "custom.disableGkeAutoUpgrade_40785", + /// Name = "custom.disableGkeAutoUpgrade_37559", /// Parent = "organizations/123456789", /// DisplayName = "Disable GKE auto upgrade", /// Description = "Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.", diff --git a/sdk/dotnet/Projects/GetProjectService.cs b/sdk/dotnet/Projects/GetProjectService.cs index d99d9c7bd8..be1acaf53e 100644 --- a/sdk/dotnet/Projects/GetProjectService.cs +++ b/sdk/dotnet/Projects/GetProjectService.cs @@ -137,6 +137,7 @@ public GetProjectServiceInvokeArgs() [OutputType] public sealed class GetProjectServiceResult { + public readonly bool CheckIfServiceHasUsageOnDestroy; public readonly bool DisableDependentServices; public readonly bool DisableOnDestroy; /// @@ -148,6 +149,8 @@ public sealed class GetProjectServiceResult [OutputConstructor] private GetProjectServiceResult( + bool checkIfServiceHasUsageOnDestroy, + bool disableDependentServices, bool disableOnDestroy, @@ -158,6 +161,7 @@ private GetProjectServiceResult( string service) { + CheckIfServiceHasUsageOnDestroy = checkIfServiceHasUsageOnDestroy; DisableDependentServices = disableDependentServices; DisableOnDestroy = disableOnDestroy; Id = id; diff --git a/sdk/dotnet/Projects/Service.cs b/sdk/dotnet/Projects/Service.cs index ef5aa34048..4a620630f4 100644 --- a/sdk/dotnet/Projects/Service.cs +++ b/sdk/dotnet/Projects/Service.cs @@ -55,6 +55,15 @@ namespace Pulumi.Gcp.Projects [GcpResourceType("gcp:projects/service:Service")] public partial class Service : global::Pulumi.CustomResource { + /// + /// Beta + /// If `true`, the usage of the service to be disabled will be checked and an error + /// will be returned if the service to be disabled has usage in last 30 days. + /// Defaults to `false`. + /// + [Output("checkIfServiceHasUsageOnDestroy")] + public Output CheckIfServiceHasUsageOnDestroy { get; private set; } = null!; + /// /// If `true`, services that are enabled /// and which depend on this service should also be disabled when this service is @@ -126,6 +135,15 @@ public static Service Get(string name, Input id, ServiceState? state = n public sealed class ServiceArgs : global::Pulumi.ResourceArgs { + /// + /// Beta + /// If `true`, the usage of the service to be disabled will be checked and an error + /// will be returned if the service to be disabled has usage in last 30 days. + /// Defaults to `false`. + /// + [Input("checkIfServiceHasUsageOnDestroy")] + public Input? CheckIfServiceHasUsageOnDestroy { get; set; } + /// /// If `true`, services that are enabled /// and which depend on this service should also be disabled when this service is @@ -159,6 +177,15 @@ public ServiceArgs() public sealed class ServiceState : global::Pulumi.ResourceArgs { + /// + /// Beta + /// If `true`, the usage of the service to be disabled will be checked and an error + /// will be returned if the service to be disabled has usage in last 30 days. + /// Defaults to `false`. + /// + [Input("checkIfServiceHasUsageOnDestroy")] + public Input? CheckIfServiceHasUsageOnDestroy { get; set; } + /// /// If `true`, services that are enabled /// and which depend on this service should also be disabled when this service is diff --git a/sdk/dotnet/Projects/ServiceIdentity.cs b/sdk/dotnet/Projects/ServiceIdentity.cs index 1346e87906..5b21d6b86e 100644 --- a/sdk/dotnet/Projects/ServiceIdentity.cs +++ b/sdk/dotnet/Projects/ServiceIdentity.cs @@ -47,7 +47,7 @@ namespace Pulumi.Gcp.Projects /// { /// Project = project.Apply(getProjectResult => getProjectResult.ProjectId), /// Role = "roles/bigquery.jobUser", - /// Member = hcSa.Email.Apply(email => $"serviceAccount:{email}"), + /// Member = hcSa.Member, /// }); /// /// }); @@ -66,6 +66,12 @@ public partial class ServiceIdentity : global::Pulumi.CustomResource [Output("email")] public Output Email { get; private set; } = null!; + /// + /// The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + /// + [Output("member")] + public Output Member { get; private set; } = null!; + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. @@ -156,6 +162,12 @@ public sealed class ServiceIdentityState : global::Pulumi.ResourceArgs [Input("email")] public Input? Email { get; set; } + /// + /// The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + /// + [Input("member")] + public Input? Member { get; set; } + /// /// The ID of the project in which the resource belongs. /// If it is not provided, the provider project is used. diff --git a/sdk/dotnet/PubSub/Subscription.cs b/sdk/dotnet/PubSub/Subscription.cs index 980399427f..e2471dec8c 100644 --- a/sdk/dotnet/PubSub/Subscription.cs +++ b/sdk/dotnet/PubSub/Subscription.cs @@ -411,7 +411,7 @@ namespace Pulumi.Gcp.PubSub /// { /// Bucket = example.Name, /// FilenamePrefix = "pre-", - /// FilenameSuffix = "-_79169", + /// FilenameSuffix = "-_91980", /// FilenameDatetimeFormat = "YYYY-MM-DD/hh_mm_ssZ", /// MaxBytes = 1000, /// MaxDuration = "300s", @@ -466,7 +466,7 @@ namespace Pulumi.Gcp.PubSub /// { /// Bucket = example.Name, /// FilenamePrefix = "pre-", - /// FilenameSuffix = "-_56529", + /// FilenameSuffix = "-_37118", /// FilenameDatetimeFormat = "YYYY-MM-DD/hh_mm_ssZ", /// MaxBytes = 1000, /// MaxDuration = "300s", @@ -529,7 +529,7 @@ namespace Pulumi.Gcp.PubSub /// { /// Bucket = example.Name, /// FilenamePrefix = "pre-", - /// FilenameSuffix = "-_75413", + /// FilenameSuffix = "-_80332", /// FilenameDatetimeFormat = "YYYY-MM-DD/hh_mm_ssZ", /// MaxBytes = 1000, /// MaxDuration = "300s", diff --git a/sdk/dotnet/SecureSourceManager/Instance.cs b/sdk/dotnet/SecureSourceManager/Instance.cs index 788ee5ac74..b37e5818b9 100644 --- a/sdk/dotnet/SecureSourceManager/Instance.cs +++ b/sdk/dotnet/SecureSourceManager/Instance.cs @@ -168,9 +168,9 @@ namespace Pulumi.Gcp.SecureSourceManager /// }); /// /// // ca pool IAM permissions can take time to propagate - /// var wait60Seconds = new Time.Index.Sleep("wait_60_seconds", new() + /// var wait120Seconds = new Time.Index.Sleep("wait_120_seconds", new() /// { - /// CreateDuration = "60s", + /// CreateDuration = "120s", /// }, new CustomResourceOptions /// { /// DependsOn = @@ -193,7 +193,451 @@ namespace Pulumi.Gcp.SecureSourceManager /// DependsOn = /// { /// rootCa, - /// wait60Seconds, + /// wait120Seconds, + /// }, + /// }); + /// + /// }); + /// ``` + /// ### Secure Source Manager Instance Private Psc Backend + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// using Time = Pulumi.Time; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var caPool = new Gcp.CertificateAuthority.CaPool("ca_pool", new() + /// { + /// Name = "ca-pool", + /// Location = "us-central1", + /// Tier = "ENTERPRISE", + /// PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs + /// { + /// PublishCaCert = true, + /// PublishCrl = true, + /// }, + /// }); + /// + /// var rootCa = new Gcp.CertificateAuthority.Authority("root_ca", new() + /// { + /// Pool = caPool.Name, + /// CertificateAuthorityId = "root-ca", + /// Location = "us-central1", + /// Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs + /// { + /// SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs + /// { + /// Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs + /// { + /// Organization = "google", + /// CommonName = "my-certificate-authority", + /// }, + /// }, + /// X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs + /// { + /// CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs + /// { + /// IsCa = true, + /// }, + /// KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs + /// { + /// BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs + /// { + /// CertSign = true, + /// CrlSign = true, + /// }, + /// ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs + /// { + /// ServerAuth = true, + /// }, + /// }, + /// }, + /// }, + /// KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs + /// { + /// Algorithm = "RSA_PKCS1_4096_SHA256", + /// }, + /// DeletionProtection = false, + /// IgnoreActiveCertificatesOnDeletion = true, + /// SkipGracePeriod = true, + /// }); + /// + /// var caPoolBinding = new Gcp.CertificateAuthority.CaPoolIamBinding("ca_pool_binding", new() + /// { + /// CaPool = caPool.Id, + /// Role = "roles/privateca.certificateRequester", + /// Members = new[] + /// { + /// $"serviceAccount:service-{project.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com", + /// }, + /// }); + /// + /// // ca pool IAM permissions can take time to propagate + /// var wait120Seconds = new Time.Index.Sleep("wait_120_seconds", new() + /// { + /// CreateDuration = "120s", + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// caPoolBinding, + /// }, + /// }); + /// + /// // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + /// var @default = new Gcp.SecureSourceManager.Instance("default", new() + /// { + /// InstanceId = "my-instance", + /// Location = "us-central1", + /// PrivateConfig = new Gcp.SecureSourceManager.Inputs.InstancePrivateConfigArgs + /// { + /// IsPrivate = true, + /// CaPool = caPool.Id, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// rootCa, + /// wait120Seconds, + /// }, + /// }); + /// + /// // Connect SSM private instance with L4 proxy ILB. + /// var network = new Gcp.Compute.Network("network", new() + /// { + /// Name = "my-network", + /// AutoCreateSubnetworks = false, + /// }); + /// + /// var subnet = new Gcp.Compute.Subnetwork("subnet", new() + /// { + /// Name = "my-subnet", + /// Region = "us-central1", + /// Network = network.Id, + /// IpCidrRange = "10.0.1.0/24", + /// PrivateIpGoogleAccess = true, + /// }); + /// + /// var pscNeg = new Gcp.Compute.RegionNetworkEndpointGroup("psc_neg", new() + /// { + /// Name = "my-neg", + /// Region = "us-central1", + /// NetworkEndpointType = "PRIVATE_SERVICE_CONNECT", + /// PscTargetService = @default.PrivateConfig.Apply(privateConfig => privateConfig?.HttpServiceAttachment), + /// Network = network.Id, + /// Subnetwork = subnet.Id, + /// }); + /// + /// var backendService = new Gcp.Compute.RegionBackendService("backend_service", new() + /// { + /// Name = "my-backend-service", + /// Region = "us-central1", + /// Protocol = "TCP", + /// LoadBalancingScheme = "INTERNAL_MANAGED", + /// Backends = new[] + /// { + /// new Gcp.Compute.Inputs.RegionBackendServiceBackendArgs + /// { + /// Group = pscNeg.Id, + /// BalancingMode = "UTILIZATION", + /// CapacityScaler = 1, + /// }, + /// }, + /// }); + /// + /// var proxySubnet = new Gcp.Compute.Subnetwork("proxy_subnet", new() + /// { + /// Name = "my-proxy-subnet", + /// Region = "us-central1", + /// Network = network.Id, + /// IpCidrRange = "10.0.2.0/24", + /// Purpose = "REGIONAL_MANAGED_PROXY", + /// Role = "ACTIVE", + /// }); + /// + /// var targetProxy = new Gcp.Compute.RegionTargetTcpProxy("target_proxy", new() + /// { + /// Name = "my-target-proxy", + /// Region = "us-central1", + /// BackendService = backendService.Id, + /// }); + /// + /// var fwRuleTargetProxy = new Gcp.Compute.ForwardingRule("fw_rule_target_proxy", new() + /// { + /// Name = "fw-rule-target-proxy", + /// Region = "us-central1", + /// LoadBalancingScheme = "INTERNAL_MANAGED", + /// IpProtocol = "TCP", + /// PortRange = "443", + /// Target = targetProxy.Id, + /// Network = network.Id, + /// Subnetwork = subnet.Id, + /// NetworkTier = "PREMIUM", + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// proxySubnet, + /// }, + /// }); + /// + /// var privateZone = new Gcp.Dns.ManagedZone("private_zone", new() + /// { + /// Name = "my-dns-zone", + /// DnsName = "p.sourcemanager.dev.", + /// Visibility = "private", + /// PrivateVisibilityConfig = new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigArgs + /// { + /// Networks = new[] + /// { + /// new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigNetworkArgs + /// { + /// NetworkUrl = network.Id, + /// }, + /// }, + /// }, + /// }); + /// + /// var ssmInstanceHtmlRecord = new Gcp.Dns.RecordSet("ssm_instance_html_record", new() + /// { + /// Name = @default.HostConfigs.Apply(hostConfigs => $"{hostConfigs[0].Html}."), + /// Type = "A", + /// Ttl = 300, + /// ManagedZone = privateZone.Name, + /// Rrdatas = new[] + /// { + /// fwRuleTargetProxy.IpAddress, + /// }, + /// }); + /// + /// var ssmInstanceApiRecord = new Gcp.Dns.RecordSet("ssm_instance_api_record", new() + /// { + /// Name = @default.HostConfigs.Apply(hostConfigs => $"{hostConfigs[0].Api}."), + /// Type = "A", + /// Ttl = 300, + /// ManagedZone = privateZone.Name, + /// Rrdatas = new[] + /// { + /// fwRuleTargetProxy.IpAddress, + /// }, + /// }); + /// + /// var ssmInstanceGitRecord = new Gcp.Dns.RecordSet("ssm_instance_git_record", new() + /// { + /// Name = @default.HostConfigs.Apply(hostConfigs => $"{hostConfigs[0].GitHttp}."), + /// Type = "A", + /// Ttl = 300, + /// ManagedZone = privateZone.Name, + /// Rrdatas = new[] + /// { + /// fwRuleTargetProxy.IpAddress, + /// }, + /// }); + /// + /// }); + /// ``` + /// ### Secure Source Manager Instance Private Psc Endpoint + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// using Time = Pulumi.Time; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var project = Gcp.Organizations.GetProject.Invoke(); + /// + /// var caPool = new Gcp.CertificateAuthority.CaPool("ca_pool", new() + /// { + /// Name = "ca-pool", + /// Location = "us-central1", + /// Tier = "ENTERPRISE", + /// PublishingOptions = new Gcp.CertificateAuthority.Inputs.CaPoolPublishingOptionsArgs + /// { + /// PublishCaCert = true, + /// PublishCrl = true, + /// }, + /// }); + /// + /// var rootCa = new Gcp.CertificateAuthority.Authority("root_ca", new() + /// { + /// Pool = caPool.Name, + /// CertificateAuthorityId = "root-ca", + /// Location = "us-central1", + /// Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigArgs + /// { + /// SubjectConfig = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigArgs + /// { + /// Subject = new Gcp.CertificateAuthority.Inputs.AuthorityConfigSubjectConfigSubjectArgs + /// { + /// Organization = "google", + /// CommonName = "my-certificate-authority", + /// }, + /// }, + /// X509Config = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigArgs + /// { + /// CaOptions = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigCaOptionsArgs + /// { + /// IsCa = true, + /// }, + /// KeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageArgs + /// { + /// BaseKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs + /// { + /// CertSign = true, + /// CrlSign = true, + /// }, + /// ExtendedKeyUsage = new Gcp.CertificateAuthority.Inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs + /// { + /// ServerAuth = true, + /// }, + /// }, + /// }, + /// }, + /// KeySpec = new Gcp.CertificateAuthority.Inputs.AuthorityKeySpecArgs + /// { + /// Algorithm = "RSA_PKCS1_4096_SHA256", + /// }, + /// DeletionProtection = false, + /// IgnoreActiveCertificatesOnDeletion = true, + /// SkipGracePeriod = true, + /// }); + /// + /// var caPoolBinding = new Gcp.CertificateAuthority.CaPoolIamBinding("ca_pool_binding", new() + /// { + /// CaPool = caPool.Id, + /// Role = "roles/privateca.certificateRequester", + /// Members = new[] + /// { + /// $"serviceAccount:service-{project.Apply(getProjectResult => getProjectResult.Number)}@gcp-sa-sourcemanager.iam.gserviceaccount.com", + /// }, + /// }); + /// + /// // ca pool IAM permissions can take time to propagate + /// var wait120Seconds = new Time.Index.Sleep("wait_120_seconds", new() + /// { + /// CreateDuration = "120s", + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// caPoolBinding, + /// }, + /// }); + /// + /// // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + /// var @default = new Gcp.SecureSourceManager.Instance("default", new() + /// { + /// InstanceId = "my-instance", + /// Location = "us-central1", + /// PrivateConfig = new Gcp.SecureSourceManager.Inputs.InstancePrivateConfigArgs + /// { + /// IsPrivate = true, + /// CaPool = caPool.Id, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// rootCa, + /// wait120Seconds, + /// }, + /// }); + /// + /// // Connect SSM private instance with endpoint. + /// var network = new Gcp.Compute.Network("network", new() + /// { + /// Name = "my-network", + /// AutoCreateSubnetworks = false, + /// }); + /// + /// var subnet = new Gcp.Compute.Subnetwork("subnet", new() + /// { + /// Name = "my-subnet", + /// Region = "us-central1", + /// Network = network.Id, + /// IpCidrRange = "10.0.60.0/24", + /// PrivateIpGoogleAccess = true, + /// }); + /// + /// var address = new Gcp.Compute.Address("address", new() + /// { + /// Name = "my-address", + /// Region = "us-central1", + /// IPAddress = "10.0.60.100", + /// AddressType = "INTERNAL", + /// Subnetwork = subnet.Id, + /// }); + /// + /// var fwRuleServiceAttachment = new Gcp.Compute.ForwardingRule("fw_rule_service_attachment", new() + /// { + /// Name = "fw-rule-service-attachment", + /// Region = "us-central1", + /// LoadBalancingScheme = "", + /// IpAddress = address.Id, + /// Network = network.Id, + /// Target = @default.PrivateConfig.Apply(privateConfig => privateConfig?.HttpServiceAttachment), + /// }); + /// + /// var privateZone = new Gcp.Dns.ManagedZone("private_zone", new() + /// { + /// Name = "my-dns-zone", + /// DnsName = "p.sourcemanager.dev.", + /// Visibility = "private", + /// PrivateVisibilityConfig = new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigArgs + /// { + /// Networks = new[] + /// { + /// new Gcp.Dns.Inputs.ManagedZonePrivateVisibilityConfigNetworkArgs + /// { + /// NetworkUrl = network.Id, + /// }, + /// }, + /// }, + /// }); + /// + /// var ssmInstanceHtmlRecord = new Gcp.Dns.RecordSet("ssm_instance_html_record", new() + /// { + /// Name = @default.HostConfigs.Apply(hostConfigs => $"{hostConfigs[0].Html}."), + /// Type = "A", + /// Ttl = 300, + /// ManagedZone = privateZone.Name, + /// Rrdatas = new[] + /// { + /// fwRuleServiceAttachment.IpAddress, + /// }, + /// }); + /// + /// var ssmInstanceApiRecord = new Gcp.Dns.RecordSet("ssm_instance_api_record", new() + /// { + /// Name = @default.HostConfigs.Apply(hostConfigs => $"{hostConfigs[0].Api}."), + /// Type = "A", + /// Ttl = 300, + /// ManagedZone = privateZone.Name, + /// Rrdatas = new[] + /// { + /// fwRuleServiceAttachment.IpAddress, + /// }, + /// }); + /// + /// var ssmInstanceGitRecord = new Gcp.Dns.RecordSet("ssm_instance_git_record", new() + /// { + /// Name = @default.HostConfigs.Apply(hostConfigs => $"{hostConfigs[0].GitHttp}."), + /// Type = "A", + /// Ttl = 300, + /// ManagedZone = privateZone.Name, + /// Rrdatas = new[] + /// { + /// fwRuleServiceAttachment.IpAddress, /// }, /// }); /// diff --git a/sdk/dotnet/SecurityCenter/V2OrganizationMuteConfig.cs b/sdk/dotnet/SecurityCenter/V2OrganizationMuteConfig.cs new file mode 100644 index 0000000000..9fc485fceb --- /dev/null +++ b/sdk/dotnet/SecurityCenter/V2OrganizationMuteConfig.cs @@ -0,0 +1,323 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.SecurityCenter +{ + /// + /// Mute Findings is a volume management feature in Security Command Center + /// that lets you manually or programmatically hide irrelevant findings, + /// and create filters to automatically silence existing and future + /// findings based on criteria you specify. + /// + /// To get more information about OrganizationMuteConfig, see: + /// + /// * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.muteConfigs) + /// + /// ## Example Usage + /// + /// ### Scc V2 Organization Mute Config Basic + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Gcp = Pulumi.Gcp; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var @default = new Gcp.SecurityCenter.V2OrganizationMuteConfig("default", new() + /// { + /// MuteConfigId = "my-config", + /// Organization = "123456789", + /// Location = "global", + /// Description = "My custom Cloud Security Command Center Finding Organization mute Configuration", + /// Filter = "severity = \"HIGH\"", + /// Type = "STATIC", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// OrganizationMuteConfig can be imported using any of these accepted formats: + /// + /// * `organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}` + /// + /// * `{{organization}}/{{location}}/{{mute_config_id}}` + /// + /// When using the `pulumi import` command, OrganizationMuteConfig can be imported using one of the formats above. For example: + /// + /// ```sh + /// $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}} + /// ``` + /// + /// ```sh + /// $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default {{organization}}/{{location}}/{{mute_config_id}} + /// ``` + /// + [GcpResourceType("gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig")] + public partial class V2OrganizationMuteConfig : global::Pulumi.CustomResource + { + /// + /// The time at which the mute config was created. This field is set by + /// the server and will be ignored if provided on config creation. + /// + [Output("createTime")] + public Output CreateTime { get; private set; } = null!; + + /// + /// A description of the mute config. + /// + [Output("description")] + public Output Description { get; private set; } = null!; + + /// + /// An expression that defines the filter to apply across create/update + /// events of findings. While creating a filter string, be mindful of + /// the scope in which the mute configuration is being created. E.g., + /// If a filter contains project = X but is created under the + /// project = Y scope, it might not match any findings. + /// + [Output("filter")] + public Output Filter { get; private set; } = null!; + + /// + /// location Id is provided by organization. If not provided, Use global as default. + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// Email address of the user who last edited the mute config. This + /// field is set by the server and will be ignored if provided on + /// config creation or update. + /// + [Output("mostRecentEditor")] + public Output MostRecentEditor { get; private set; } = null!; + + /// + /// Unique identifier provided by the client within the parent scope. + /// + /// + /// - - - + /// + [Output("muteConfigId")] + public Output MuteConfigId { get; private set; } = null!; + + /// + /// Name of the mute config. Its format is + /// organizations/{organization}/locations/global/muteConfigs/{configId}, + /// folders/{folder}/locations/global/muteConfigs/{configId}, + /// or projects/{project}/locations/global/muteConfigs/{configId} + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The organization whose Cloud Security Command Center the Mute + /// Config lives in. + /// + [Output("organization")] + public Output Organization { get; private set; } = null!; + + /// + /// The type of the mute config. + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + /// + /// Output only. The most recent time at which the mute config was + /// updated. This field is set by the server and will be ignored if + /// provided on config creation or update. + /// + [Output("updateTime")] + public Output UpdateTime { get; private set; } = null!; + + + /// + /// Create a V2OrganizationMuteConfig resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public V2OrganizationMuteConfig(string name, V2OrganizationMuteConfigArgs args, CustomResourceOptions? options = null) + : base("gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig", name, args ?? new V2OrganizationMuteConfigArgs(), MakeResourceOptions(options, "")) + { + } + + private V2OrganizationMuteConfig(string name, Input id, V2OrganizationMuteConfigState? state = null, CustomResourceOptions? options = null) + : base("gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing V2OrganizationMuteConfig resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static V2OrganizationMuteConfig Get(string name, Input id, V2OrganizationMuteConfigState? state = null, CustomResourceOptions? options = null) + { + return new V2OrganizationMuteConfig(name, id, state, options); + } + } + + public sealed class V2OrganizationMuteConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// A description of the mute config. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// An expression that defines the filter to apply across create/update + /// events of findings. While creating a filter string, be mindful of + /// the scope in which the mute configuration is being created. E.g., + /// If a filter contains project = X but is created under the + /// project = Y scope, it might not match any findings. + /// + [Input("filter", required: true)] + public Input Filter { get; set; } = null!; + + /// + /// location Id is provided by organization. If not provided, Use global as default. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Unique identifier provided by the client within the parent scope. + /// + /// + /// - - - + /// + [Input("muteConfigId", required: true)] + public Input MuteConfigId { get; set; } = null!; + + /// + /// The organization whose Cloud Security Command Center the Mute + /// Config lives in. + /// + [Input("organization", required: true)] + public Input Organization { get; set; } = null!; + + /// + /// The type of the mute config. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public V2OrganizationMuteConfigArgs() + { + } + public static new V2OrganizationMuteConfigArgs Empty => new V2OrganizationMuteConfigArgs(); + } + + public sealed class V2OrganizationMuteConfigState : global::Pulumi.ResourceArgs + { + /// + /// The time at which the mute config was created. This field is set by + /// the server and will be ignored if provided on config creation. + /// + [Input("createTime")] + public Input? CreateTime { get; set; } + + /// + /// A description of the mute config. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// An expression that defines the filter to apply across create/update + /// events of findings. While creating a filter string, be mindful of + /// the scope in which the mute configuration is being created. E.g., + /// If a filter contains project = X but is created under the + /// project = Y scope, it might not match any findings. + /// + [Input("filter")] + public Input? Filter { get; set; } + + /// + /// location Id is provided by organization. If not provided, Use global as default. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// Email address of the user who last edited the mute config. This + /// field is set by the server and will be ignored if provided on + /// config creation or update. + /// + [Input("mostRecentEditor")] + public Input? MostRecentEditor { get; set; } + + /// + /// Unique identifier provided by the client within the parent scope. + /// + /// + /// - - - + /// + [Input("muteConfigId")] + public Input? MuteConfigId { get; set; } + + /// + /// Name of the mute config. Its format is + /// organizations/{organization}/locations/global/muteConfigs/{configId}, + /// folders/{folder}/locations/global/muteConfigs/{configId}, + /// or projects/{project}/locations/global/muteConfigs/{configId} + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The organization whose Cloud Security Command Center the Mute + /// Config lives in. + /// + [Input("organization")] + public Input? Organization { get; set; } + + /// + /// The type of the mute config. + /// + [Input("type")] + public Input? Type { get; set; } + + /// + /// Output only. The most recent time at which the mute config was + /// updated. This field is set by the server and will be ignored if + /// provided on config creation or update. + /// + [Input("updateTime")] + public Input? UpdateTime { get; set; } + + public V2OrganizationMuteConfigState() + { + } + public static new V2OrganizationMuteConfigState Empty => new V2OrganizationMuteConfigState(); + } +} diff --git a/sdk/dotnet/Sql/DatabaseInstance.cs b/sdk/dotnet/Sql/DatabaseInstance.cs index 1bb2704bca..fb65f8a4b2 100644 --- a/sdk/dotnet/Sql/DatabaseInstance.cs +++ b/sdk/dotnet/Sql/DatabaseInstance.cs @@ -100,7 +100,7 @@ namespace Pulumi.Gcp.Sql /// IpConfiguration = new Gcp.Sql.Inputs.DatabaseInstanceSettingsIpConfigurationArgs /// { /// Ipv4Enabled = false, - /// PrivateNetwork = privateNetwork.Id, + /// PrivateNetwork = privateNetwork.SelfLink, /// EnablePrivatePathForGoogleCloudServices = true, /// }, /// }, diff --git a/sdk/dotnet/VMwareEngine/GetPrivateCloud.cs b/sdk/dotnet/VMwareEngine/GetPrivateCloud.cs index a5ffc81115..23d58acbf0 100644 --- a/sdk/dotnet/VMwareEngine/GetPrivateCloud.cs +++ b/sdk/dotnet/VMwareEngine/GetPrivateCloud.cs @@ -131,6 +131,7 @@ public GetPrivateCloudInvokeArgs() [OutputType] public sealed class GetPrivateCloudResult { + public readonly int DeletionDelayHours; public readonly string Description; public readonly ImmutableArray Hcxes; /// @@ -143,6 +144,7 @@ public sealed class GetPrivateCloudResult public readonly ImmutableArray NetworkConfigs; public readonly ImmutableArray Nsxes; public readonly string? Project; + public readonly bool SendDeletionDelayHoursIfZero; public readonly string State; public readonly string Type; public readonly string Uid; @@ -150,6 +152,8 @@ public sealed class GetPrivateCloudResult [OutputConstructor] private GetPrivateCloudResult( + int deletionDelayHours, + string description, ImmutableArray hcxes, @@ -168,6 +172,8 @@ private GetPrivateCloudResult( string? project, + bool sendDeletionDelayHoursIfZero, + string state, string type, @@ -176,6 +182,7 @@ private GetPrivateCloudResult( ImmutableArray vcenters) { + DeletionDelayHours = deletionDelayHours; Description = description; Hcxes = hcxes; Id = id; @@ -185,6 +192,7 @@ private GetPrivateCloudResult( NetworkConfigs = networkConfigs; Nsxes = nsxes; Project = project; + SendDeletionDelayHoursIfZero = sendDeletionDelayHoursIfZero; State = state; Type = type; Uid = uid; diff --git a/sdk/dotnet/VMwareEngine/PrivateCloud.cs b/sdk/dotnet/VMwareEngine/PrivateCloud.cs index 3ce090308f..19b59aab44 100644 --- a/sdk/dotnet/VMwareEngine/PrivateCloud.cs +++ b/sdk/dotnet/VMwareEngine/PrivateCloud.cs @@ -104,6 +104,8 @@ namespace Pulumi.Gcp.VMwareEngine /// }, /// }, /// }, + /// DeletionDelayHours = 0, + /// SendDeletionDelayHoursIfZero = true, /// }); /// /// }); @@ -136,6 +138,13 @@ namespace Pulumi.Gcp.VMwareEngine [GcpResourceType("gcp:vmwareengine/privateCloud:PrivateCloud")] public partial class PrivateCloud : global::Pulumi.CustomResource { + /// + /// The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + /// starts the deletion request immediately. If no value is set, a default value is set at the API Level. + /// + [Output("deletionDelayHours")] + public Output DeletionDelayHours { get; private set; } = null!; + /// /// User-provided description for this private cloud. /// @@ -185,6 +194,14 @@ public partial class PrivateCloud : global::Pulumi.CustomResource [Output("project")] public Output Project { get; private set; } = null!; + /// + /// While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + /// only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + /// deletion_delay_hours. + /// + [Output("sendDeletionDelayHoursIfZero")] + public Output SendDeletionDelayHoursIfZero { get; private set; } = null!; + /// /// State of the appliance. /// Possible values are: `ACTIVE`, `CREATING`. @@ -257,6 +274,13 @@ public static PrivateCloud Get(string name, Input id, PrivateCloudState? public sealed class PrivateCloudArgs : global::Pulumi.ResourceArgs { + /// + /// The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + /// starts the deletion request immediately. If no value is set, a default value is set at the API Level. + /// + [Input("deletionDelayHours")] + public Input? DeletionDelayHours { get; set; } + /// /// User-provided description for this private cloud. /// @@ -292,6 +316,14 @@ public sealed class PrivateCloudArgs : global::Pulumi.ResourceArgs [Input("project")] public Input? Project { get; set; } + /// + /// While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + /// only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + /// deletion_delay_hours. + /// + [Input("sendDeletionDelayHoursIfZero")] + public Input? SendDeletionDelayHoursIfZero { get; set; } + /// /// Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] /// @@ -306,6 +338,13 @@ public PrivateCloudArgs() public sealed class PrivateCloudState : global::Pulumi.ResourceArgs { + /// + /// The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + /// starts the deletion request immediately. If no value is set, a default value is set at the API Level. + /// + [Input("deletionDelayHours")] + public Input? DeletionDelayHours { get; set; } + /// /// User-provided description for this private cloud. /// @@ -367,6 +406,14 @@ public InputList Nsxes [Input("project")] public Input? Project { get; set; } + /// + /// While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + /// only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + /// deletion_delay_hours. + /// + [Input("sendDeletionDelayHoursIfZero")] + public Input? SendDeletionDelayHoursIfZero { get; set; } + /// /// State of the appliance. /// Possible values are: `ACTIVE`, `CREATING`. diff --git a/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs b/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs index 16f09da7eb..e11161eddb 100644 --- a/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs +++ b/sdk/dotnet/Vertex/AiFeatureOnlineStoreFeatureview.cs @@ -258,8 +258,8 @@ namespace Pulumi.Gcp.Vertex /// /// var project = new Gcp.Organizations.Project("project", new() /// { - /// ProjectId = "tf-test_55138", - /// Name = "tf-test_37559", + /// ProjectId = "tf-test_13293", + /// Name = "tf-test_40289", /// OrgId = "123456789", /// BillingAccount = "000000-0000000-0000000-000000", /// }); diff --git a/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceAccessConfigArgs.cs b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceAccessConfigArgs.cs new file mode 100644 index 0000000000..f94044af20 --- /dev/null +++ b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceAccessConfigArgs.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Workbench.Inputs +{ + + public sealed class InstanceGceSetupNetworkInterfaceAccessConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// An external IP address associated with this instance. Specify an unused + /// static external IP address available to the project or leave this field + /// undefined to use an IP from a shared ephemeral IP address pool. If you + /// specify a static external IP address, it must live in the same region as + /// the zone of the instance. + /// + [Input("externalIp", required: true)] + public Input ExternalIp { get; set; } = null!; + + public InstanceGceSetupNetworkInterfaceAccessConfigArgs() + { + } + public static new InstanceGceSetupNetworkInterfaceAccessConfigArgs Empty => new InstanceGceSetupNetworkInterfaceAccessConfigArgs(); + } +} diff --git a/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceAccessConfigGetArgs.cs b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceAccessConfigGetArgs.cs new file mode 100644 index 0000000000..58b362bf7b --- /dev/null +++ b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceAccessConfigGetArgs.cs @@ -0,0 +1,30 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Workbench.Inputs +{ + + public sealed class InstanceGceSetupNetworkInterfaceAccessConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// An external IP address associated with this instance. Specify an unused + /// static external IP address available to the project or leave this field + /// undefined to use an IP from a shared ephemeral IP address pool. If you + /// specify a static external IP address, it must live in the same region as + /// the zone of the instance. + /// + [Input("externalIp", required: true)] + public Input ExternalIp { get; set; } = null!; + + public InstanceGceSetupNetworkInterfaceAccessConfigGetArgs() + { + } + public static new InstanceGceSetupNetworkInterfaceAccessConfigGetArgs Empty => new InstanceGceSetupNetworkInterfaceAccessConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceArgs.cs b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceArgs.cs index 45a9d0d105..8be0f653be 100644 --- a/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceArgs.cs +++ b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceArgs.cs @@ -12,6 +12,22 @@ namespace Pulumi.Gcp.Workbench.Inputs public sealed class InstanceGceSetupNetworkInterfaceArgs : global::Pulumi.ResourceArgs { + [Input("accessConfigs")] + private InputList? _accessConfigs; + + /// + /// Optional. An array of configurations for this interface. Currently, only one access + /// config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + /// instance will have an external internet access through an ephemeral + /// external IP address. + /// Structure is documented below. + /// + public InputList AccessConfigs + { + get => _accessConfigs ?? (_accessConfigs = new InputList()); + set => _accessConfigs = value; + } + /// /// Optional. The name of the VPC that this VM instance is in. /// diff --git a/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceGetArgs.cs b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceGetArgs.cs index f1ef406021..3d3a6e0c49 100644 --- a/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceGetArgs.cs +++ b/sdk/dotnet/Workbench/Inputs/InstanceGceSetupNetworkInterfaceGetArgs.cs @@ -12,6 +12,22 @@ namespace Pulumi.Gcp.Workbench.Inputs public sealed class InstanceGceSetupNetworkInterfaceGetArgs : global::Pulumi.ResourceArgs { + [Input("accessConfigs")] + private InputList? _accessConfigs; + + /// + /// Optional. An array of configurations for this interface. Currently, only one access + /// config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + /// instance will have an external internet access through an ephemeral + /// external IP address. + /// Structure is documented below. + /// + public InputList AccessConfigs + { + get => _accessConfigs ?? (_accessConfigs = new InputList()); + set => _accessConfigs = value; + } + /// /// Optional. The name of the VPC that this VM instance is in. /// diff --git a/sdk/dotnet/Workbench/Instance.cs b/sdk/dotnet/Workbench/Instance.cs index 54700ba043..264ebe730e 100644 --- a/sdk/dotnet/Workbench/Instance.cs +++ b/sdk/dotnet/Workbench/Instance.cs @@ -128,10 +128,6 @@ namespace Pulumi.Gcp.Workbench /// { "terraform", "true" }, /// }, /// }, - /// InstanceOwners = new[] - /// { - /// "my@service-account.com", - /// }, /// Labels = /// { /// { "k", "val" }, @@ -165,6 +161,21 @@ namespace Pulumi.Gcp.Workbench /// IpCidrRange = "10.0.1.0/24", /// }); /// + /// var @static = new Gcp.Compute.Address("static", new() + /// { + /// Name = "wbi-test-default", + /// }); + /// + /// var actAsPermission = new Gcp.ServiceAccount.IAMBinding("act_as_permission", new() + /// { + /// ServiceAccountId = "projects/my-project-name/serviceAccounts/my@service-account.com", + /// Role = "roles/iam.serviceAccountUser", + /// Members = new[] + /// { + /// "user:example@example.com", + /// }, + /// }); + /// /// var instance = new Gcp.Workbench.Instance("instance", new() /// { /// Name = "workbench-instance", @@ -215,6 +226,13 @@ namespace Pulumi.Gcp.Workbench /// Network = myNetwork.Id, /// Subnet = mySubnetwork.Id, /// NicType = "GVNIC", + /// AccessConfigs = new[] + /// { + /// new Gcp.Workbench.Inputs.InstanceGceSetupNetworkInterfaceAccessConfigArgs + /// { + /// ExternalIp = @static.IPAddress, + /// }, + /// }, /// }, /// }, /// Metadata = @@ -231,7 +249,7 @@ namespace Pulumi.Gcp.Workbench /// DisableProxyAccess = true, /// InstanceOwners = new[] /// { - /// "my@service-account.com", + /// "example@example.com", /// }, /// Labels = /// { diff --git a/sdk/dotnet/Workbench/Outputs/InstanceGceSetupNetworkInterface.cs b/sdk/dotnet/Workbench/Outputs/InstanceGceSetupNetworkInterface.cs index 89346868ac..dcd99947df 100644 --- a/sdk/dotnet/Workbench/Outputs/InstanceGceSetupNetworkInterface.cs +++ b/sdk/dotnet/Workbench/Outputs/InstanceGceSetupNetworkInterface.cs @@ -13,6 +13,14 @@ namespace Pulumi.Gcp.Workbench.Outputs [OutputType] public sealed class InstanceGceSetupNetworkInterface { + /// + /// Optional. An array of configurations for this interface. Currently, only one access + /// config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + /// instance will have an external internet access through an ephemeral + /// external IP address. + /// Structure is documented below. + /// + public readonly ImmutableArray AccessConfigs; /// /// Optional. The name of the VPC that this VM instance is in. /// @@ -30,12 +38,15 @@ public sealed class InstanceGceSetupNetworkInterface [OutputConstructor] private InstanceGceSetupNetworkInterface( + ImmutableArray accessConfigs, + string? network, string? nicType, string? subnet) { + AccessConfigs = accessConfigs; Network = network; NicType = nicType; Subnet = subnet; diff --git a/sdk/dotnet/Workbench/Outputs/InstanceGceSetupNetworkInterfaceAccessConfig.cs b/sdk/dotnet/Workbench/Outputs/InstanceGceSetupNetworkInterfaceAccessConfig.cs new file mode 100644 index 0000000000..43d1ed9453 --- /dev/null +++ b/sdk/dotnet/Workbench/Outputs/InstanceGceSetupNetworkInterfaceAccessConfig.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Gcp.Workbench.Outputs +{ + + [OutputType] + public sealed class InstanceGceSetupNetworkInterfaceAccessConfig + { + /// + /// An external IP address associated with this instance. Specify an unused + /// static external IP address available to the project or leave this field + /// undefined to use an IP from a shared ephemeral IP address pool. If you + /// specify a static external IP address, it must live in the same region as + /// the zone of the instance. + /// + public readonly string ExternalIp; + + [OutputConstructor] + private InstanceGceSetupNetworkInterfaceAccessConfig(string externalIp) + { + ExternalIp = externalIp; + } + } +} diff --git a/sdk/go/gcp/alloydb/instance.go b/sdk/go/gcp/alloydb/instance.go index 2d79c99a25..7b72d54b10 100644 --- a/sdk/go/gcp/alloydb/instance.go +++ b/sdk/go/gcp/alloydb/instance.go @@ -271,6 +271,9 @@ type Instance struct { // Instance level network configuration. // Structure is documented below. NetworkConfig InstanceNetworkConfigPtrOutput `pulumi:"networkConfig"` + // Configuration for enhanced query insights. + // Structure is documented below. + ObservabilityConfig InstanceObservabilityConfigOutput `pulumi:"observabilityConfig"` // Configuration for Private Service Connect (PSC) for the instance. // Structure is documented below. PscInstanceConfig InstancePscInstanceConfigPtrOutput `pulumi:"pscInstanceConfig"` @@ -389,6 +392,9 @@ type instanceState struct { // Instance level network configuration. // Structure is documented below. NetworkConfig *InstanceNetworkConfig `pulumi:"networkConfig"` + // Configuration for enhanced query insights. + // Structure is documented below. + ObservabilityConfig *InstanceObservabilityConfig `pulumi:"observabilityConfig"` // Configuration for Private Service Connect (PSC) for the instance. // Structure is documented below. PscInstanceConfig *InstancePscInstanceConfig `pulumi:"pscInstanceConfig"` @@ -464,6 +470,9 @@ type InstanceState struct { // Instance level network configuration. // Structure is documented below. NetworkConfig InstanceNetworkConfigPtrInput + // Configuration for enhanced query insights. + // Structure is documented below. + ObservabilityConfig InstanceObservabilityConfigPtrInput // Configuration for Private Service Connect (PSC) for the instance. // Structure is documented below. PscInstanceConfig InstancePscInstanceConfigPtrInput @@ -534,6 +543,9 @@ type instanceArgs struct { // Instance level network configuration. // Structure is documented below. NetworkConfig *InstanceNetworkConfig `pulumi:"networkConfig"` + // Configuration for enhanced query insights. + // Structure is documented below. + ObservabilityConfig *InstanceObservabilityConfig `pulumi:"observabilityConfig"` // Configuration for Private Service Connect (PSC) for the instance. // Structure is documented below. PscInstanceConfig *InstancePscInstanceConfig `pulumi:"pscInstanceConfig"` @@ -586,6 +598,9 @@ type InstanceArgs struct { // Instance level network configuration. // Structure is documented below. NetworkConfig InstanceNetworkConfigPtrInput + // Configuration for enhanced query insights. + // Structure is documented below. + ObservabilityConfig InstanceObservabilityConfigPtrInput // Configuration for Private Service Connect (PSC) for the instance. // Structure is documented below. PscInstanceConfig InstancePscInstanceConfigPtrInput @@ -783,6 +798,12 @@ func (o InstanceOutput) NetworkConfig() InstanceNetworkConfigPtrOutput { return o.ApplyT(func(v *Instance) InstanceNetworkConfigPtrOutput { return v.NetworkConfig }).(InstanceNetworkConfigPtrOutput) } +// Configuration for enhanced query insights. +// Structure is documented below. +func (o InstanceOutput) ObservabilityConfig() InstanceObservabilityConfigOutput { + return o.ApplyT(func(v *Instance) InstanceObservabilityConfigOutput { return v.ObservabilityConfig }).(InstanceObservabilityConfigOutput) +} + // Configuration for Private Service Connect (PSC) for the instance. // Structure is documented below. func (o InstanceOutput) PscInstanceConfig() InstancePscInstanceConfigPtrOutput { diff --git a/sdk/go/gcp/alloydb/pulumiTypes.go b/sdk/go/gcp/alloydb/pulumiTypes.go index c4ca4aa5d3..88cc5ae873 100644 --- a/sdk/go/gcp/alloydb/pulumiTypes.go +++ b/sdk/go/gcp/alloydb/pulumiTypes.go @@ -4361,6 +4361,276 @@ func (o InstanceNetworkConfigAuthorizedExternalNetworkArrayOutput) Index(i pulum }).(InstanceNetworkConfigAuthorizedExternalNetworkOutput) } +type InstanceObservabilityConfig struct { + // Observability feature status for an instance. + Enabled *bool `pulumi:"enabled"` + // Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + MaxQueryStringLength *int `pulumi:"maxQueryStringLength"` + // Preserve comments in the query string. + PreserveComments *bool `pulumi:"preserveComments"` + // 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. + QueryPlansPerMinute *int `pulumi:"queryPlansPerMinute"` + // Record application tags for an instance. This flag is turned "on" by default. + RecordApplicationTags *bool `pulumi:"recordApplicationTags"` + // Track actively running queries. If not set, default value is "off". + TrackActiveQueries *bool `pulumi:"trackActiveQueries"` + // Record wait event types during query execution for an instance. + TrackWaitEventTypes *bool `pulumi:"trackWaitEventTypes"` + // Record wait events during query execution for an instance. + TrackWaitEvents *bool `pulumi:"trackWaitEvents"` +} + +// InstanceObservabilityConfigInput is an input type that accepts InstanceObservabilityConfigArgs and InstanceObservabilityConfigOutput values. +// You can construct a concrete instance of `InstanceObservabilityConfigInput` via: +// +// InstanceObservabilityConfigArgs{...} +type InstanceObservabilityConfigInput interface { + pulumi.Input + + ToInstanceObservabilityConfigOutput() InstanceObservabilityConfigOutput + ToInstanceObservabilityConfigOutputWithContext(context.Context) InstanceObservabilityConfigOutput +} + +type InstanceObservabilityConfigArgs struct { + // Observability feature status for an instance. + Enabled pulumi.BoolPtrInput `pulumi:"enabled"` + // Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + MaxQueryStringLength pulumi.IntPtrInput `pulumi:"maxQueryStringLength"` + // Preserve comments in the query string. + PreserveComments pulumi.BoolPtrInput `pulumi:"preserveComments"` + // 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. + QueryPlansPerMinute pulumi.IntPtrInput `pulumi:"queryPlansPerMinute"` + // Record application tags for an instance. This flag is turned "on" by default. + RecordApplicationTags pulumi.BoolPtrInput `pulumi:"recordApplicationTags"` + // Track actively running queries. If not set, default value is "off". + TrackActiveQueries pulumi.BoolPtrInput `pulumi:"trackActiveQueries"` + // Record wait event types during query execution for an instance. + TrackWaitEventTypes pulumi.BoolPtrInput `pulumi:"trackWaitEventTypes"` + // Record wait events during query execution for an instance. + TrackWaitEvents pulumi.BoolPtrInput `pulumi:"trackWaitEvents"` +} + +func (InstanceObservabilityConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceObservabilityConfig)(nil)).Elem() +} + +func (i InstanceObservabilityConfigArgs) ToInstanceObservabilityConfigOutput() InstanceObservabilityConfigOutput { + return i.ToInstanceObservabilityConfigOutputWithContext(context.Background()) +} + +func (i InstanceObservabilityConfigArgs) ToInstanceObservabilityConfigOutputWithContext(ctx context.Context) InstanceObservabilityConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceObservabilityConfigOutput) +} + +func (i InstanceObservabilityConfigArgs) ToInstanceObservabilityConfigPtrOutput() InstanceObservabilityConfigPtrOutput { + return i.ToInstanceObservabilityConfigPtrOutputWithContext(context.Background()) +} + +func (i InstanceObservabilityConfigArgs) ToInstanceObservabilityConfigPtrOutputWithContext(ctx context.Context) InstanceObservabilityConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceObservabilityConfigOutput).ToInstanceObservabilityConfigPtrOutputWithContext(ctx) +} + +// InstanceObservabilityConfigPtrInput is an input type that accepts InstanceObservabilityConfigArgs, InstanceObservabilityConfigPtr and InstanceObservabilityConfigPtrOutput values. +// You can construct a concrete instance of `InstanceObservabilityConfigPtrInput` via: +// +// InstanceObservabilityConfigArgs{...} +// +// or: +// +// nil +type InstanceObservabilityConfigPtrInput interface { + pulumi.Input + + ToInstanceObservabilityConfigPtrOutput() InstanceObservabilityConfigPtrOutput + ToInstanceObservabilityConfigPtrOutputWithContext(context.Context) InstanceObservabilityConfigPtrOutput +} + +type instanceObservabilityConfigPtrType InstanceObservabilityConfigArgs + +func InstanceObservabilityConfigPtr(v *InstanceObservabilityConfigArgs) InstanceObservabilityConfigPtrInput { + return (*instanceObservabilityConfigPtrType)(v) +} + +func (*instanceObservabilityConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceObservabilityConfig)(nil)).Elem() +} + +func (i *instanceObservabilityConfigPtrType) ToInstanceObservabilityConfigPtrOutput() InstanceObservabilityConfigPtrOutput { + return i.ToInstanceObservabilityConfigPtrOutputWithContext(context.Background()) +} + +func (i *instanceObservabilityConfigPtrType) ToInstanceObservabilityConfigPtrOutputWithContext(ctx context.Context) InstanceObservabilityConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceObservabilityConfigPtrOutput) +} + +type InstanceObservabilityConfigOutput struct{ *pulumi.OutputState } + +func (InstanceObservabilityConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceObservabilityConfig)(nil)).Elem() +} + +func (o InstanceObservabilityConfigOutput) ToInstanceObservabilityConfigOutput() InstanceObservabilityConfigOutput { + return o +} + +func (o InstanceObservabilityConfigOutput) ToInstanceObservabilityConfigOutputWithContext(ctx context.Context) InstanceObservabilityConfigOutput { + return o +} + +func (o InstanceObservabilityConfigOutput) ToInstanceObservabilityConfigPtrOutput() InstanceObservabilityConfigPtrOutput { + return o.ToInstanceObservabilityConfigPtrOutputWithContext(context.Background()) +} + +func (o InstanceObservabilityConfigOutput) ToInstanceObservabilityConfigPtrOutputWithContext(ctx context.Context) InstanceObservabilityConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v InstanceObservabilityConfig) *InstanceObservabilityConfig { + return &v + }).(InstanceObservabilityConfigPtrOutput) +} + +// Observability feature status for an instance. +func (o InstanceObservabilityConfigOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) +} + +// Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. +func (o InstanceObservabilityConfigOutput) MaxQueryStringLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *int { return v.MaxQueryStringLength }).(pulumi.IntPtrOutput) +} + +// Preserve comments in the query string. +func (o InstanceObservabilityConfigOutput) PreserveComments() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *bool { return v.PreserveComments }).(pulumi.BoolPtrOutput) +} + +// 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. +func (o InstanceObservabilityConfigOutput) QueryPlansPerMinute() pulumi.IntPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *int { return v.QueryPlansPerMinute }).(pulumi.IntPtrOutput) +} + +// Record application tags for an instance. This flag is turned "on" by default. +func (o InstanceObservabilityConfigOutput) RecordApplicationTags() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *bool { return v.RecordApplicationTags }).(pulumi.BoolPtrOutput) +} + +// Track actively running queries. If not set, default value is "off". +func (o InstanceObservabilityConfigOutput) TrackActiveQueries() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *bool { return v.TrackActiveQueries }).(pulumi.BoolPtrOutput) +} + +// Record wait event types during query execution for an instance. +func (o InstanceObservabilityConfigOutput) TrackWaitEventTypes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *bool { return v.TrackWaitEventTypes }).(pulumi.BoolPtrOutput) +} + +// Record wait events during query execution for an instance. +func (o InstanceObservabilityConfigOutput) TrackWaitEvents() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceObservabilityConfig) *bool { return v.TrackWaitEvents }).(pulumi.BoolPtrOutput) +} + +type InstanceObservabilityConfigPtrOutput struct{ *pulumi.OutputState } + +func (InstanceObservabilityConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**InstanceObservabilityConfig)(nil)).Elem() +} + +func (o InstanceObservabilityConfigPtrOutput) ToInstanceObservabilityConfigPtrOutput() InstanceObservabilityConfigPtrOutput { + return o +} + +func (o InstanceObservabilityConfigPtrOutput) ToInstanceObservabilityConfigPtrOutputWithContext(ctx context.Context) InstanceObservabilityConfigPtrOutput { + return o +} + +func (o InstanceObservabilityConfigPtrOutput) Elem() InstanceObservabilityConfigOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) InstanceObservabilityConfig { + if v != nil { + return *v + } + var ret InstanceObservabilityConfig + return ret + }).(InstanceObservabilityConfigOutput) +} + +// Observability feature status for an instance. +func (o InstanceObservabilityConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *bool { + if v == nil { + return nil + } + return v.Enabled + }).(pulumi.BoolPtrOutput) +} + +// Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. +func (o InstanceObservabilityConfigPtrOutput) MaxQueryStringLength() pulumi.IntPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *int { + if v == nil { + return nil + } + return v.MaxQueryStringLength + }).(pulumi.IntPtrOutput) +} + +// Preserve comments in the query string. +func (o InstanceObservabilityConfigPtrOutput) PreserveComments() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *bool { + if v == nil { + return nil + } + return v.PreserveComments + }).(pulumi.BoolPtrOutput) +} + +// 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. +func (o InstanceObservabilityConfigPtrOutput) QueryPlansPerMinute() pulumi.IntPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *int { + if v == nil { + return nil + } + return v.QueryPlansPerMinute + }).(pulumi.IntPtrOutput) +} + +// Record application tags for an instance. This flag is turned "on" by default. +func (o InstanceObservabilityConfigPtrOutput) RecordApplicationTags() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *bool { + if v == nil { + return nil + } + return v.RecordApplicationTags + }).(pulumi.BoolPtrOutput) +} + +// Track actively running queries. If not set, default value is "off". +func (o InstanceObservabilityConfigPtrOutput) TrackActiveQueries() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *bool { + if v == nil { + return nil + } + return v.TrackActiveQueries + }).(pulumi.BoolPtrOutput) +} + +// Record wait event types during query execution for an instance. +func (o InstanceObservabilityConfigPtrOutput) TrackWaitEventTypes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *bool { + if v == nil { + return nil + } + return v.TrackWaitEventTypes + }).(pulumi.BoolPtrOutput) +} + +// Record wait events during query execution for an instance. +func (o InstanceObservabilityConfigPtrOutput) TrackWaitEvents() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *InstanceObservabilityConfig) *bool { + if v == nil { + return nil + } + return v.TrackWaitEvents + }).(pulumi.BoolPtrOutput) +} + type InstancePscInstanceConfig struct { // List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance. // These should be specified as project numbers only. @@ -5365,6 +5635,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*InstanceNetworkConfigPtrInput)(nil)).Elem(), InstanceNetworkConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceNetworkConfigAuthorizedExternalNetworkInput)(nil)).Elem(), InstanceNetworkConfigAuthorizedExternalNetworkArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceNetworkConfigAuthorizedExternalNetworkArrayInput)(nil)).Elem(), InstanceNetworkConfigAuthorizedExternalNetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceObservabilityConfigInput)(nil)).Elem(), InstanceObservabilityConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceObservabilityConfigPtrInput)(nil)).Elem(), InstanceObservabilityConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstancePscInstanceConfigInput)(nil)).Elem(), InstancePscInstanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstancePscInstanceConfigPtrInput)(nil)).Elem(), InstancePscInstanceConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceQueryInsightsConfigInput)(nil)).Elem(), InstanceQueryInsightsConfigArgs{}) @@ -5438,6 +5710,8 @@ func init() { pulumi.RegisterOutputType(InstanceNetworkConfigPtrOutput{}) pulumi.RegisterOutputType(InstanceNetworkConfigAuthorizedExternalNetworkOutput{}) pulumi.RegisterOutputType(InstanceNetworkConfigAuthorizedExternalNetworkArrayOutput{}) + pulumi.RegisterOutputType(InstanceObservabilityConfigOutput{}) + pulumi.RegisterOutputType(InstanceObservabilityConfigPtrOutput{}) pulumi.RegisterOutputType(InstancePscInstanceConfigOutput{}) pulumi.RegisterOutputType(InstancePscInstanceConfigPtrOutput{}) pulumi.RegisterOutputType(InstanceQueryInsightsConfigOutput{}) diff --git a/sdk/go/gcp/apigee/environmentKeyvaluemaps.go b/sdk/go/gcp/apigee/environmentKeyvaluemaps.go new file mode 100644 index 0000000000..13dd271528 --- /dev/null +++ b/sdk/go/gcp/apigee/environmentKeyvaluemaps.go @@ -0,0 +1,377 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package apigee + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Collection of key/value string pairs. +// +// To get more information about EnvironmentKeyvaluemaps, see: +// +// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create) +// * How-to Guides +// - [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) +// +// ## Example Usage +// +// ### Apigee Environment Keyvaluemaps Basic +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := organizations.GetClientConfig(ctx, nil, nil) +// if err != nil { +// return err +// } +// apigeeNetwork, err := compute.NewNetwork(ctx, "apigee_network", &compute.NetworkArgs{ +// Name: pulumi.String("apigee-network"), +// }) +// if err != nil { +// return err +// } +// apigeeRange, err := compute.NewGlobalAddress(ctx, "apigee_range", &compute.GlobalAddressArgs{ +// Name: pulumi.String("apigee-range"), +// Purpose: pulumi.String("VPC_PEERING"), +// AddressType: pulumi.String("INTERNAL"), +// PrefixLength: pulumi.Int(16), +// Network: apigeeNetwork.ID(), +// }) +// if err != nil { +// return err +// } +// apigeeVpcConnection, err := servicenetworking.NewConnection(ctx, "apigee_vpc_connection", &servicenetworking.ConnectionArgs{ +// Network: apigeeNetwork.ID(), +// Service: pulumi.String("servicenetworking.googleapis.com"), +// ReservedPeeringRanges: pulumi.StringArray{ +// apigeeRange.Name, +// }, +// }) +// if err != nil { +// return err +// } +// apigeeOrg, err := apigee.NewOrganization(ctx, "apigee_org", &apigee.OrganizationArgs{ +// AnalyticsRegion: pulumi.String("us-central1"), +// ProjectId: pulumi.String(current.Project), +// AuthorizedNetwork: apigeeNetwork.ID(), +// }, pulumi.DependsOn([]pulumi.Resource{ +// apigeeVpcConnection, +// })) +// if err != nil { +// return err +// } +// apigeeEnvironment, err := apigee.NewEnvironment(ctx, "apigee_environment", &apigee.EnvironmentArgs{ +// OrgId: apigeeOrg.ID(), +// Name: pulumi.String("tf-test-env"), +// Description: pulumi.String("Apigee Environment"), +// DisplayName: pulumi.String("Apigee Environment"), +// }) +// if err != nil { +// return err +// } +// apigeeInstance, err := apigee.NewInstance(ctx, "apigee_instance", &apigee.InstanceArgs{ +// Name: pulumi.String("tf-test-instance"), +// Location: pulumi.String("us-central1"), +// OrgId: apigeeOrg.ID(), +// }) +// if err != nil { +// return err +// } +// apigeeInstanceAttachment, err := apigee.NewInstanceAttachment(ctx, "apigee_instance_attachment", &apigee.InstanceAttachmentArgs{ +// InstanceId: apigeeInstance.ID(), +// Environment: apigeeEnvironment.Name, +// }) +// if err != nil { +// return err +// } +// _, err = apigee.NewEnvironmentKeyvaluemaps(ctx, "apigee_environment_keyvaluemaps", &apigee.EnvironmentKeyvaluemapsArgs{ +// EnvId: apigeeEnvironment.ID(), +// Name: pulumi.String("tf-test-env-kvms"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// apigeeOrg, +// apigeeEnvironment, +// apigeeInstance, +// apigeeInstanceAttachment, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// EnvironmentKeyvaluemaps can be imported using any of these accepted formats: +// +// * `{{env_id}}/keyvaluemaps/{{name}}` +// +// * `{{env_id}}/{{name}}` +// +// When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}} +// ``` +type EnvironmentKeyvaluemaps struct { + pulumi.CustomResourceState + + // The Apigee environment group associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}`. + // + // *** + EnvId pulumi.StringOutput `pulumi:"envId"` + // Required. ID of the key value map. + Name pulumi.StringOutput `pulumi:"name"` +} + +// NewEnvironmentKeyvaluemaps registers a new resource with the given unique name, arguments, and options. +func NewEnvironmentKeyvaluemaps(ctx *pulumi.Context, + name string, args *EnvironmentKeyvaluemapsArgs, opts ...pulumi.ResourceOption) (*EnvironmentKeyvaluemaps, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.EnvId == nil { + return nil, errors.New("invalid value for required argument 'EnvId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EnvironmentKeyvaluemaps + err := ctx.RegisterResource("gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEnvironmentKeyvaluemaps gets an existing EnvironmentKeyvaluemaps resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEnvironmentKeyvaluemaps(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EnvironmentKeyvaluemapsState, opts ...pulumi.ResourceOption) (*EnvironmentKeyvaluemaps, error) { + var resource EnvironmentKeyvaluemaps + err := ctx.ReadResource("gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EnvironmentKeyvaluemaps resources. +type environmentKeyvaluemapsState struct { + // The Apigee environment group associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}`. + // + // *** + EnvId *string `pulumi:"envId"` + // Required. ID of the key value map. + Name *string `pulumi:"name"` +} + +type EnvironmentKeyvaluemapsState struct { + // The Apigee environment group associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}`. + // + // *** + EnvId pulumi.StringPtrInput + // Required. ID of the key value map. + Name pulumi.StringPtrInput +} + +func (EnvironmentKeyvaluemapsState) ElementType() reflect.Type { + return reflect.TypeOf((*environmentKeyvaluemapsState)(nil)).Elem() +} + +type environmentKeyvaluemapsArgs struct { + // The Apigee environment group associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}`. + // + // *** + EnvId string `pulumi:"envId"` + // Required. ID of the key value map. + Name *string `pulumi:"name"` +} + +// The set of arguments for constructing a EnvironmentKeyvaluemaps resource. +type EnvironmentKeyvaluemapsArgs struct { + // The Apigee environment group associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}`. + // + // *** + EnvId pulumi.StringInput + // Required. ID of the key value map. + Name pulumi.StringPtrInput +} + +func (EnvironmentKeyvaluemapsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*environmentKeyvaluemapsArgs)(nil)).Elem() +} + +type EnvironmentKeyvaluemapsInput interface { + pulumi.Input + + ToEnvironmentKeyvaluemapsOutput() EnvironmentKeyvaluemapsOutput + ToEnvironmentKeyvaluemapsOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsOutput +} + +func (*EnvironmentKeyvaluemaps) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentKeyvaluemaps)(nil)).Elem() +} + +func (i *EnvironmentKeyvaluemaps) ToEnvironmentKeyvaluemapsOutput() EnvironmentKeyvaluemapsOutput { + return i.ToEnvironmentKeyvaluemapsOutputWithContext(context.Background()) +} + +func (i *EnvironmentKeyvaluemaps) ToEnvironmentKeyvaluemapsOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentKeyvaluemapsOutput) +} + +// EnvironmentKeyvaluemapsArrayInput is an input type that accepts EnvironmentKeyvaluemapsArray and EnvironmentKeyvaluemapsArrayOutput values. +// You can construct a concrete instance of `EnvironmentKeyvaluemapsArrayInput` via: +// +// EnvironmentKeyvaluemapsArray{ EnvironmentKeyvaluemapsArgs{...} } +type EnvironmentKeyvaluemapsArrayInput interface { + pulumi.Input + + ToEnvironmentKeyvaluemapsArrayOutput() EnvironmentKeyvaluemapsArrayOutput + ToEnvironmentKeyvaluemapsArrayOutputWithContext(context.Context) EnvironmentKeyvaluemapsArrayOutput +} + +type EnvironmentKeyvaluemapsArray []EnvironmentKeyvaluemapsInput + +func (EnvironmentKeyvaluemapsArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EnvironmentKeyvaluemaps)(nil)).Elem() +} + +func (i EnvironmentKeyvaluemapsArray) ToEnvironmentKeyvaluemapsArrayOutput() EnvironmentKeyvaluemapsArrayOutput { + return i.ToEnvironmentKeyvaluemapsArrayOutputWithContext(context.Background()) +} + +func (i EnvironmentKeyvaluemapsArray) ToEnvironmentKeyvaluemapsArrayOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentKeyvaluemapsArrayOutput) +} + +// EnvironmentKeyvaluemapsMapInput is an input type that accepts EnvironmentKeyvaluemapsMap and EnvironmentKeyvaluemapsMapOutput values. +// You can construct a concrete instance of `EnvironmentKeyvaluemapsMapInput` via: +// +// EnvironmentKeyvaluemapsMap{ "key": EnvironmentKeyvaluemapsArgs{...} } +type EnvironmentKeyvaluemapsMapInput interface { + pulumi.Input + + ToEnvironmentKeyvaluemapsMapOutput() EnvironmentKeyvaluemapsMapOutput + ToEnvironmentKeyvaluemapsMapOutputWithContext(context.Context) EnvironmentKeyvaluemapsMapOutput +} + +type EnvironmentKeyvaluemapsMap map[string]EnvironmentKeyvaluemapsInput + +func (EnvironmentKeyvaluemapsMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EnvironmentKeyvaluemaps)(nil)).Elem() +} + +func (i EnvironmentKeyvaluemapsMap) ToEnvironmentKeyvaluemapsMapOutput() EnvironmentKeyvaluemapsMapOutput { + return i.ToEnvironmentKeyvaluemapsMapOutputWithContext(context.Background()) +} + +func (i EnvironmentKeyvaluemapsMap) ToEnvironmentKeyvaluemapsMapOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentKeyvaluemapsMapOutput) +} + +type EnvironmentKeyvaluemapsOutput struct{ *pulumi.OutputState } + +func (EnvironmentKeyvaluemapsOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentKeyvaluemaps)(nil)).Elem() +} + +func (o EnvironmentKeyvaluemapsOutput) ToEnvironmentKeyvaluemapsOutput() EnvironmentKeyvaluemapsOutput { + return o +} + +func (o EnvironmentKeyvaluemapsOutput) ToEnvironmentKeyvaluemapsOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsOutput { + return o +} + +// The Apigee environment group associated with the Apigee environment, +// in the format `organizations/{{org_name}}/environments/{{env_name}}`. +// +// *** +func (o EnvironmentKeyvaluemapsOutput) EnvId() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentKeyvaluemaps) pulumi.StringOutput { return v.EnvId }).(pulumi.StringOutput) +} + +// Required. ID of the key value map. +func (o EnvironmentKeyvaluemapsOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentKeyvaluemaps) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +type EnvironmentKeyvaluemapsArrayOutput struct{ *pulumi.OutputState } + +func (EnvironmentKeyvaluemapsArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EnvironmentKeyvaluemaps)(nil)).Elem() +} + +func (o EnvironmentKeyvaluemapsArrayOutput) ToEnvironmentKeyvaluemapsArrayOutput() EnvironmentKeyvaluemapsArrayOutput { + return o +} + +func (o EnvironmentKeyvaluemapsArrayOutput) ToEnvironmentKeyvaluemapsArrayOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsArrayOutput { + return o +} + +func (o EnvironmentKeyvaluemapsArrayOutput) Index(i pulumi.IntInput) EnvironmentKeyvaluemapsOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EnvironmentKeyvaluemaps { + return vs[0].([]*EnvironmentKeyvaluemaps)[vs[1].(int)] + }).(EnvironmentKeyvaluemapsOutput) +} + +type EnvironmentKeyvaluemapsMapOutput struct{ *pulumi.OutputState } + +func (EnvironmentKeyvaluemapsMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EnvironmentKeyvaluemaps)(nil)).Elem() +} + +func (o EnvironmentKeyvaluemapsMapOutput) ToEnvironmentKeyvaluemapsMapOutput() EnvironmentKeyvaluemapsMapOutput { + return o +} + +func (o EnvironmentKeyvaluemapsMapOutput) ToEnvironmentKeyvaluemapsMapOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsMapOutput { + return o +} + +func (o EnvironmentKeyvaluemapsMapOutput) MapIndex(k pulumi.StringInput) EnvironmentKeyvaluemapsOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EnvironmentKeyvaluemaps { + return vs[0].(map[string]*EnvironmentKeyvaluemaps)[vs[1].(string)] + }).(EnvironmentKeyvaluemapsOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentKeyvaluemapsInput)(nil)).Elem(), &EnvironmentKeyvaluemaps{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentKeyvaluemapsArrayInput)(nil)).Elem(), EnvironmentKeyvaluemapsArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentKeyvaluemapsMapInput)(nil)).Elem(), EnvironmentKeyvaluemapsMap{}) + pulumi.RegisterOutputType(EnvironmentKeyvaluemapsOutput{}) + pulumi.RegisterOutputType(EnvironmentKeyvaluemapsArrayOutput{}) + pulumi.RegisterOutputType(EnvironmentKeyvaluemapsMapOutput{}) +} diff --git a/sdk/go/gcp/apigee/environmentKeyvaluemapsEntries.go b/sdk/go/gcp/apigee/environmentKeyvaluemapsEntries.go new file mode 100644 index 0000000000..b250edacd1 --- /dev/null +++ b/sdk/go/gcp/apigee/environmentKeyvaluemapsEntries.go @@ -0,0 +1,409 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package apigee + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Creates key value entries in a key value map scoped to an environment. +// +// To get more information about EnvironmentKeyvaluemapsEntries, see: +// +// * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.keyvaluemaps.entries/create) +// * How-to Guides +// - [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) +// +// ## Example Usage +// +// ### Apigee Environment Keyvaluemaps Entries Basic +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/servicenetworking" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// current, err := organizations.GetClientConfig(ctx, nil, nil) +// if err != nil { +// return err +// } +// apigeeNetwork, err := compute.NewNetwork(ctx, "apigee_network", &compute.NetworkArgs{ +// Name: pulumi.String("apigee-network"), +// }) +// if err != nil { +// return err +// } +// apigeeRange, err := compute.NewGlobalAddress(ctx, "apigee_range", &compute.GlobalAddressArgs{ +// Name: pulumi.String("apigee-range"), +// Purpose: pulumi.String("VPC_PEERING"), +// AddressType: pulumi.String("INTERNAL"), +// PrefixLength: pulumi.Int(16), +// Network: apigeeNetwork.ID(), +// }) +// if err != nil { +// return err +// } +// apigeeVpcConnection, err := servicenetworking.NewConnection(ctx, "apigee_vpc_connection", &servicenetworking.ConnectionArgs{ +// Network: apigeeNetwork.ID(), +// Service: pulumi.String("servicenetworking.googleapis.com"), +// ReservedPeeringRanges: pulumi.StringArray{ +// apigeeRange.Name, +// }, +// }) +// if err != nil { +// return err +// } +// apigeeOrg, err := apigee.NewOrganization(ctx, "apigee_org", &apigee.OrganizationArgs{ +// AnalyticsRegion: pulumi.String("us-central1"), +// ProjectId: pulumi.String(current.Project), +// AuthorizedNetwork: apigeeNetwork.ID(), +// }, pulumi.DependsOn([]pulumi.Resource{ +// apigeeVpcConnection, +// })) +// if err != nil { +// return err +// } +// apigeeEnvironment, err := apigee.NewEnvironment(ctx, "apigee_environment", &apigee.EnvironmentArgs{ +// OrgId: apigeeOrg.ID(), +// Name: pulumi.String("tf-test-env"), +// Description: pulumi.String("Apigee Environment"), +// DisplayName: pulumi.String("Apigee Environment"), +// }) +// if err != nil { +// return err +// } +// apigeeInstance, err := apigee.NewInstance(ctx, "apigee_instance", &apigee.InstanceArgs{ +// Name: pulumi.String("tf-test-instance"), +// Location: pulumi.String("us-central1"), +// OrgId: apigeeOrg.ID(), +// }) +// if err != nil { +// return err +// } +// apigeeInstanceAttachment, err := apigee.NewInstanceAttachment(ctx, "apigee_instance_attachment", &apigee.InstanceAttachmentArgs{ +// InstanceId: apigeeInstance.ID(), +// Environment: apigeeEnvironment.Name, +// }) +// if err != nil { +// return err +// } +// apigeeEnvironmentKeyvaluemaps, err := apigee.NewEnvironmentKeyvaluemaps(ctx, "apigee_environment_keyvaluemaps", &apigee.EnvironmentKeyvaluemapsArgs{ +// EnvId: pulumi.Any(createApigeeEnvironment.Id), +// Name: pulumi.String("tf-test-env-kvms"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// apigeeOrg, +// apigeeEnvironment, +// apigeeInstance, +// apigeeInstanceAttachment, +// })) +// if err != nil { +// return err +// } +// _, err = apigee.NewEnvironmentKeyvaluemapsEntries(ctx, "apigee_environment_keyvaluemaps_entries", &apigee.EnvironmentKeyvaluemapsEntriesArgs{ +// EnvKeyvaluemapId: apigeeEnvironmentKeyvaluemaps.ID(), +// Name: pulumi.String("testName"), +// Value: pulumi.String("testValue"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// apigeeOrg, +// apigeeEnvironment, +// apigeeInstance, +// apigeeInstanceAttachment, +// apigeeEnvironmentKeyvaluemaps, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// EnvironmentKeyvaluemapsEntries can be imported using any of these accepted formats: +// +// * `{{env_keyvaluemap_id}}/entries/{{name}}` +// +// * `{{env_keyvaluemap_id}}/{{name}}` +// +// When using the `pulumi import` command, EnvironmentKeyvaluemapsEntries can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/entries/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/{{name}} +// ``` +type EnvironmentKeyvaluemapsEntries struct { + pulumi.CustomResourceState + + // The Apigee environment keyvalumaps Id associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + // + // *** + EnvKeyvaluemapId pulumi.StringOutput `pulumi:"envKeyvaluemapId"` + // Required. Resource URI that can be used to identify the scope of the key value map entries. + Name pulumi.StringOutput `pulumi:"name"` + // Required. Data or payload that is being retrieved and associated with the unique key. + Value pulumi.StringOutput `pulumi:"value"` +} + +// NewEnvironmentKeyvaluemapsEntries registers a new resource with the given unique name, arguments, and options. +func NewEnvironmentKeyvaluemapsEntries(ctx *pulumi.Context, + name string, args *EnvironmentKeyvaluemapsEntriesArgs, opts ...pulumi.ResourceOption) (*EnvironmentKeyvaluemapsEntries, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.EnvKeyvaluemapId == nil { + return nil, errors.New("invalid value for required argument 'EnvKeyvaluemapId'") + } + if args.Value == nil { + return nil, errors.New("invalid value for required argument 'Value'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource EnvironmentKeyvaluemapsEntries + err := ctx.RegisterResource("gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetEnvironmentKeyvaluemapsEntries gets an existing EnvironmentKeyvaluemapsEntries resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetEnvironmentKeyvaluemapsEntries(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *EnvironmentKeyvaluemapsEntriesState, opts ...pulumi.ResourceOption) (*EnvironmentKeyvaluemapsEntries, error) { + var resource EnvironmentKeyvaluemapsEntries + err := ctx.ReadResource("gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering EnvironmentKeyvaluemapsEntries resources. +type environmentKeyvaluemapsEntriesState struct { + // The Apigee environment keyvalumaps Id associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + // + // *** + EnvKeyvaluemapId *string `pulumi:"envKeyvaluemapId"` + // Required. Resource URI that can be used to identify the scope of the key value map entries. + Name *string `pulumi:"name"` + // Required. Data or payload that is being retrieved and associated with the unique key. + Value *string `pulumi:"value"` +} + +type EnvironmentKeyvaluemapsEntriesState struct { + // The Apigee environment keyvalumaps Id associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + // + // *** + EnvKeyvaluemapId pulumi.StringPtrInput + // Required. Resource URI that can be used to identify the scope of the key value map entries. + Name pulumi.StringPtrInput + // Required. Data or payload that is being retrieved and associated with the unique key. + Value pulumi.StringPtrInput +} + +func (EnvironmentKeyvaluemapsEntriesState) ElementType() reflect.Type { + return reflect.TypeOf((*environmentKeyvaluemapsEntriesState)(nil)).Elem() +} + +type environmentKeyvaluemapsEntriesArgs struct { + // The Apigee environment keyvalumaps Id associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + // + // *** + EnvKeyvaluemapId string `pulumi:"envKeyvaluemapId"` + // Required. Resource URI that can be used to identify the scope of the key value map entries. + Name *string `pulumi:"name"` + // Required. Data or payload that is being retrieved and associated with the unique key. + Value string `pulumi:"value"` +} + +// The set of arguments for constructing a EnvironmentKeyvaluemapsEntries resource. +type EnvironmentKeyvaluemapsEntriesArgs struct { + // The Apigee environment keyvalumaps Id associated with the Apigee environment, + // in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + // + // *** + EnvKeyvaluemapId pulumi.StringInput + // Required. Resource URI that can be used to identify the scope of the key value map entries. + Name pulumi.StringPtrInput + // Required. Data or payload that is being retrieved and associated with the unique key. + Value pulumi.StringInput +} + +func (EnvironmentKeyvaluemapsEntriesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*environmentKeyvaluemapsEntriesArgs)(nil)).Elem() +} + +type EnvironmentKeyvaluemapsEntriesInput interface { + pulumi.Input + + ToEnvironmentKeyvaluemapsEntriesOutput() EnvironmentKeyvaluemapsEntriesOutput + ToEnvironmentKeyvaluemapsEntriesOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsEntriesOutput +} + +func (*EnvironmentKeyvaluemapsEntries) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentKeyvaluemapsEntries)(nil)).Elem() +} + +func (i *EnvironmentKeyvaluemapsEntries) ToEnvironmentKeyvaluemapsEntriesOutput() EnvironmentKeyvaluemapsEntriesOutput { + return i.ToEnvironmentKeyvaluemapsEntriesOutputWithContext(context.Background()) +} + +func (i *EnvironmentKeyvaluemapsEntries) ToEnvironmentKeyvaluemapsEntriesOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsEntriesOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentKeyvaluemapsEntriesOutput) +} + +// EnvironmentKeyvaluemapsEntriesArrayInput is an input type that accepts EnvironmentKeyvaluemapsEntriesArray and EnvironmentKeyvaluemapsEntriesArrayOutput values. +// You can construct a concrete instance of `EnvironmentKeyvaluemapsEntriesArrayInput` via: +// +// EnvironmentKeyvaluemapsEntriesArray{ EnvironmentKeyvaluemapsEntriesArgs{...} } +type EnvironmentKeyvaluemapsEntriesArrayInput interface { + pulumi.Input + + ToEnvironmentKeyvaluemapsEntriesArrayOutput() EnvironmentKeyvaluemapsEntriesArrayOutput + ToEnvironmentKeyvaluemapsEntriesArrayOutputWithContext(context.Context) EnvironmentKeyvaluemapsEntriesArrayOutput +} + +type EnvironmentKeyvaluemapsEntriesArray []EnvironmentKeyvaluemapsEntriesInput + +func (EnvironmentKeyvaluemapsEntriesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EnvironmentKeyvaluemapsEntries)(nil)).Elem() +} + +func (i EnvironmentKeyvaluemapsEntriesArray) ToEnvironmentKeyvaluemapsEntriesArrayOutput() EnvironmentKeyvaluemapsEntriesArrayOutput { + return i.ToEnvironmentKeyvaluemapsEntriesArrayOutputWithContext(context.Background()) +} + +func (i EnvironmentKeyvaluemapsEntriesArray) ToEnvironmentKeyvaluemapsEntriesArrayOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsEntriesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentKeyvaluemapsEntriesArrayOutput) +} + +// EnvironmentKeyvaluemapsEntriesMapInput is an input type that accepts EnvironmentKeyvaluemapsEntriesMap and EnvironmentKeyvaluemapsEntriesMapOutput values. +// You can construct a concrete instance of `EnvironmentKeyvaluemapsEntriesMapInput` via: +// +// EnvironmentKeyvaluemapsEntriesMap{ "key": EnvironmentKeyvaluemapsEntriesArgs{...} } +type EnvironmentKeyvaluemapsEntriesMapInput interface { + pulumi.Input + + ToEnvironmentKeyvaluemapsEntriesMapOutput() EnvironmentKeyvaluemapsEntriesMapOutput + ToEnvironmentKeyvaluemapsEntriesMapOutputWithContext(context.Context) EnvironmentKeyvaluemapsEntriesMapOutput +} + +type EnvironmentKeyvaluemapsEntriesMap map[string]EnvironmentKeyvaluemapsEntriesInput + +func (EnvironmentKeyvaluemapsEntriesMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EnvironmentKeyvaluemapsEntries)(nil)).Elem() +} + +func (i EnvironmentKeyvaluemapsEntriesMap) ToEnvironmentKeyvaluemapsEntriesMapOutput() EnvironmentKeyvaluemapsEntriesMapOutput { + return i.ToEnvironmentKeyvaluemapsEntriesMapOutputWithContext(context.Background()) +} + +func (i EnvironmentKeyvaluemapsEntriesMap) ToEnvironmentKeyvaluemapsEntriesMapOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsEntriesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(EnvironmentKeyvaluemapsEntriesMapOutput) +} + +type EnvironmentKeyvaluemapsEntriesOutput struct{ *pulumi.OutputState } + +func (EnvironmentKeyvaluemapsEntriesOutput) ElementType() reflect.Type { + return reflect.TypeOf((**EnvironmentKeyvaluemapsEntries)(nil)).Elem() +} + +func (o EnvironmentKeyvaluemapsEntriesOutput) ToEnvironmentKeyvaluemapsEntriesOutput() EnvironmentKeyvaluemapsEntriesOutput { + return o +} + +func (o EnvironmentKeyvaluemapsEntriesOutput) ToEnvironmentKeyvaluemapsEntriesOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsEntriesOutput { + return o +} + +// The Apigee environment keyvalumaps Id associated with the Apigee environment, +// in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. +// +// *** +func (o EnvironmentKeyvaluemapsEntriesOutput) EnvKeyvaluemapId() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentKeyvaluemapsEntries) pulumi.StringOutput { return v.EnvKeyvaluemapId }).(pulumi.StringOutput) +} + +// Required. Resource URI that can be used to identify the scope of the key value map entries. +func (o EnvironmentKeyvaluemapsEntriesOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentKeyvaluemapsEntries) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Required. Data or payload that is being retrieved and associated with the unique key. +func (o EnvironmentKeyvaluemapsEntriesOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v *EnvironmentKeyvaluemapsEntries) pulumi.StringOutput { return v.Value }).(pulumi.StringOutput) +} + +type EnvironmentKeyvaluemapsEntriesArrayOutput struct{ *pulumi.OutputState } + +func (EnvironmentKeyvaluemapsEntriesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*EnvironmentKeyvaluemapsEntries)(nil)).Elem() +} + +func (o EnvironmentKeyvaluemapsEntriesArrayOutput) ToEnvironmentKeyvaluemapsEntriesArrayOutput() EnvironmentKeyvaluemapsEntriesArrayOutput { + return o +} + +func (o EnvironmentKeyvaluemapsEntriesArrayOutput) ToEnvironmentKeyvaluemapsEntriesArrayOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsEntriesArrayOutput { + return o +} + +func (o EnvironmentKeyvaluemapsEntriesArrayOutput) Index(i pulumi.IntInput) EnvironmentKeyvaluemapsEntriesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *EnvironmentKeyvaluemapsEntries { + return vs[0].([]*EnvironmentKeyvaluemapsEntries)[vs[1].(int)] + }).(EnvironmentKeyvaluemapsEntriesOutput) +} + +type EnvironmentKeyvaluemapsEntriesMapOutput struct{ *pulumi.OutputState } + +func (EnvironmentKeyvaluemapsEntriesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*EnvironmentKeyvaluemapsEntries)(nil)).Elem() +} + +func (o EnvironmentKeyvaluemapsEntriesMapOutput) ToEnvironmentKeyvaluemapsEntriesMapOutput() EnvironmentKeyvaluemapsEntriesMapOutput { + return o +} + +func (o EnvironmentKeyvaluemapsEntriesMapOutput) ToEnvironmentKeyvaluemapsEntriesMapOutputWithContext(ctx context.Context) EnvironmentKeyvaluemapsEntriesMapOutput { + return o +} + +func (o EnvironmentKeyvaluemapsEntriesMapOutput) MapIndex(k pulumi.StringInput) EnvironmentKeyvaluemapsEntriesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *EnvironmentKeyvaluemapsEntries { + return vs[0].(map[string]*EnvironmentKeyvaluemapsEntries)[vs[1].(string)] + }).(EnvironmentKeyvaluemapsEntriesOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentKeyvaluemapsEntriesInput)(nil)).Elem(), &EnvironmentKeyvaluemapsEntries{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentKeyvaluemapsEntriesArrayInput)(nil)).Elem(), EnvironmentKeyvaluemapsEntriesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*EnvironmentKeyvaluemapsEntriesMapInput)(nil)).Elem(), EnvironmentKeyvaluemapsEntriesMap{}) + pulumi.RegisterOutputType(EnvironmentKeyvaluemapsEntriesOutput{}) + pulumi.RegisterOutputType(EnvironmentKeyvaluemapsEntriesArrayOutput{}) + pulumi.RegisterOutputType(EnvironmentKeyvaluemapsEntriesMapOutput{}) +} diff --git a/sdk/go/gcp/apigee/init.go b/sdk/go/gcp/apigee/init.go index 9561347ad4..73207df636 100644 --- a/sdk/go/gcp/apigee/init.go +++ b/sdk/go/gcp/apigee/init.go @@ -41,6 +41,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &EnvironmentIamMember{} case "gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy": r = &EnvironmentIamPolicy{} + case "gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps": + r = &EnvironmentKeyvaluemaps{} + case "gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries": + r = &EnvironmentKeyvaluemapsEntries{} case "gcp:apigee/flowhook:Flowhook": r = &Flowhook{} case "gcp:apigee/instance:Instance": @@ -128,6 +132,16 @@ func init() { "apigee/environmentIamPolicy", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "apigee/environmentKeyvaluemaps", + &module{version}, + ) + pulumi.RegisterResourceModule( + "gcp", + "apigee/environmentKeyvaluemapsEntries", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "apigee/flowhook", diff --git a/sdk/go/gcp/apigee/instance.go b/sdk/go/gcp/apigee/instance.go index 2902207968..a15ffcfc2c 100644 --- a/sdk/go/gcp/apigee/instance.go +++ b/sdk/go/gcp/apigee/instance.go @@ -241,8 +241,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms" @@ -309,9 +307,7 @@ import ( // apigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, "apigee_sa_keyuser", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: apigeeKey.ID(), // Role: pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"), -// Member: apigeeSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: apigeeSa.Member, // }) // if err != nil { // return err diff --git a/sdk/go/gcp/apigee/natAddress.go b/sdk/go/gcp/apigee/natAddress.go index ff9e6c05c0..0d5ce9a31b 100644 --- a/sdk/go/gcp/apigee/natAddress.go +++ b/sdk/go/gcp/apigee/natAddress.go @@ -30,8 +30,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms" @@ -98,9 +96,7 @@ import ( // apigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, "apigee_sa_keyuser", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: apigeeKey.ID(), // Role: pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"), -// Member: apigeeSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: apigeeSa.Member, // }) // if err != nil { // return err diff --git a/sdk/go/gcp/apigee/organization.go b/sdk/go/gcp/apigee/organization.go index df7c03cc4d..793a07112b 100644 --- a/sdk/go/gcp/apigee/organization.go +++ b/sdk/go/gcp/apigee/organization.go @@ -124,8 +124,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms" @@ -192,9 +190,7 @@ import ( // apigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, "apigee_sa_keyuser", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: apigeeKey.ID(), // Role: pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"), -// Member: apigeeSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: apigeeSa.Member, // }) // if err != nil { // return err @@ -225,8 +221,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/apigee" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations" @@ -265,9 +259,7 @@ import ( // apigeeSaKeyuser, err := kms.NewCryptoKeyIAMMember(ctx, "apigee_sa_keyuser", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: apigeeKey.ID(), // Role: pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"), -// Member: apigeeSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: apigeeSa.Member, // }) // if err != nil { // return err diff --git a/sdk/go/gcp/apphub/serviceProjectAttachment.go b/sdk/go/gcp/apphub/serviceProjectAttachment.go index edf6437ee7..1876d4f2cb 100644 --- a/sdk/go/gcp/apphub/serviceProjectAttachment.go +++ b/sdk/go/gcp/apphub/serviceProjectAttachment.go @@ -136,14 +136,14 @@ type ServiceProjectAttachment struct { // Output only. Create time. CreateTime pulumi.StringOutput `pulumi:"createTime"` - // "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + // "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" Name pulumi.StringOutput `pulumi:"name"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringOutput `pulumi:"project"` // "Immutable. Service project name in the format: \"projects/abc\" // or \"projects/123\". As input, project name with either project id or number - // are accepted. As output, this field will contain project number. " + // are accepted. As output, this field will contain project number." ServiceProject pulumi.StringPtrOutput `pulumi:"serviceProject"` // Required. The service project attachment identifier must contain the projectId of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" // @@ -190,14 +190,14 @@ func GetServiceProjectAttachment(ctx *pulumi.Context, type serviceProjectAttachmentState struct { // Output only. Create time. CreateTime *string `pulumi:"createTime"` - // "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + // "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" Name *string `pulumi:"name"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project *string `pulumi:"project"` // "Immutable. Service project name in the format: \"projects/abc\" // or \"projects/123\". As input, project name with either project id or number - // are accepted. As output, this field will contain project number. " + // are accepted. As output, this field will contain project number." ServiceProject *string `pulumi:"serviceProject"` // Required. The service project attachment identifier must contain the projectId of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" // @@ -212,14 +212,14 @@ type serviceProjectAttachmentState struct { type ServiceProjectAttachmentState struct { // Output only. Create time. CreateTime pulumi.StringPtrInput - // "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + // "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" Name pulumi.StringPtrInput // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringPtrInput // "Immutable. Service project name in the format: \"projects/abc\" // or \"projects/123\". As input, project name with either project id or number - // are accepted. As output, this field will contain project number. " + // are accepted. As output, this field will contain project number." ServiceProject pulumi.StringPtrInput // Required. The service project attachment identifier must contain the projectId of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" // @@ -241,7 +241,7 @@ type serviceProjectAttachmentArgs struct { Project *string `pulumi:"project"` // "Immutable. Service project name in the format: \"projects/abc\" // or \"projects/123\". As input, project name with either project id or number - // are accepted. As output, this field will contain project number. " + // are accepted. As output, this field will contain project number." ServiceProject *string `pulumi:"serviceProject"` // Required. The service project attachment identifier must contain the projectId of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" // @@ -256,7 +256,7 @@ type ServiceProjectAttachmentArgs struct { Project pulumi.StringPtrInput // "Immutable. Service project name in the format: \"projects/abc\" // or \"projects/123\". As input, project name with either project id or number - // are accepted. As output, this field will contain project number. " + // are accepted. As output, this field will contain project number." ServiceProject pulumi.StringPtrInput // Required. The service project attachment identifier must contain the projectId of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" // @@ -356,7 +356,7 @@ func (o ServiceProjectAttachmentOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v *ServiceProjectAttachment) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) } -// "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " +// "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" func (o ServiceProjectAttachmentOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *ServiceProjectAttachment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } @@ -369,7 +369,7 @@ func (o ServiceProjectAttachmentOutput) Project() pulumi.StringOutput { // "Immutable. Service project name in the format: \"projects/abc\" // or \"projects/123\". As input, project name with either project id or number -// are accepted. As output, this field will contain project number. " +// are accepted. As output, this field will contain project number." func (o ServiceProjectAttachmentOutput) ServiceProject() pulumi.StringPtrOutput { return o.ApplyT(func(v *ServiceProjectAttachment) pulumi.StringPtrOutput { return v.ServiceProject }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/gcp/bigquery/appProfile.go b/sdk/go/gcp/bigquery/appProfile.go index a35dd5d4c0..8b167f4d0c 100644 --- a/sdk/go/gcp/bigquery/appProfile.go +++ b/sdk/go/gcp/bigquery/appProfile.go @@ -264,6 +264,9 @@ type AppProfile struct { // // *** AppProfileId pulumi.StringOutput `pulumi:"appProfileId"` + // Specifies that this app profile is intended for read-only usage via the Data Boost feature. + // Structure is documented below. + DataBoostIsolationReadOnly AppProfileDataBoostIsolationReadOnlyPtrOutput `pulumi:"dataBoostIsolationReadOnly"` // Long form description of the use case for this app profile. Description pulumi.StringPtrOutput `pulumi:"description"` // If true, ignore safety checks when deleting/updating the app profile. @@ -327,6 +330,9 @@ type appProfileState struct { // // *** AppProfileId *string `pulumi:"appProfileId"` + // Specifies that this app profile is intended for read-only usage via the Data Boost feature. + // Structure is documented below. + DataBoostIsolationReadOnly *AppProfileDataBoostIsolationReadOnly `pulumi:"dataBoostIsolationReadOnly"` // Long form description of the use case for this app profile. Description *string `pulumi:"description"` // If true, ignore safety checks when deleting/updating the app profile. @@ -358,6 +364,9 @@ type AppProfileState struct { // // *** AppProfileId pulumi.StringPtrInput + // Specifies that this app profile is intended for read-only usage via the Data Boost feature. + // Structure is documented below. + DataBoostIsolationReadOnly AppProfileDataBoostIsolationReadOnlyPtrInput // Long form description of the use case for this app profile. Description pulumi.StringPtrInput // If true, ignore safety checks when deleting/updating the app profile. @@ -393,6 +402,9 @@ type appProfileArgs struct { // // *** AppProfileId string `pulumi:"appProfileId"` + // Specifies that this app profile is intended for read-only usage via the Data Boost feature. + // Structure is documented below. + DataBoostIsolationReadOnly *AppProfileDataBoostIsolationReadOnly `pulumi:"dataBoostIsolationReadOnly"` // Long form description of the use case for this app profile. Description *string `pulumi:"description"` // If true, ignore safety checks when deleting/updating the app profile. @@ -423,6 +435,9 @@ type AppProfileArgs struct { // // *** AppProfileId pulumi.StringInput + // Specifies that this app profile is intended for read-only usage via the Data Boost feature. + // Structure is documented below. + DataBoostIsolationReadOnly AppProfileDataBoostIsolationReadOnlyPtrInput // Long form description of the use case for this app profile. Description pulumi.StringPtrInput // If true, ignore safety checks when deleting/updating the app profile. @@ -541,6 +556,12 @@ func (o AppProfileOutput) AppProfileId() pulumi.StringOutput { return o.ApplyT(func(v *AppProfile) pulumi.StringOutput { return v.AppProfileId }).(pulumi.StringOutput) } +// Specifies that this app profile is intended for read-only usage via the Data Boost feature. +// Structure is documented below. +func (o AppProfileOutput) DataBoostIsolationReadOnly() AppProfileDataBoostIsolationReadOnlyPtrOutput { + return o.ApplyT(func(v *AppProfile) AppProfileDataBoostIsolationReadOnlyPtrOutput { return v.DataBoostIsolationReadOnly }).(AppProfileDataBoostIsolationReadOnlyPtrOutput) +} + // Long form description of the use case for this app profile. func (o AppProfileOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *AppProfile) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) diff --git a/sdk/go/gcp/bigquery/pulumiTypes.go b/sdk/go/gcp/bigquery/pulumiTypes.go index 10494c429a..353febdb52 100644 --- a/sdk/go/gcp/bigquery/pulumiTypes.go +++ b/sdk/go/gcp/bigquery/pulumiTypes.go @@ -13,6 +13,147 @@ import ( var _ = internal.GetEnvOrDefault +type AppProfileDataBoostIsolationReadOnly struct { + // The Compute Billing Owner for this Data Boost App Profile. + // Possible values are: `HOST_PAYS`. + ComputeBillingOwner string `pulumi:"computeBillingOwner"` +} + +// AppProfileDataBoostIsolationReadOnlyInput is an input type that accepts AppProfileDataBoostIsolationReadOnlyArgs and AppProfileDataBoostIsolationReadOnlyOutput values. +// You can construct a concrete instance of `AppProfileDataBoostIsolationReadOnlyInput` via: +// +// AppProfileDataBoostIsolationReadOnlyArgs{...} +type AppProfileDataBoostIsolationReadOnlyInput interface { + pulumi.Input + + ToAppProfileDataBoostIsolationReadOnlyOutput() AppProfileDataBoostIsolationReadOnlyOutput + ToAppProfileDataBoostIsolationReadOnlyOutputWithContext(context.Context) AppProfileDataBoostIsolationReadOnlyOutput +} + +type AppProfileDataBoostIsolationReadOnlyArgs struct { + // The Compute Billing Owner for this Data Boost App Profile. + // Possible values are: `HOST_PAYS`. + ComputeBillingOwner pulumi.StringInput `pulumi:"computeBillingOwner"` +} + +func (AppProfileDataBoostIsolationReadOnlyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AppProfileDataBoostIsolationReadOnly)(nil)).Elem() +} + +func (i AppProfileDataBoostIsolationReadOnlyArgs) ToAppProfileDataBoostIsolationReadOnlyOutput() AppProfileDataBoostIsolationReadOnlyOutput { + return i.ToAppProfileDataBoostIsolationReadOnlyOutputWithContext(context.Background()) +} + +func (i AppProfileDataBoostIsolationReadOnlyArgs) ToAppProfileDataBoostIsolationReadOnlyOutputWithContext(ctx context.Context) AppProfileDataBoostIsolationReadOnlyOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppProfileDataBoostIsolationReadOnlyOutput) +} + +func (i AppProfileDataBoostIsolationReadOnlyArgs) ToAppProfileDataBoostIsolationReadOnlyPtrOutput() AppProfileDataBoostIsolationReadOnlyPtrOutput { + return i.ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(context.Background()) +} + +func (i AppProfileDataBoostIsolationReadOnlyArgs) ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(ctx context.Context) AppProfileDataBoostIsolationReadOnlyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppProfileDataBoostIsolationReadOnlyOutput).ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(ctx) +} + +// AppProfileDataBoostIsolationReadOnlyPtrInput is an input type that accepts AppProfileDataBoostIsolationReadOnlyArgs, AppProfileDataBoostIsolationReadOnlyPtr and AppProfileDataBoostIsolationReadOnlyPtrOutput values. +// You can construct a concrete instance of `AppProfileDataBoostIsolationReadOnlyPtrInput` via: +// +// AppProfileDataBoostIsolationReadOnlyArgs{...} +// +// or: +// +// nil +type AppProfileDataBoostIsolationReadOnlyPtrInput interface { + pulumi.Input + + ToAppProfileDataBoostIsolationReadOnlyPtrOutput() AppProfileDataBoostIsolationReadOnlyPtrOutput + ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(context.Context) AppProfileDataBoostIsolationReadOnlyPtrOutput +} + +type appProfileDataBoostIsolationReadOnlyPtrType AppProfileDataBoostIsolationReadOnlyArgs + +func AppProfileDataBoostIsolationReadOnlyPtr(v *AppProfileDataBoostIsolationReadOnlyArgs) AppProfileDataBoostIsolationReadOnlyPtrInput { + return (*appProfileDataBoostIsolationReadOnlyPtrType)(v) +} + +func (*appProfileDataBoostIsolationReadOnlyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AppProfileDataBoostIsolationReadOnly)(nil)).Elem() +} + +func (i *appProfileDataBoostIsolationReadOnlyPtrType) ToAppProfileDataBoostIsolationReadOnlyPtrOutput() AppProfileDataBoostIsolationReadOnlyPtrOutput { + return i.ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(context.Background()) +} + +func (i *appProfileDataBoostIsolationReadOnlyPtrType) ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(ctx context.Context) AppProfileDataBoostIsolationReadOnlyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppProfileDataBoostIsolationReadOnlyPtrOutput) +} + +type AppProfileDataBoostIsolationReadOnlyOutput struct{ *pulumi.OutputState } + +func (AppProfileDataBoostIsolationReadOnlyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AppProfileDataBoostIsolationReadOnly)(nil)).Elem() +} + +func (o AppProfileDataBoostIsolationReadOnlyOutput) ToAppProfileDataBoostIsolationReadOnlyOutput() AppProfileDataBoostIsolationReadOnlyOutput { + return o +} + +func (o AppProfileDataBoostIsolationReadOnlyOutput) ToAppProfileDataBoostIsolationReadOnlyOutputWithContext(ctx context.Context) AppProfileDataBoostIsolationReadOnlyOutput { + return o +} + +func (o AppProfileDataBoostIsolationReadOnlyOutput) ToAppProfileDataBoostIsolationReadOnlyPtrOutput() AppProfileDataBoostIsolationReadOnlyPtrOutput { + return o.ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(context.Background()) +} + +func (o AppProfileDataBoostIsolationReadOnlyOutput) ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(ctx context.Context) AppProfileDataBoostIsolationReadOnlyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AppProfileDataBoostIsolationReadOnly) *AppProfileDataBoostIsolationReadOnly { + return &v + }).(AppProfileDataBoostIsolationReadOnlyPtrOutput) +} + +// The Compute Billing Owner for this Data Boost App Profile. +// Possible values are: `HOST_PAYS`. +func (o AppProfileDataBoostIsolationReadOnlyOutput) ComputeBillingOwner() pulumi.StringOutput { + return o.ApplyT(func(v AppProfileDataBoostIsolationReadOnly) string { return v.ComputeBillingOwner }).(pulumi.StringOutput) +} + +type AppProfileDataBoostIsolationReadOnlyPtrOutput struct{ *pulumi.OutputState } + +func (AppProfileDataBoostIsolationReadOnlyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AppProfileDataBoostIsolationReadOnly)(nil)).Elem() +} + +func (o AppProfileDataBoostIsolationReadOnlyPtrOutput) ToAppProfileDataBoostIsolationReadOnlyPtrOutput() AppProfileDataBoostIsolationReadOnlyPtrOutput { + return o +} + +func (o AppProfileDataBoostIsolationReadOnlyPtrOutput) ToAppProfileDataBoostIsolationReadOnlyPtrOutputWithContext(ctx context.Context) AppProfileDataBoostIsolationReadOnlyPtrOutput { + return o +} + +func (o AppProfileDataBoostIsolationReadOnlyPtrOutput) Elem() AppProfileDataBoostIsolationReadOnlyOutput { + return o.ApplyT(func(v *AppProfileDataBoostIsolationReadOnly) AppProfileDataBoostIsolationReadOnly { + if v != nil { + return *v + } + var ret AppProfileDataBoostIsolationReadOnly + return ret + }).(AppProfileDataBoostIsolationReadOnlyOutput) +} + +// The Compute Billing Owner for this Data Boost App Profile. +// Possible values are: `HOST_PAYS`. +func (o AppProfileDataBoostIsolationReadOnlyPtrOutput) ComputeBillingOwner() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AppProfileDataBoostIsolationReadOnly) *string { + if v == nil { + return nil + } + return &v.ComputeBillingOwner + }).(pulumi.StringPtrOutput) +} + type AppProfileSingleClusterRouting struct { // If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile. // It is unsafe to send these requests to the same table/row/column in multiple clusters. @@ -15863,6 +16004,8 @@ func (o GetDatasetExternalDatasetReferenceArrayOutput) Index(i pulumi.IntInput) } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AppProfileDataBoostIsolationReadOnlyInput)(nil)).Elem(), AppProfileDataBoostIsolationReadOnlyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AppProfileDataBoostIsolationReadOnlyPtrInput)(nil)).Elem(), AppProfileDataBoostIsolationReadOnlyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppProfileSingleClusterRoutingInput)(nil)).Elem(), AppProfileSingleClusterRoutingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppProfileSingleClusterRoutingPtrInput)(nil)).Elem(), AppProfileSingleClusterRoutingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AppProfileStandardIsolationInput)(nil)).Elem(), AppProfileStandardIsolationArgs{}) @@ -16031,6 +16174,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetDatasetDefaultEncryptionConfigurationArrayInput)(nil)).Elem(), GetDatasetDefaultEncryptionConfigurationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatasetExternalDatasetReferenceInput)(nil)).Elem(), GetDatasetExternalDatasetReferenceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDatasetExternalDatasetReferenceArrayInput)(nil)).Elem(), GetDatasetExternalDatasetReferenceArray{}) + pulumi.RegisterOutputType(AppProfileDataBoostIsolationReadOnlyOutput{}) + pulumi.RegisterOutputType(AppProfileDataBoostIsolationReadOnlyPtrOutput{}) pulumi.RegisterOutputType(AppProfileSingleClusterRoutingOutput{}) pulumi.RegisterOutputType(AppProfileSingleClusterRoutingPtrOutput{}) pulumi.RegisterOutputType(AppProfileStandardIsolationOutput{}) diff --git a/sdk/go/gcp/bigquery/reservation.go b/sdk/go/gcp/bigquery/reservation.go index 037ed847e2..749034b948 100644 --- a/sdk/go/gcp/bigquery/reservation.go +++ b/sdk/go/gcp/bigquery/reservation.go @@ -96,8 +96,13 @@ type Reservation struct { // The geographic location where the transfer config should reside. // Examples: US, EU, asia-northeast1. The default value is US. Location pulumi.StringPtrOutput `pulumi:"location"` + // (Optional, Deprecated) // Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). // If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + // + // > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + // + // Deprecated: `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. MultiRegionAuxiliary pulumi.BoolPtrOutput `pulumi:"multiRegionAuxiliary"` // The name of the reservation. This field must only contain alphanumeric characters or dash. // @@ -158,8 +163,13 @@ type reservationState struct { // The geographic location where the transfer config should reside. // Examples: US, EU, asia-northeast1. The default value is US. Location *string `pulumi:"location"` + // (Optional, Deprecated) // Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). // If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + // + // > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + // + // Deprecated: `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. MultiRegionAuxiliary *bool `pulumi:"multiRegionAuxiliary"` // The name of the reservation. This field must only contain alphanumeric characters or dash. // @@ -188,8 +198,13 @@ type ReservationState struct { // The geographic location where the transfer config should reside. // Examples: US, EU, asia-northeast1. The default value is US. Location pulumi.StringPtrInput + // (Optional, Deprecated) // Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). // If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + // + // > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + // + // Deprecated: `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. MultiRegionAuxiliary pulumi.BoolPtrInput // The name of the reservation. This field must only contain alphanumeric characters or dash. // @@ -222,8 +237,13 @@ type reservationArgs struct { // The geographic location where the transfer config should reside. // Examples: US, EU, asia-northeast1. The default value is US. Location *string `pulumi:"location"` + // (Optional, Deprecated) // Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). // If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + // + // > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + // + // Deprecated: `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. MultiRegionAuxiliary *bool `pulumi:"multiRegionAuxiliary"` // The name of the reservation. This field must only contain alphanumeric characters or dash. // @@ -253,8 +273,13 @@ type ReservationArgs struct { // The geographic location where the transfer config should reside. // Examples: US, EU, asia-northeast1. The default value is US. Location pulumi.StringPtrInput + // (Optional, Deprecated) // Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). // If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + // + // > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + // + // Deprecated: `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. MultiRegionAuxiliary pulumi.BoolPtrInput // The name of the reservation. This field must only contain alphanumeric characters or dash. // @@ -384,8 +409,13 @@ func (o ReservationOutput) Location() pulumi.StringPtrOutput { return o.ApplyT(func(v *Reservation) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) } +// (Optional, Deprecated) // Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). // If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. +// +// > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. +// +// Deprecated: `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. func (o ReservationOutput) MultiRegionAuxiliary() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Reservation) pulumi.BoolPtrOutput { return v.MultiRegionAuxiliary }).(pulumi.BoolPtrOutput) } diff --git a/sdk/go/gcp/bigquery/table.go b/sdk/go/gcp/bigquery/table.go index 3ae14f8ac4..9f6320ab57 100644 --- a/sdk/go/gcp/bigquery/table.go +++ b/sdk/go/gcp/bigquery/table.go @@ -126,8 +126,15 @@ import ( type Table struct { pulumi.CustomResourceState - // This field is in beta. If set to true, it allows table deletion when there - // are still resource tags attached. The default value is false. + // If set to true, it allows table + // deletion when there are still resource tags attached. The default value is + // false. + // + // ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + // removed in a future major release. The default behavior will be allowing + // the presence of resource tags on deletion after the next major release. + // + // Deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. AllowResourceTagsOnDeletion pulumi.BoolPtrOutput `pulumi:"allowResourceTagsOnDeletion"` // Specifies column names to use for data clustering. // Up to four top-level columns are allowed, and should be specified in @@ -213,7 +220,7 @@ type Table struct { // require a partition filter that can be used for partition elimination to be // specified. RequirePartitionFilter pulumi.BoolPtrOutput `pulumi:"requirePartitionFilter"` - // This field is in beta. The tags attached to this table. Tag keys are + // The tags attached to this table. Tag keys are // globally unique. Tag key is expected to be in the namespaced format, for // example "123456789012/environment" where 123456789012 is the ID of the // parent organization or project resource for this tag key. Tag value is @@ -285,8 +292,15 @@ func GetTable(ctx *pulumi.Context, // Input properties used for looking up and filtering Table resources. type tableState struct { - // This field is in beta. If set to true, it allows table deletion when there - // are still resource tags attached. The default value is false. + // If set to true, it allows table + // deletion when there are still resource tags attached. The default value is + // false. + // + // ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + // removed in a future major release. The default behavior will be allowing + // the presence of resource tags on deletion after the next major release. + // + // Deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. AllowResourceTagsOnDeletion *bool `pulumi:"allowResourceTagsOnDeletion"` // Specifies column names to use for data clustering. // Up to four top-level columns are allowed, and should be specified in @@ -372,7 +386,7 @@ type tableState struct { // require a partition filter that can be used for partition elimination to be // specified. RequirePartitionFilter *bool `pulumi:"requirePartitionFilter"` - // This field is in beta. The tags attached to this table. Tag keys are + // The tags attached to this table. Tag keys are // globally unique. Tag key is expected to be in the namespaced format, for // example "123456789012/environment" where 123456789012 is the ID of the // parent organization or project resource for this tag key. Tag value is @@ -404,8 +418,15 @@ type tableState struct { } type TableState struct { - // This field is in beta. If set to true, it allows table deletion when there - // are still resource tags attached. The default value is false. + // If set to true, it allows table + // deletion when there are still resource tags attached. The default value is + // false. + // + // ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + // removed in a future major release. The default behavior will be allowing + // the presence of resource tags on deletion after the next major release. + // + // Deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. AllowResourceTagsOnDeletion pulumi.BoolPtrInput // Specifies column names to use for data clustering. // Up to four top-level columns are allowed, and should be specified in @@ -491,7 +512,7 @@ type TableState struct { // require a partition filter that can be used for partition elimination to be // specified. RequirePartitionFilter pulumi.BoolPtrInput - // This field is in beta. The tags attached to this table. Tag keys are + // The tags attached to this table. Tag keys are // globally unique. Tag key is expected to be in the namespaced format, for // example "123456789012/environment" where 123456789012 is the ID of the // parent organization or project resource for this tag key. Tag value is @@ -527,8 +548,15 @@ func (TableState) ElementType() reflect.Type { } type tableArgs struct { - // This field is in beta. If set to true, it allows table deletion when there - // are still resource tags attached. The default value is false. + // If set to true, it allows table + // deletion when there are still resource tags attached. The default value is + // false. + // + // ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + // removed in a future major release. The default behavior will be allowing + // the presence of resource tags on deletion after the next major release. + // + // Deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. AllowResourceTagsOnDeletion *bool `pulumi:"allowResourceTagsOnDeletion"` // Specifies column names to use for data clustering. // Up to four top-level columns are allowed, and should be specified in @@ -581,7 +609,7 @@ type tableArgs struct { // require a partition filter that can be used for partition elimination to be // specified. RequirePartitionFilter *bool `pulumi:"requirePartitionFilter"` - // This field is in beta. The tags attached to this table. Tag keys are + // The tags attached to this table. Tag keys are // globally unique. Tag key is expected to be in the namespaced format, for // example "123456789012/environment" where 123456789012 is the ID of the // parent organization or project resource for this tag key. Tag value is @@ -610,8 +638,15 @@ type tableArgs struct { // The set of arguments for constructing a Table resource. type TableArgs struct { - // This field is in beta. If set to true, it allows table deletion when there - // are still resource tags attached. The default value is false. + // If set to true, it allows table + // deletion when there are still resource tags attached. The default value is + // false. + // + // ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + // removed in a future major release. The default behavior will be allowing + // the presence of resource tags on deletion after the next major release. + // + // Deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. AllowResourceTagsOnDeletion pulumi.BoolPtrInput // Specifies column names to use for data clustering. // Up to four top-level columns are allowed, and should be specified in @@ -664,7 +699,7 @@ type TableArgs struct { // require a partition filter that can be used for partition elimination to be // specified. RequirePartitionFilter pulumi.BoolPtrInput - // This field is in beta. The tags attached to this table. Tag keys are + // The tags attached to this table. Tag keys are // globally unique. Tag key is expected to be in the namespaced format, for // example "123456789012/environment" where 123456789012 is the ID of the // parent organization or project resource for this tag key. Tag value is @@ -778,8 +813,15 @@ func (o TableOutput) ToTableOutputWithContext(ctx context.Context) TableOutput { return o } -// This field is in beta. If set to true, it allows table deletion when there -// are still resource tags attached. The default value is false. +// If set to true, it allows table +// deletion when there are still resource tags attached. The default value is +// false. +// +// ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be +// removed in a future major release. The default behavior will be allowing +// the presence of resource tags on deletion after the next major release. +// +// Deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. func (o TableOutput) AllowResourceTagsOnDeletion() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Table) pulumi.BoolPtrOutput { return v.AllowResourceTagsOnDeletion }).(pulumi.BoolPtrOutput) } @@ -937,7 +979,7 @@ func (o TableOutput) RequirePartitionFilter() pulumi.BoolPtrOutput { return o.ApplyT(func(v *Table) pulumi.BoolPtrOutput { return v.RequirePartitionFilter }).(pulumi.BoolPtrOutput) } -// This field is in beta. The tags attached to this table. Tag keys are +// The tags attached to this table. Tag keys are // globally unique. Tag key is expected to be in the namespaced format, for // example "123456789012/environment" where 123456789012 is the ID of the // parent organization or project resource for this tag key. Tag value is diff --git a/sdk/go/gcp/bigtable/table.go b/sdk/go/gcp/bigtable/table.go index 9ca559d2a8..4f2023fdcf 100644 --- a/sdk/go/gcp/bigtable/table.go +++ b/sdk/go/gcp/bigtable/table.go @@ -61,6 +61,10 @@ import ( // }, // }, // ChangeStreamRetention: pulumi.String("24h0m0s"), +// AutomatedBackupPolicy: &bigtable.TableAutomatedBackupPolicyArgs{ +// RetentionPeriod: pulumi.String("72h0m0s"), +// Frequency: pulumi.String("24h0m0s"), +// }, // }) // if err != nil { // return err @@ -99,12 +103,11 @@ import ( type Table struct { pulumi.CustomResourceState - // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - // Retention Period and Frequency to 0. - AutomatedBackupPolicy TableAutomatedBackupPolicyPtrOutput `pulumi:"automatedBackupPolicy"` - // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. // // *** + AutomatedBackupPolicy TableAutomatedBackupPolicyPtrOutput `pulumi:"automatedBackupPolicy"` + // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. ChangeStreamRetention pulumi.StringOutput `pulumi:"changeStreamRetention"` // A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. ColumnFamilies TableColumnFamilyArrayOutput `pulumi:"columnFamilies"` @@ -156,12 +159,11 @@ func GetTable(ctx *pulumi.Context, // Input properties used for looking up and filtering Table resources. type tableState struct { - // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - // Retention Period and Frequency to 0. - AutomatedBackupPolicy *TableAutomatedBackupPolicy `pulumi:"automatedBackupPolicy"` - // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. // // *** + AutomatedBackupPolicy *TableAutomatedBackupPolicy `pulumi:"automatedBackupPolicy"` + // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. ChangeStreamRetention *string `pulumi:"changeStreamRetention"` // A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. ColumnFamilies []TableColumnFamily `pulumi:"columnFamilies"` @@ -181,12 +183,11 @@ type tableState struct { } type TableState struct { - // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - // Retention Period and Frequency to 0. - AutomatedBackupPolicy TableAutomatedBackupPolicyPtrInput - // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. // // *** + AutomatedBackupPolicy TableAutomatedBackupPolicyPtrInput + // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. ChangeStreamRetention pulumi.StringPtrInput // A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. ColumnFamilies TableColumnFamilyArrayInput @@ -210,12 +211,11 @@ func (TableState) ElementType() reflect.Type { } type tableArgs struct { - // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - // Retention Period and Frequency to 0. - AutomatedBackupPolicy *TableAutomatedBackupPolicy `pulumi:"automatedBackupPolicy"` - // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. // // *** + AutomatedBackupPolicy *TableAutomatedBackupPolicy `pulumi:"automatedBackupPolicy"` + // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. ChangeStreamRetention *string `pulumi:"changeStreamRetention"` // A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. ColumnFamilies []TableColumnFamily `pulumi:"columnFamilies"` @@ -236,12 +236,11 @@ type tableArgs struct { // The set of arguments for constructing a Table resource. type TableArgs struct { - // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - // Retention Period and Frequency to 0. - AutomatedBackupPolicy TableAutomatedBackupPolicyPtrInput - // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + // Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. // // *** + AutomatedBackupPolicy TableAutomatedBackupPolicyPtrInput + // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. ChangeStreamRetention pulumi.StringPtrInput // A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. ColumnFamilies TableColumnFamilyArrayInput @@ -347,15 +346,14 @@ func (o TableOutput) ToTableOutputWithContext(ctx context.Context) TableOutput { return o } -// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both -// Retention Period and Frequency to 0. +// Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. +// +// *** func (o TableOutput) AutomatedBackupPolicy() TableAutomatedBackupPolicyPtrOutput { return o.ApplyT(func(v *Table) TableAutomatedBackupPolicyPtrOutput { return v.AutomatedBackupPolicy }).(TableAutomatedBackupPolicyPtrOutput) } // Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. -// -// *** func (o TableOutput) ChangeStreamRetention() pulumi.StringOutput { return o.ApplyT(func(v *Table) pulumi.StringOutput { return v.ChangeStreamRetention }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/certificateauthority/authority.go b/sdk/go/gcp/certificateauthority/authority.go index ddbaaf488a..edad6dfb25 100644 --- a/sdk/go/gcp/certificateauthority/authority.go +++ b/sdk/go/gcp/certificateauthority/authority.go @@ -219,8 +219,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects" @@ -239,9 +237,7 @@ import ( // privatecaSaKeyuserSignerverifier, err := kms.NewCryptoKeyIAMMember(ctx, "privateca_sa_keyuser_signerverifier", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: pulumi.String("projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key"), // Role: pulumi.String("roles/cloudkms.signerVerifier"), -// Member: privatecaSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: privatecaSa.Member, // }) // if err != nil { // return err @@ -249,9 +245,7 @@ import ( // privatecaSaKeyuserViewer, err := kms.NewCryptoKeyIAMMember(ctx, "privateca_sa_keyuser_viewer", &kms.CryptoKeyIAMMemberArgs{ // CryptoKeyId: pulumi.String("projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key"), // Role: pulumi.String("roles/viewer"), -// Member: privatecaSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: privatecaSa.Member, // }) // if err != nil { // return err diff --git a/sdk/go/gcp/cloudfunctions/function.go b/sdk/go/gcp/cloudfunctions/function.go index 9baafd916c..35076eb962 100644 --- a/sdk/go/gcp/cloudfunctions/function.go +++ b/sdk/go/gcp/cloudfunctions/function.go @@ -178,6 +178,8 @@ type Function struct { AvailableMemoryMb pulumi.IntPtrOutput `pulumi:"availableMemoryMb"` // A set of key/value environment variable pairs available during build time. BuildEnvironmentVariables pulumi.MapOutput `pulumi:"buildEnvironmentVariables"` + // If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + BuildServiceAccount pulumi.StringOutput `pulumi:"buildServiceAccount"` // Name of the Cloud Build Custom Worker Pool that should be used to build the function. BuildWorkerPool pulumi.StringPtrOutput `pulumi:"buildWorkerPool"` // Description of the function. @@ -298,6 +300,8 @@ type functionState struct { AvailableMemoryMb *int `pulumi:"availableMemoryMb"` // A set of key/value environment variable pairs available during build time. BuildEnvironmentVariables map[string]interface{} `pulumi:"buildEnvironmentVariables"` + // If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + BuildServiceAccount *string `pulumi:"buildServiceAccount"` // Name of the Cloud Build Custom Worker Pool that should be used to build the function. BuildWorkerPool *string `pulumi:"buildWorkerPool"` // Description of the function. @@ -381,6 +385,8 @@ type FunctionState struct { AvailableMemoryMb pulumi.IntPtrInput // A set of key/value environment variable pairs available during build time. BuildEnvironmentVariables pulumi.MapInput + // If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + BuildServiceAccount pulumi.StringPtrInput // Name of the Cloud Build Custom Worker Pool that should be used to build the function. BuildWorkerPool pulumi.StringPtrInput // Description of the function. @@ -468,6 +474,8 @@ type functionArgs struct { AvailableMemoryMb *int `pulumi:"availableMemoryMb"` // A set of key/value environment variable pairs available during build time. BuildEnvironmentVariables map[string]interface{} `pulumi:"buildEnvironmentVariables"` + // If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + BuildServiceAccount *string `pulumi:"buildServiceAccount"` // Name of the Cloud Build Custom Worker Pool that should be used to build the function. BuildWorkerPool *string `pulumi:"buildWorkerPool"` // Description of the function. @@ -543,6 +551,8 @@ type FunctionArgs struct { AvailableMemoryMb pulumi.IntPtrInput // A set of key/value environment variable pairs available during build time. BuildEnvironmentVariables pulumi.MapInput + // If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + BuildServiceAccount pulumi.StringPtrInput // Name of the Cloud Build Custom Worker Pool that should be used to build the function. BuildWorkerPool pulumi.StringPtrInput // Description of the function. @@ -709,6 +719,11 @@ func (o FunctionOutput) BuildEnvironmentVariables() pulumi.MapOutput { return o.ApplyT(func(v *Function) pulumi.MapOutput { return v.BuildEnvironmentVariables }).(pulumi.MapOutput) } +// If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` +func (o FunctionOutput) BuildServiceAccount() pulumi.StringOutput { + return o.ApplyT(func(v *Function) pulumi.StringOutput { return v.BuildServiceAccount }).(pulumi.StringOutput) +} + // Name of the Cloud Build Custom Worker Pool that should be used to build the function. func (o FunctionOutput) BuildWorkerPool() pulumi.StringPtrOutput { return o.ApplyT(func(v *Function) pulumi.StringPtrOutput { return v.BuildWorkerPool }).(pulumi.StringPtrOutput) diff --git a/sdk/go/gcp/cloudfunctions/getFunction.go b/sdk/go/gcp/cloudfunctions/getFunction.go index e427d44723..c81c43d0b8 100644 --- a/sdk/go/gcp/cloudfunctions/getFunction.go +++ b/sdk/go/gcp/cloudfunctions/getFunction.go @@ -69,6 +69,7 @@ type LookupFunctionResult struct { // Available memory (in MB) to the function. AvailableMemoryMb int `pulumi:"availableMemoryMb"` BuildEnvironmentVariables map[string]interface{} `pulumi:"buildEnvironmentVariables"` + BuildServiceAccount string `pulumi:"buildServiceAccount"` BuildWorkerPool string `pulumi:"buildWorkerPool"` // Description of the function. Description string `pulumi:"description"` @@ -177,6 +178,10 @@ func (o LookupFunctionResultOutput) BuildEnvironmentVariables() pulumi.MapOutput return o.ApplyT(func(v LookupFunctionResult) map[string]interface{} { return v.BuildEnvironmentVariables }).(pulumi.MapOutput) } +func (o LookupFunctionResultOutput) BuildServiceAccount() pulumi.StringOutput { + return o.ApplyT(func(v LookupFunctionResult) string { return v.BuildServiceAccount }).(pulumi.StringOutput) +} + func (o LookupFunctionResultOutput) BuildWorkerPool() pulumi.StringOutput { return o.ApplyT(func(v LookupFunctionResult) string { return v.BuildWorkerPool }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/cloudfunctionsv2/function.go b/sdk/go/gcp/cloudfunctionsv2/function.go index 7694795112..6a023cae6c 100644 --- a/sdk/go/gcp/cloudfunctionsv2/function.go +++ b/sdk/go/gcp/cloudfunctionsv2/function.go @@ -1053,9 +1053,7 @@ import ( // pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-artifactregistry.iam.gserviceaccount.com", projectGetProject.Number)), // pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gs-project-accounts.iam.gserviceaccount.com", projectGetProject.Number)), // pulumi.String(fmt.Sprintf("serviceAccount:service-%v@serverless-robot-prod.iam.gserviceaccount.com", projectGetProject.Number)), -// eaSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// eaSa.Member, // }, // }, pulumi.DependsOn([]pulumi.Resource{ // eaSa, diff --git a/sdk/go/gcp/cloudrun/pulumiTypes.go b/sdk/go/gcp/cloudrun/pulumiTypes.go index ddb551ff01..31c07c2ffe 100644 --- a/sdk/go/gcp/cloudrun/pulumiTypes.go +++ b/sdk/go/gcp/cloudrun/pulumiTypes.go @@ -15,8 +15,8 @@ var _ = internal.GetEnvOrDefault type DomainMappingMetadata struct { // Annotations is a key value map stored with a resource that - // may be set by external tools to store and retrieve arbitrary metadata. More - // info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + // may be set by external tools to store and retrieve arbitrary metadata. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -76,8 +76,8 @@ type DomainMappingMetadataInput interface { type DomainMappingMetadataArgs struct { // Annotations is a key value map stored with a resource that - // may be set by external tools to store and retrieve arbitrary metadata. More - // info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + // may be set by external tools to store and retrieve arbitrary metadata. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -202,8 +202,8 @@ func (o DomainMappingMetadataOutput) ToDomainMappingMetadataPtrOutputWithContext } // Annotations is a key value map stored with a resource that -// may be set by external tools to store and retrieve arbitrary metadata. More -// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +// may be set by external tools to store and retrieve arbitrary metadata. +// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -303,8 +303,8 @@ func (o DomainMappingMetadataPtrOutput) Elem() DomainMappingMetadataOutput { } // Annotations is a key value map stored with a resource that -// may be set by external tools to store and retrieve arbitrary metadata. More -// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +// may be set by external tools to store and retrieve arbitrary metadata. +// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1375,8 +1375,8 @@ func (o IamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { type ServiceMetadata struct { // Annotations is a key value map stored with a resource that - // may be set by external tools to store and retrieve arbitrary metadata. More - // info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + // may be set by external tools to store and retrieve arbitrary metadata. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1444,8 +1444,8 @@ type ServiceMetadataInput interface { type ServiceMetadataArgs struct { // Annotations is a key value map stored with a resource that - // may be set by external tools to store and retrieve arbitrary metadata. More - // info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + // may be set by external tools to store and retrieve arbitrary metadata. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1578,8 +1578,8 @@ func (o ServiceMetadataOutput) ToServiceMetadataPtrOutputWithContext(ctx context } // Annotations is a key value map stored with a resource that -// may be set by external tools to store and retrieve arbitrary metadata. More -// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +// may be set by external tools to store and retrieve arbitrary metadata. +// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1687,8 +1687,8 @@ func (o ServiceMetadataPtrOutput) Elem() ServiceMetadataOutput { } // Annotations is a key value map stored with a resource that -// may be set by external tools to store and retrieve arbitrary metadata. More -// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +// may be set by external tools to store and retrieve arbitrary metadata. +// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -2494,8 +2494,8 @@ func (o ServiceTemplatePtrOutput) Spec() ServiceTemplateSpecPtrOutput { type ServiceTemplateMetadata struct { // Annotations is a key value map stored with a resource that - // may be set by external tools to store and retrieve arbitrary metadata. More - // info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + // may be set by external tools to store and retrieve arbitrary metadata. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -2559,8 +2559,8 @@ type ServiceTemplateMetadataInput interface { type ServiceTemplateMetadataArgs struct { // Annotations is a key value map stored with a resource that - // may be set by external tools to store and retrieve arbitrary metadata. More - // info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + // may be set by external tools to store and retrieve arbitrary metadata. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -2689,8 +2689,8 @@ func (o ServiceTemplateMetadataOutput) ToServiceTemplateMetadataPtrOutputWithCon } // Annotations is a key value map stored with a resource that -// may be set by external tools to store and retrieve arbitrary metadata. More -// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +// may be set by external tools to store and retrieve arbitrary metadata. +// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -2788,8 +2788,8 @@ func (o ServiceTemplateMetadataPtrOutput) Elem() ServiceTemplateMetadataOutput { } // Annotations is a key value map stored with a resource that -// may be set by external tools to store and retrieve arbitrary metadata. More -// info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations +// may be set by external tools to store and retrieve arbitrary metadata. +// More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations // **Note**: The Cloud Run API may add additional annotations that were not provided in your config. // If the provider plan shows a diff where a server-side annotation is added, you can add it to your config // or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -2904,7 +2904,8 @@ func (o ServiceTemplateMetadataPtrOutput) Uid() pulumi.StringPtrOutput { type ServiceTemplateSpec struct { // ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - // requests per container of the Revision. Values are: + // requests per container of the Revision. If not specified or 0, defaults to 80 when + // requested CPU >= 1 and defaults to 1 when requested CPU < 1. ContainerConcurrency *int `pulumi:"containerConcurrency"` // Containers defines the unit of execution for this Revision. // Structure is documented below. @@ -2944,7 +2945,8 @@ type ServiceTemplateSpecInput interface { type ServiceTemplateSpecArgs struct { // ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - // requests per container of the Revision. Values are: + // requests per container of the Revision. If not specified or 0, defaults to 80 when + // requested CPU >= 1 and defaults to 1 when requested CPU < 1. ContainerConcurrency pulumi.IntPtrInput `pulumi:"containerConcurrency"` // Containers defines the unit of execution for this Revision. // Structure is documented below. @@ -3049,7 +3051,8 @@ func (o ServiceTemplateSpecOutput) ToServiceTemplateSpecPtrOutputWithContext(ctx } // ContainerConcurrency specifies the maximum allowed in-flight (concurrent) -// requests per container of the Revision. Values are: +// requests per container of the Revision. If not specified or 0, defaults to 80 when +// requested CPU >= 1 and defaults to 1 when requested CPU < 1. func (o ServiceTemplateSpecOutput) ContainerConcurrency() pulumi.IntPtrOutput { return o.ApplyT(func(v ServiceTemplateSpec) *int { return v.ContainerConcurrency }).(pulumi.IntPtrOutput) } @@ -3117,7 +3120,8 @@ func (o ServiceTemplateSpecPtrOutput) Elem() ServiceTemplateSpecOutput { } // ContainerConcurrency specifies the maximum allowed in-flight (concurrent) -// requests per container of the Revision. Values are: +// requests per container of the Revision. If not specified or 0, defaults to 80 when +// requested CPU >= 1 and defaults to 1 when requested CPU < 1. func (o ServiceTemplateSpecPtrOutput) ContainerConcurrency() pulumi.IntPtrOutput { return o.ApplyT(func(v *ServiceTemplateSpec) *int { if v == nil { @@ -8836,11 +8840,8 @@ func (o GetServiceTemplateMetadataArrayOutput) Index(i pulumi.IntInput) GetServi type GetServiceTemplateSpec struct { // ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - // requests per container of the Revision. Values are: - // - '0' thread-safe, the system should manage the max concurrency. This is - // the default value. - // - '1' not-thread-safe. Single concurrency - // - '2-N' thread-safe, max concurrency of N + // requests per container of the Revision. If not specified or 0, defaults to 80 when + // requested CPU >= 1 and defaults to 1 when requested CPU < 1. ContainerConcurrency int `pulumi:"containerConcurrency"` // Containers defines the unit of execution for this Revision. Containers []GetServiceTemplateSpecContainer `pulumi:"containers"` @@ -8873,11 +8874,8 @@ type GetServiceTemplateSpecInput interface { type GetServiceTemplateSpecArgs struct { // ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - // requests per container of the Revision. Values are: - // - '0' thread-safe, the system should manage the max concurrency. This is - // the default value. - // - '1' not-thread-safe. Single concurrency - // - '2-N' thread-safe, max concurrency of N + // requests per container of the Revision. If not specified or 0, defaults to 80 when + // requested CPU >= 1 and defaults to 1 when requested CPU < 1. ContainerConcurrency pulumi.IntInput `pulumi:"containerConcurrency"` // Containers defines the unit of execution for this Revision. Containers GetServiceTemplateSpecContainerArrayInput `pulumi:"containers"` @@ -8949,11 +8947,8 @@ func (o GetServiceTemplateSpecOutput) ToGetServiceTemplateSpecOutputWithContext( } // ContainerConcurrency specifies the maximum allowed in-flight (concurrent) -// requests per container of the Revision. Values are: -// - '0' thread-safe, the system should manage the max concurrency. This is -// the default value. -// - '1' not-thread-safe. Single concurrency -// - '2-N' thread-safe, max concurrency of N +// requests per container of the Revision. If not specified or 0, defaults to 80 when +// requested CPU >= 1 and defaults to 1 when requested CPU < 1. func (o GetServiceTemplateSpecOutput) ContainerConcurrency() pulumi.IntOutput { return o.ApplyT(func(v GetServiceTemplateSpec) int { return v.ContainerConcurrency }).(pulumi.IntOutput) } diff --git a/sdk/go/gcp/cloudrunv2/pulumiTypes.go b/sdk/go/gcp/cloudrunv2/pulumiTypes.go index ccfd6fb346..d7e199cfa9 100644 --- a/sdk/go/gcp/cloudrunv2/pulumiTypes.go +++ b/sdk/go/gcp/cloudrunv2/pulumiTypes.go @@ -4712,6 +4712,7 @@ type ServiceTemplate struct { // All system labels in v1 now have a corresponding field in v2 RevisionTemplate. Labels map[string]string `pulumi:"labels"` // Sets the maximum number of requests that each serving instance can receive. + // If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. MaxInstanceRequestConcurrency *int `pulumi:"maxInstanceRequestConcurrency"` // The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. Revision *string `pulumi:"revision"` @@ -4764,6 +4765,7 @@ type ServiceTemplateArgs struct { // All system labels in v1 now have a corresponding field in v2 RevisionTemplate. Labels pulumi.StringMapInput `pulumi:"labels"` // Sets the maximum number of requests that each serving instance can receive. + // If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. MaxInstanceRequestConcurrency pulumi.IntPtrInput `pulumi:"maxInstanceRequestConcurrency"` // The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. Revision pulumi.StringPtrInput `pulumi:"revision"` @@ -4896,6 +4898,7 @@ func (o ServiceTemplateOutput) Labels() pulumi.StringMapOutput { } // Sets the maximum number of requests that each serving instance can receive. +// If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. func (o ServiceTemplateOutput) MaxInstanceRequestConcurrency() pulumi.IntPtrOutput { return o.ApplyT(func(v ServiceTemplate) *int { return v.MaxInstanceRequestConcurrency }).(pulumi.IntPtrOutput) } @@ -5022,6 +5025,7 @@ func (o ServiceTemplatePtrOutput) Labels() pulumi.StringMapOutput { } // Sets the maximum number of requests that each serving instance can receive. +// If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. func (o ServiceTemplatePtrOutput) MaxInstanceRequestConcurrency() pulumi.IntPtrOutput { return o.ApplyT(func(v *ServiceTemplate) *int { if v == nil { @@ -13021,6 +13025,7 @@ type GetServiceTemplate struct { // All system labels in v1 now have a corresponding field in v2 RevisionTemplate. Labels map[string]string `pulumi:"labels"` // Sets the maximum number of requests that each serving instance can receive. + // If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. MaxInstanceRequestConcurrency int `pulumi:"maxInstanceRequestConcurrency"` // The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. Revision string `pulumi:"revision"` @@ -13072,6 +13077,7 @@ type GetServiceTemplateArgs struct { // All system labels in v1 now have a corresponding field in v2 RevisionTemplate. Labels pulumi.StringMapInput `pulumi:"labels"` // Sets the maximum number of requests that each serving instance can receive. + // If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. MaxInstanceRequestConcurrency pulumi.IntInput `pulumi:"maxInstanceRequestConcurrency"` // The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. Revision pulumi.StringInput `pulumi:"revision"` @@ -13177,6 +13183,7 @@ func (o GetServiceTemplateOutput) Labels() pulumi.StringMapOutput { } // Sets the maximum number of requests that each serving instance can receive. +// If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. func (o GetServiceTemplateOutput) MaxInstanceRequestConcurrency() pulumi.IntOutput { return o.ApplyT(func(v GetServiceTemplate) int { return v.MaxInstanceRequestConcurrency }).(pulumi.IntOutput) } diff --git a/sdk/go/gcp/compute/backendService.go b/sdk/go/gcp/compute/backendService.go index bae92701f8..1d7b6c0a81 100644 --- a/sdk/go/gcp/compute/backendService.go +++ b/sdk/go/gcp/compute/backendService.go @@ -24,6 +24,9 @@ import ( // * How-to Guides // - [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) // +// > **Warning:** All arguments including the following potentially sensitive +// values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`. +// // ## Example Usage // // ### Backend Service Basic diff --git a/sdk/go/gcp/compute/init.go b/sdk/go/gcp/compute/init.go index 01d531e048..750ef838b0 100644 --- a/sdk/go/gcp/compute/init.go +++ b/sdk/go/gcp/compute/init.go @@ -243,6 +243,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &RegionUrlMap{} case "gcp:compute/reservation:Reservation": r = &Reservation{} + case "gcp:compute/resizeRequest:ResizeRequest": + r = &ResizeRequest{} case "gcp:compute/resourcePolicy:ResourcePolicy": r = &ResourcePolicy{} case "gcp:compute/route:Route": @@ -255,6 +257,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &RouterNat{} case "gcp:compute/routerPeer:RouterPeer": r = &RouterPeer{} + case "gcp:compute/routerRoutePolicy:RouterRoutePolicy": + r = &RouterRoutePolicy{} case "gcp:compute/sSLCertificate:SSLCertificate": r = &SSLCertificate{} case "gcp:compute/sSLPolicy:SSLPolicy": @@ -875,6 +879,11 @@ func init() { "compute/reservation", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "compute/resizeRequest", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "compute/resourcePolicy", @@ -905,6 +914,11 @@ func init() { "compute/routerPeer", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "compute/routerRoutePolicy", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "compute/sSLCertificate", diff --git a/sdk/go/gcp/compute/publicAdvertisedPrefix.go b/sdk/go/gcp/compute/publicAdvertisedPrefix.go index 2f664b9c4f..e5bd8e1b01 100644 --- a/sdk/go/gcp/compute/publicAdvertisedPrefix.go +++ b/sdk/go/gcp/compute/publicAdvertisedPrefix.go @@ -97,6 +97,8 @@ type PublicAdvertisedPrefix struct { Project pulumi.StringOutput `pulumi:"project"` // The URI of the created resource. SelfLink pulumi.StringOutput `pulumi:"selfLink"` + // Output Only. The shared secret to be used for reverse DNS verification. + SharedSecret pulumi.StringOutput `pulumi:"sharedSecret"` } // NewPublicAdvertisedPrefix registers a new resource with the given unique name, arguments, and options. @@ -155,6 +157,8 @@ type publicAdvertisedPrefixState struct { Project *string `pulumi:"project"` // The URI of the created resource. SelfLink *string `pulumi:"selfLink"` + // Output Only. The shared secret to be used for reverse DNS verification. + SharedSecret *string `pulumi:"sharedSecret"` } type PublicAdvertisedPrefixState struct { @@ -178,6 +182,8 @@ type PublicAdvertisedPrefixState struct { Project pulumi.StringPtrInput // The URI of the created resource. SelfLink pulumi.StringPtrInput + // Output Only. The shared secret to be used for reverse DNS verification. + SharedSecret pulumi.StringPtrInput } func (PublicAdvertisedPrefixState) ElementType() reflect.Type { @@ -352,6 +358,11 @@ func (o PublicAdvertisedPrefixOutput) SelfLink() pulumi.StringOutput { return o.ApplyT(func(v *PublicAdvertisedPrefix) pulumi.StringOutput { return v.SelfLink }).(pulumi.StringOutput) } +// Output Only. The shared secret to be used for reverse DNS verification. +func (o PublicAdvertisedPrefixOutput) SharedSecret() pulumi.StringOutput { + return o.ApplyT(func(v *PublicAdvertisedPrefix) pulumi.StringOutput { return v.SharedSecret }).(pulumi.StringOutput) +} + type PublicAdvertisedPrefixArrayOutput struct{ *pulumi.OutputState } func (PublicAdvertisedPrefixArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/gcp/compute/pulumiTypes.go b/sdk/go/gcp/compute/pulumiTypes.go index 6d5b81ee9b..702a79e47d 100644 --- a/sdk/go/gcp/compute/pulumiTypes.go +++ b/sdk/go/gcp/compute/pulumiTypes.go @@ -7218,10 +7218,16 @@ func (o BackendServiceOutlierDetectionIntervalPtrOutput) Seconds() pulumi.IntPtr } type BackendServiceSecuritySettings struct { + // The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + // Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + // Structure is documented below. + // + // The `awsV4Authentication` block supports: + AwsV4Authentication *BackendServiceSecuritySettingsAwsV4Authentication `pulumi:"awsV4Authentication"` // ClientTlsPolicy is a resource that specifies how a client should authenticate // connections to backends of a service. This resource itself does not affect // configuration unless it is attached to a backend service resource. - ClientTlsPolicy string `pulumi:"clientTlsPolicy"` + ClientTlsPolicy *string `pulumi:"clientTlsPolicy"` // A list of alternate names to verify the subject identity in the certificate. // If specified, the client will verify that the server certificate's subject // alt name matches one of the specified values. @@ -7240,10 +7246,16 @@ type BackendServiceSecuritySettingsInput interface { } type BackendServiceSecuritySettingsArgs struct { + // The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + // Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + // Structure is documented below. + // + // The `awsV4Authentication` block supports: + AwsV4Authentication BackendServiceSecuritySettingsAwsV4AuthenticationPtrInput `pulumi:"awsV4Authentication"` // ClientTlsPolicy is a resource that specifies how a client should authenticate // connections to backends of a service. This resource itself does not affect // configuration unless it is attached to a backend service resource. - ClientTlsPolicy pulumi.StringInput `pulumi:"clientTlsPolicy"` + ClientTlsPolicy pulumi.StringPtrInput `pulumi:"clientTlsPolicy"` // A list of alternate names to verify the subject identity in the certificate. // If specified, the client will verify that the server certificate's subject // alt name matches one of the specified values. @@ -7327,11 +7339,22 @@ func (o BackendServiceSecuritySettingsOutput) ToBackendServiceSecuritySettingsPt }).(BackendServiceSecuritySettingsPtrOutput) } +// The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. +// Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. +// Structure is documented below. +// +// The `awsV4Authentication` block supports: +func (o BackendServiceSecuritySettingsOutput) AwsV4Authentication() BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return o.ApplyT(func(v BackendServiceSecuritySettings) *BackendServiceSecuritySettingsAwsV4Authentication { + return v.AwsV4Authentication + }).(BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) +} + // ClientTlsPolicy is a resource that specifies how a client should authenticate // connections to backends of a service. This resource itself does not affect // configuration unless it is attached to a backend service resource. -func (o BackendServiceSecuritySettingsOutput) ClientTlsPolicy() pulumi.StringOutput { - return o.ApplyT(func(v BackendServiceSecuritySettings) string { return v.ClientTlsPolicy }).(pulumi.StringOutput) +func (o BackendServiceSecuritySettingsOutput) ClientTlsPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackendServiceSecuritySettings) *string { return v.ClientTlsPolicy }).(pulumi.StringPtrOutput) } // A list of alternate names to verify the subject identity in the certificate. @@ -7365,6 +7388,20 @@ func (o BackendServiceSecuritySettingsPtrOutput) Elem() BackendServiceSecuritySe }).(BackendServiceSecuritySettingsOutput) } +// The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. +// Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. +// Structure is documented below. +// +// The `awsV4Authentication` block supports: +func (o BackendServiceSecuritySettingsPtrOutput) AwsV4Authentication() BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return o.ApplyT(func(v *BackendServiceSecuritySettings) *BackendServiceSecuritySettingsAwsV4Authentication { + if v == nil { + return nil + } + return v.AwsV4Authentication + }).(BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) +} + // ClientTlsPolicy is a resource that specifies how a client should authenticate // connections to backends of a service. This resource itself does not affect // configuration unless it is attached to a backend service resource. @@ -7373,7 +7410,7 @@ func (o BackendServiceSecuritySettingsPtrOutput) ClientTlsPolicy() pulumi.String if v == nil { return nil } - return &v.ClientTlsPolicy + return v.ClientTlsPolicy }).(pulumi.StringPtrOutput) } @@ -7389,6 +7426,208 @@ func (o BackendServiceSecuritySettingsPtrOutput) SubjectAltNames() pulumi.String }).(pulumi.StringArrayOutput) } +type BackendServiceSecuritySettingsAwsV4Authentication struct { + // The access key used for s3 bucket authentication. + // Required 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. + AccessKey *string `pulumi:"accessKey"` + // The identifier of an access key used for s3 bucket authentication. + AccessKeyId *string `pulumi:"accessKeyId"` + // The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + AccessKeyVersion *string `pulumi:"accessKeyVersion"` + // 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. + // For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + OriginRegion *string `pulumi:"originRegion"` +} + +// BackendServiceSecuritySettingsAwsV4AuthenticationInput is an input type that accepts BackendServiceSecuritySettingsAwsV4AuthenticationArgs and BackendServiceSecuritySettingsAwsV4AuthenticationOutput values. +// You can construct a concrete instance of `BackendServiceSecuritySettingsAwsV4AuthenticationInput` via: +// +// BackendServiceSecuritySettingsAwsV4AuthenticationArgs{...} +type BackendServiceSecuritySettingsAwsV4AuthenticationInput interface { + pulumi.Input + + ToBackendServiceSecuritySettingsAwsV4AuthenticationOutput() BackendServiceSecuritySettingsAwsV4AuthenticationOutput + ToBackendServiceSecuritySettingsAwsV4AuthenticationOutputWithContext(context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationOutput +} + +type BackendServiceSecuritySettingsAwsV4AuthenticationArgs struct { + // The access key used for s3 bucket authentication. + // Required 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. + AccessKey pulumi.StringPtrInput `pulumi:"accessKey"` + // The identifier of an access key used for s3 bucket authentication. + AccessKeyId pulumi.StringPtrInput `pulumi:"accessKeyId"` + // The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + AccessKeyVersion pulumi.StringPtrInput `pulumi:"accessKeyVersion"` + // 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. + // For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + OriginRegion pulumi.StringPtrInput `pulumi:"originRegion"` +} + +func (BackendServiceSecuritySettingsAwsV4AuthenticationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*BackendServiceSecuritySettingsAwsV4Authentication)(nil)).Elem() +} + +func (i BackendServiceSecuritySettingsAwsV4AuthenticationArgs) ToBackendServiceSecuritySettingsAwsV4AuthenticationOutput() BackendServiceSecuritySettingsAwsV4AuthenticationOutput { + return i.ToBackendServiceSecuritySettingsAwsV4AuthenticationOutputWithContext(context.Background()) +} + +func (i BackendServiceSecuritySettingsAwsV4AuthenticationArgs) ToBackendServiceSecuritySettingsAwsV4AuthenticationOutputWithContext(ctx context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackendServiceSecuritySettingsAwsV4AuthenticationOutput) +} + +func (i BackendServiceSecuritySettingsAwsV4AuthenticationArgs) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput() BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return i.ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(context.Background()) +} + +func (i BackendServiceSecuritySettingsAwsV4AuthenticationArgs) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(ctx context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackendServiceSecuritySettingsAwsV4AuthenticationOutput).ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(ctx) +} + +// BackendServiceSecuritySettingsAwsV4AuthenticationPtrInput is an input type that accepts BackendServiceSecuritySettingsAwsV4AuthenticationArgs, BackendServiceSecuritySettingsAwsV4AuthenticationPtr and BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput values. +// You can construct a concrete instance of `BackendServiceSecuritySettingsAwsV4AuthenticationPtrInput` via: +// +// BackendServiceSecuritySettingsAwsV4AuthenticationArgs{...} +// +// or: +// +// nil +type BackendServiceSecuritySettingsAwsV4AuthenticationPtrInput interface { + pulumi.Input + + ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput() BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput + ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput +} + +type backendServiceSecuritySettingsAwsV4AuthenticationPtrType BackendServiceSecuritySettingsAwsV4AuthenticationArgs + +func BackendServiceSecuritySettingsAwsV4AuthenticationPtr(v *BackendServiceSecuritySettingsAwsV4AuthenticationArgs) BackendServiceSecuritySettingsAwsV4AuthenticationPtrInput { + return (*backendServiceSecuritySettingsAwsV4AuthenticationPtrType)(v) +} + +func (*backendServiceSecuritySettingsAwsV4AuthenticationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**BackendServiceSecuritySettingsAwsV4Authentication)(nil)).Elem() +} + +func (i *backendServiceSecuritySettingsAwsV4AuthenticationPtrType) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput() BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return i.ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(context.Background()) +} + +func (i *backendServiceSecuritySettingsAwsV4AuthenticationPtrType) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(ctx context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) +} + +type BackendServiceSecuritySettingsAwsV4AuthenticationOutput struct{ *pulumi.OutputState } + +func (BackendServiceSecuritySettingsAwsV4AuthenticationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*BackendServiceSecuritySettingsAwsV4Authentication)(nil)).Elem() +} + +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) ToBackendServiceSecuritySettingsAwsV4AuthenticationOutput() BackendServiceSecuritySettingsAwsV4AuthenticationOutput { + return o +} + +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) ToBackendServiceSecuritySettingsAwsV4AuthenticationOutputWithContext(ctx context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationOutput { + return o +} + +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput() BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return o.ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(context.Background()) +} + +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(ctx context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v BackendServiceSecuritySettingsAwsV4Authentication) *BackendServiceSecuritySettingsAwsV4Authentication { + return &v + }).(BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) +} + +// The access key used for s3 bucket authentication. +// Required 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. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) AccessKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackendServiceSecuritySettingsAwsV4Authentication) *string { return v.AccessKey }).(pulumi.StringPtrOutput) +} + +// The identifier of an access key used for s3 bucket authentication. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) AccessKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackendServiceSecuritySettingsAwsV4Authentication) *string { return v.AccessKeyId }).(pulumi.StringPtrOutput) +} + +// The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) AccessKeyVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackendServiceSecuritySettingsAwsV4Authentication) *string { return v.AccessKeyVersion }).(pulumi.StringPtrOutput) +} + +// 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. +// For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationOutput) OriginRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v BackendServiceSecuritySettingsAwsV4Authentication) *string { return v.OriginRegion }).(pulumi.StringPtrOutput) +} + +type BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput struct{ *pulumi.OutputState } + +func (BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BackendServiceSecuritySettingsAwsV4Authentication)(nil)).Elem() +} + +func (o BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput() BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return o +} + +func (o BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) ToBackendServiceSecuritySettingsAwsV4AuthenticationPtrOutputWithContext(ctx context.Context) BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput { + return o +} + +func (o BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) Elem() BackendServiceSecuritySettingsAwsV4AuthenticationOutput { + return o.ApplyT(func(v *BackendServiceSecuritySettingsAwsV4Authentication) BackendServiceSecuritySettingsAwsV4Authentication { + if v != nil { + return *v + } + var ret BackendServiceSecuritySettingsAwsV4Authentication + return ret + }).(BackendServiceSecuritySettingsAwsV4AuthenticationOutput) +} + +// The access key used for s3 bucket authentication. +// Required 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. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) AccessKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BackendServiceSecuritySettingsAwsV4Authentication) *string { + if v == nil { + return nil + } + return v.AccessKey + }).(pulumi.StringPtrOutput) +} + +// The identifier of an access key used for s3 bucket authentication. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) AccessKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BackendServiceSecuritySettingsAwsV4Authentication) *string { + if v == nil { + return nil + } + return v.AccessKeyId + }).(pulumi.StringPtrOutput) +} + +// The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) AccessKeyVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BackendServiceSecuritySettingsAwsV4Authentication) *string { + if v == nil { + return nil + } + return v.AccessKeyVersion + }).(pulumi.StringPtrOutput) +} + +// 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. +// For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. +func (o BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput) OriginRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *BackendServiceSecuritySettingsAwsV4Authentication) *string { + if v == nil { + return nil + } + return v.OriginRegion + }).(pulumi.StringPtrOutput) +} + type DiskAsyncPrimaryDisk struct { // Primary disk for asynchronous disk replication. Disk string `pulumi:"disk"` @@ -14098,6 +14337,11 @@ type InstanceBootDiskInitializeParams struct { // The size of the image in gigabytes. If not specified, it // will inherit the size of its base image. Size *int `pulumi:"size"` + // The URL of the storage pool in which the new disk is created. + // For example: + // * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + // * /projects/{project}/zones/{zone}/storagePools/{storagePool} + StoragePool *string `pulumi:"storagePool"` // The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. Type *string `pulumi:"type"` } @@ -14151,6 +14395,11 @@ type InstanceBootDiskInitializeParamsArgs struct { // The size of the image in gigabytes. If not specified, it // will inherit the size of its base image. Size pulumi.IntPtrInput `pulumi:"size"` + // The URL of the storage pool in which the new disk is created. + // For example: + // * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + // * /projects/{project}/zones/{zone}/storagePools/{storagePool} + StoragePool pulumi.StringPtrInput `pulumi:"storagePool"` // The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -14290,6 +14539,14 @@ func (o InstanceBootDiskInitializeParamsOutput) Size() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceBootDiskInitializeParams) *int { return v.Size }).(pulumi.IntPtrOutput) } +// The URL of the storage pool in which the new disk is created. +// For example: +// * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} +// * /projects/{project}/zones/{zone}/storagePools/{storagePool} +func (o InstanceBootDiskInitializeParamsOutput) StoragePool() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceBootDiskInitializeParams) *string { return v.StoragePool }).(pulumi.StringPtrOutput) +} + // The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. func (o InstanceBootDiskInitializeParamsOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceBootDiskInitializeParams) *string { return v.Type }).(pulumi.StringPtrOutput) @@ -14412,6 +14669,19 @@ func (o InstanceBootDiskInitializeParamsPtrOutput) Size() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// The URL of the storage pool in which the new disk is created. +// For example: +// * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} +// * /projects/{project}/zones/{zone}/storagePools/{storagePool} +func (o InstanceBootDiskInitializeParamsPtrOutput) StoragePool() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceBootDiskInitializeParams) *string { + if v == nil { + return nil + } + return v.StoragePool + }).(pulumi.StringPtrOutput) +} + // The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. func (o InstanceBootDiskInitializeParamsPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceBootDiskInitializeParams) *string { @@ -15072,6 +15342,8 @@ type InstanceFromMachineImageBootDiskInitializeParams struct { ResourceManagerTags map[string]interface{} `pulumi:"resourceManagerTags"` // The size of the image in gigabytes. Size *int `pulumi:"size"` + // The URL of the storage pool in which the new disk is created + StoragePool *string `pulumi:"storagePool"` // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. Type *string `pulumi:"type"` } @@ -15102,6 +15374,8 @@ type InstanceFromMachineImageBootDiskInitializeParamsArgs struct { ResourceManagerTags pulumi.MapInput `pulumi:"resourceManagerTags"` // The size of the image in gigabytes. Size pulumi.IntPtrInput `pulumi:"size"` + // The URL of the storage pool in which the new disk is created + StoragePool pulumi.StringPtrInput `pulumi:"storagePool"` // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -15220,6 +15494,11 @@ func (o InstanceFromMachineImageBootDiskInitializeParamsOutput) Size() pulumi.In return o.ApplyT(func(v InstanceFromMachineImageBootDiskInitializeParams) *int { return v.Size }).(pulumi.IntPtrOutput) } +// The URL of the storage pool in which the new disk is created +func (o InstanceFromMachineImageBootDiskInitializeParamsOutput) StoragePool() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceFromMachineImageBootDiskInitializeParams) *string { return v.StoragePool }).(pulumi.StringPtrOutput) +} + // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. func (o InstanceFromMachineImageBootDiskInitializeParamsOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceFromMachineImageBootDiskInitializeParams) *string { return v.Type }).(pulumi.StringPtrOutput) @@ -15319,6 +15598,16 @@ func (o InstanceFromMachineImageBootDiskInitializeParamsPtrOutput) Size() pulumi }).(pulumi.IntPtrOutput) } +// The URL of the storage pool in which the new disk is created +func (o InstanceFromMachineImageBootDiskInitializeParamsPtrOutput) StoragePool() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceFromMachineImageBootDiskInitializeParams) *string { + if v == nil { + return nil + } + return v.StoragePool + }).(pulumi.StringPtrOutput) +} + // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. func (o InstanceFromMachineImageBootDiskInitializeParamsPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceFromMachineImageBootDiskInitializeParams) *string { @@ -18789,6 +19078,8 @@ type InstanceFromTemplateBootDiskInitializeParams struct { ResourceManagerTags map[string]interface{} `pulumi:"resourceManagerTags"` // The size of the image in gigabytes. Size *int `pulumi:"size"` + // The URL of the storage pool in which the new disk is created + StoragePool *string `pulumi:"storagePool"` // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. Type *string `pulumi:"type"` } @@ -18819,6 +19110,8 @@ type InstanceFromTemplateBootDiskInitializeParamsArgs struct { ResourceManagerTags pulumi.MapInput `pulumi:"resourceManagerTags"` // The size of the image in gigabytes. Size pulumi.IntPtrInput `pulumi:"size"` + // The URL of the storage pool in which the new disk is created + StoragePool pulumi.StringPtrInput `pulumi:"storagePool"` // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. Type pulumi.StringPtrInput `pulumi:"type"` } @@ -18937,6 +19230,11 @@ func (o InstanceFromTemplateBootDiskInitializeParamsOutput) Size() pulumi.IntPtr return o.ApplyT(func(v InstanceFromTemplateBootDiskInitializeParams) *int { return v.Size }).(pulumi.IntPtrOutput) } +// The URL of the storage pool in which the new disk is created +func (o InstanceFromTemplateBootDiskInitializeParamsOutput) StoragePool() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceFromTemplateBootDiskInitializeParams) *string { return v.StoragePool }).(pulumi.StringPtrOutput) +} + // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. func (o InstanceFromTemplateBootDiskInitializeParamsOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceFromTemplateBootDiskInitializeParams) *string { return v.Type }).(pulumi.StringPtrOutput) @@ -19036,6 +19334,16 @@ func (o InstanceFromTemplateBootDiskInitializeParamsPtrOutput) Size() pulumi.Int }).(pulumi.IntPtrOutput) } +// The URL of the storage pool in which the new disk is created +func (o InstanceFromTemplateBootDiskInitializeParamsPtrOutput) StoragePool() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceFromTemplateBootDiskInitializeParams) *string { + if v == nil { + return nil + } + return v.StoragePool + }).(pulumi.StringPtrOutput) +} + // The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. func (o InstanceFromTemplateBootDiskInitializeParamsPtrOutput) Type() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceFromTemplateBootDiskInitializeParams) *string { @@ -70921,15472 +71229,14147 @@ func (o ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput) Ind }).(ReservationSpecificReservationInstancePropertiesLocalSsdOutput) } -type ResourcePolicyDiskConsistencyGroupPolicy struct { - // Enable disk consistency on the resource policy. - Enabled bool `pulumi:"enabled"` +type ResizeRequestRequestedRunDuration struct { + // 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. + Nanos *int `pulumi:"nanos"` + // 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 + Seconds string `pulumi:"seconds"` } -// ResourcePolicyDiskConsistencyGroupPolicyInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs and ResourcePolicyDiskConsistencyGroupPolicyOutput values. -// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyInput` via: +// ResizeRequestRequestedRunDurationInput is an input type that accepts ResizeRequestRequestedRunDurationArgs and ResizeRequestRequestedRunDurationOutput values. +// You can construct a concrete instance of `ResizeRequestRequestedRunDurationInput` via: // -// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} -type ResourcePolicyDiskConsistencyGroupPolicyInput interface { +// ResizeRequestRequestedRunDurationArgs{...} +type ResizeRequestRequestedRunDurationInput interface { pulumi.Input - ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput - ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput + ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput + ToResizeRequestRequestedRunDurationOutputWithContext(context.Context) ResizeRequestRequestedRunDurationOutput } -type ResourcePolicyDiskConsistencyGroupPolicyArgs struct { - // Enable disk consistency on the resource policy. - Enabled pulumi.BoolInput `pulumi:"enabled"` +type ResizeRequestRequestedRunDurationArgs struct { + // 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. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // 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 + Seconds pulumi.StringInput `pulumi:"seconds"` } -func (ResourcePolicyDiskConsistencyGroupPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +func (ResizeRequestRequestedRunDurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { - return i.ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Background()) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput { + return i.ToResizeRequestRequestedRunDurationOutputWithContext(context.Background()) } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationOutput) } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { + return i.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput).ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx) +func (i ResizeRequestRequestedRunDurationArgs) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationOutput).ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx) } -// ResourcePolicyDiskConsistencyGroupPolicyPtrInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs, ResourcePolicyDiskConsistencyGroupPolicyPtr and ResourcePolicyDiskConsistencyGroupPolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyPtrInput` via: +// ResizeRequestRequestedRunDurationPtrInput is an input type that accepts ResizeRequestRequestedRunDurationArgs, ResizeRequestRequestedRunDurationPtr and ResizeRequestRequestedRunDurationPtrOutput values. +// You can construct a concrete instance of `ResizeRequestRequestedRunDurationPtrInput` via: // -// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} +// ResizeRequestRequestedRunDurationArgs{...} // // or: // // nil -type ResourcePolicyDiskConsistencyGroupPolicyPtrInput interface { +type ResizeRequestRequestedRunDurationPtrInput interface { pulumi.Input - ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput - ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput + ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput + ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Context) ResizeRequestRequestedRunDurationPtrOutput } -type resourcePolicyDiskConsistencyGroupPolicyPtrType ResourcePolicyDiskConsistencyGroupPolicyArgs +type resizeRequestRequestedRunDurationPtrType ResizeRequestRequestedRunDurationArgs -func ResourcePolicyDiskConsistencyGroupPolicyPtr(v *ResourcePolicyDiskConsistencyGroupPolicyArgs) ResourcePolicyDiskConsistencyGroupPolicyPtrInput { - return (*resourcePolicyDiskConsistencyGroupPolicyPtrType)(v) +func ResizeRequestRequestedRunDurationPtr(v *ResizeRequestRequestedRunDurationArgs) ResizeRequestRequestedRunDurationPtrInput { + return (*resizeRequestRequestedRunDurationPtrType)(v) } -func (*resourcePolicyDiskConsistencyGroupPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +func (*resizeRequestRequestedRunDurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) +func (i *resizeRequestRequestedRunDurationPtrType) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { + return i.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) +func (i *resizeRequestRequestedRunDurationPtrType) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestRequestedRunDurationPtrOutput) } -type ResourcePolicyDiskConsistencyGroupPolicyOutput struct{ *pulumi.OutputState } +type ResizeRequestRequestedRunDurationOutput struct{ *pulumi.OutputState } -func (ResourcePolicyDiskConsistencyGroupPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +func (ResizeRequestRequestedRunDurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationOutput() ResizeRequestRequestedRunDurationOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return o.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { + return o.ToResizeRequestRequestedRunDurationPtrOutputWithContext(context.Background()) } -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyDiskConsistencyGroupPolicy) *ResourcePolicyDiskConsistencyGroupPolicy { +func (o ResizeRequestRequestedRunDurationOutput) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResizeRequestRequestedRunDuration) *ResizeRequestRequestedRunDuration { return &v - }).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) + }).(ResizeRequestRequestedRunDurationPtrOutput) } -// Enable disk consistency on the resource policy. -func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v ResourcePolicyDiskConsistencyGroupPolicy) bool { return v.Enabled }).(pulumi.BoolOutput) +// 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. +func (o ResizeRequestRequestedRunDurationOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestRequestedRunDuration) *int { return v.Nanos }).(pulumi.IntPtrOutput) } -type ResourcePolicyDiskConsistencyGroupPolicyPtrOutput struct{ *pulumi.OutputState } +// 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 +func (o ResizeRequestRequestedRunDurationOutput) Seconds() pulumi.StringOutput { + return o.ApplyT(func(v ResizeRequestRequestedRunDuration) string { return v.Seconds }).(pulumi.StringOutput) +} -func (ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() +type ResizeRequestRequestedRunDurationPtrOutput struct{ *pulumi.OutputState } + +func (ResizeRequestRequestedRunDurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResizeRequestRequestedRunDuration)(nil)).Elem() } -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { +func (o ResizeRequestRequestedRunDurationPtrOutput) ToResizeRequestRequestedRunDurationPtrOutput() ResizeRequestRequestedRunDurationPtrOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { +func (o ResizeRequestRequestedRunDurationPtrOutput) ToResizeRequestRequestedRunDurationPtrOutputWithContext(ctx context.Context) ResizeRequestRequestedRunDurationPtrOutput { return o } -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Elem() ResourcePolicyDiskConsistencyGroupPolicyOutput { - return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) ResourcePolicyDiskConsistencyGroupPolicy { +func (o ResizeRequestRequestedRunDurationPtrOutput) Elem() ResizeRequestRequestedRunDurationOutput { + return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) ResizeRequestRequestedRunDuration { if v != nil { return *v } - var ret ResourcePolicyDiskConsistencyGroupPolicy + var ret ResizeRequestRequestedRunDuration return ret - }).(ResourcePolicyDiskConsistencyGroupPolicyOutput) + }).(ResizeRequestRequestedRunDurationOutput) } -// Enable disk consistency on the resource policy. -func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) *bool { +// 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. +func (o ResizeRequestRequestedRunDurationPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) *int { if v == nil { return nil } - return &v.Enabled - }).(pulumi.BoolPtrOutput) + return v.Nanos + }).(pulumi.IntPtrOutput) } -type ResourcePolicyGroupPlacementPolicy struct { - // The number of availability domains instances will be spread across. If two instances are in different - // availability domain, they will not be put in the same low latency network - AvailabilityDomainCount *int `pulumi:"availabilityDomainCount"` - // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. - // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created - // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy - // attached. - // Possible values are: `COLLOCATED`. - Collocation *string `pulumi:"collocation"` - // Specifies the number of max logical switches. - MaxDistance *int `pulumi:"maxDistance"` - // Number of VMs in this placement group. Google does not recommend that you use this field - // unless you use a compact policy and you want your policy to work only if it contains this - // exact number of VMs. - VmCount *int `pulumi:"vmCount"` +// 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 +func (o ResizeRequestRequestedRunDurationPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResizeRequestRequestedRunDuration) *string { + if v == nil { + return nil + } + return &v.Seconds + }).(pulumi.StringPtrOutput) } -// ResourcePolicyGroupPlacementPolicyInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs and ResourcePolicyGroupPlacementPolicyOutput values. -// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyInput` via: +type ResizeRequestStatus struct { + // (Output) + // [Output only] Fatal 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. + // Structure is documented below. + Errors []ResizeRequestStatusError `pulumi:"errors"` + // (Output) + // [Output only] Information 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. + // Structure is documented below. + LastAttempts []ResizeRequestStatusLastAttempt `pulumi:"lastAttempts"` +} + +// ResizeRequestStatusInput is an input type that accepts ResizeRequestStatusArgs and ResizeRequestStatusOutput values. +// You can construct a concrete instance of `ResizeRequestStatusInput` via: // -// ResourcePolicyGroupPlacementPolicyArgs{...} -type ResourcePolicyGroupPlacementPolicyInput interface { +// ResizeRequestStatusArgs{...} +type ResizeRequestStatusInput interface { pulumi.Input - ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput - ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyOutput + ToResizeRequestStatusOutput() ResizeRequestStatusOutput + ToResizeRequestStatusOutputWithContext(context.Context) ResizeRequestStatusOutput } -type ResourcePolicyGroupPlacementPolicyArgs struct { - // The number of availability domains instances will be spread across. If two instances are in different - // availability domain, they will not be put in the same low latency network - AvailabilityDomainCount pulumi.IntPtrInput `pulumi:"availabilityDomainCount"` - // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. - // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created - // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy - // attached. - // Possible values are: `COLLOCATED`. - Collocation pulumi.StringPtrInput `pulumi:"collocation"` - // Specifies the number of max logical switches. - MaxDistance pulumi.IntPtrInput `pulumi:"maxDistance"` - // Number of VMs in this placement group. Google does not recommend that you use this field - // unless you use a compact policy and you want your policy to work only if it contains this - // exact number of VMs. - VmCount pulumi.IntPtrInput `pulumi:"vmCount"` +type ResizeRequestStatusArgs struct { + // (Output) + // [Output only] Fatal 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. + // Structure is documented below. + Errors ResizeRequestStatusErrorArrayInput `pulumi:"errors"` + // (Output) + // [Output only] Information 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. + // Structure is documented below. + LastAttempts ResizeRequestStatusLastAttemptArrayInput `pulumi:"lastAttempts"` } -func (ResourcePolicyGroupPlacementPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +func (ResizeRequestStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatus)(nil)).Elem() } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { - return i.ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Background()) +func (i ResizeRequestStatusArgs) ToResizeRequestStatusOutput() ResizeRequestStatusOutput { + return i.ToResizeRequestStatusOutputWithContext(context.Background()) } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput) +func (i ResizeRequestStatusArgs) ToResizeRequestStatusOutputWithContext(ctx context.Context) ResizeRequestStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusOutput) } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { - return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) +// ResizeRequestStatusArrayInput is an input type that accepts ResizeRequestStatusArray and ResizeRequestStatusArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusArrayInput` via: +// +// ResizeRequestStatusArray{ ResizeRequestStatusArgs{...} } +type ResizeRequestStatusArrayInput interface { + pulumi.Input + + ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput + ToResizeRequestStatusArrayOutputWithContext(context.Context) ResizeRequestStatusArrayOutput } -func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput).ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx) +type ResizeRequestStatusArray []ResizeRequestStatusInput + +func (ResizeRequestStatusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatus)(nil)).Elem() } -// ResourcePolicyGroupPlacementPolicyPtrInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs, ResourcePolicyGroupPlacementPolicyPtr and ResourcePolicyGroupPlacementPolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyPtrInput` via: -// -// ResourcePolicyGroupPlacementPolicyArgs{...} -// -// or: -// -// nil -type ResourcePolicyGroupPlacementPolicyPtrInput interface { - pulumi.Input +func (i ResizeRequestStatusArray) ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput { + return i.ToResizeRequestStatusArrayOutputWithContext(context.Background()) +} - ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput - ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput +func (i ResizeRequestStatusArray) ToResizeRequestStatusArrayOutputWithContext(ctx context.Context) ResizeRequestStatusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusArrayOutput) } -type resourcePolicyGroupPlacementPolicyPtrType ResourcePolicyGroupPlacementPolicyArgs +type ResizeRequestStatusOutput struct{ *pulumi.OutputState } -func ResourcePolicyGroupPlacementPolicyPtr(v *ResourcePolicyGroupPlacementPolicyArgs) ResourcePolicyGroupPlacementPolicyPtrInput { - return (*resourcePolicyGroupPlacementPolicyPtrType)(v) +func (ResizeRequestStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatus)(nil)).Elem() } -func (*resourcePolicyGroupPlacementPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +func (o ResizeRequestStatusOutput) ToResizeRequestStatusOutput() ResizeRequestStatusOutput { + return o } -func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { - return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusOutput) ToResizeRequestStatusOutputWithContext(ctx context.Context) ResizeRequestStatusOutput { + return o } -func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyPtrOutput) +// (Output) +// [Output only] Fatal 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. +// Structure is documented below. +func (o ResizeRequestStatusOutput) Errors() ResizeRequestStatusErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatus) []ResizeRequestStatusError { return v.Errors }).(ResizeRequestStatusErrorArrayOutput) } -type ResourcePolicyGroupPlacementPolicyOutput struct{ *pulumi.OutputState } +// (Output) +// [Output only] Information 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. +// Structure is documented below. +func (o ResizeRequestStatusOutput) LastAttempts() ResizeRequestStatusLastAttemptArrayOutput { + return o.ApplyT(func(v ResizeRequestStatus) []ResizeRequestStatusLastAttempt { return v.LastAttempts }).(ResizeRequestStatusLastAttemptArrayOutput) +} -func (ResourcePolicyGroupPlacementPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +type ResizeRequestStatusArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatus)(nil)).Elem() } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { +func (o ResizeRequestStatusArrayOutput) ToResizeRequestStatusArrayOutput() ResizeRequestStatusArrayOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { +func (o ResizeRequestStatusArrayOutput) ToResizeRequestStatusArrayOutputWithContext(ctx context.Context) ResizeRequestStatusArrayOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { - return o.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatus { + return vs[0].([]ResizeRequestStatus)[vs[1].(int)] + }).(ResizeRequestStatusOutput) } -func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyGroupPlacementPolicy) *ResourcePolicyGroupPlacementPolicy { - return &v - }).(ResourcePolicyGroupPlacementPolicyPtrOutput) +type ResizeRequestStatusError struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors []ResizeRequestStatusErrorError `pulumi:"errors"` } -// The number of availability domains instances will be spread across. If two instances are in different -// availability domain, they will not be put in the same low latency network -func (o ResourcePolicyGroupPlacementPolicyOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.AvailabilityDomainCount }).(pulumi.IntPtrOutput) +// ResizeRequestStatusErrorInput is an input type that accepts ResizeRequestStatusErrorArgs and ResizeRequestStatusErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorInput` via: +// +// ResizeRequestStatusErrorArgs{...} +type ResizeRequestStatusErrorInput interface { + pulumi.Input + + ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput + ToResizeRequestStatusErrorOutputWithContext(context.Context) ResizeRequestStatusErrorOutput } -// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. -// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created -// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy -// attached. -// Possible values are: `COLLOCATED`. -func (o ResourcePolicyGroupPlacementPolicyOutput) Collocation() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *string { return v.Collocation }).(pulumi.StringPtrOutput) +type ResizeRequestStatusErrorArgs struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors ResizeRequestStatusErrorErrorArrayInput `pulumi:"errors"` } -// Specifies the number of max logical switches. -func (o ResourcePolicyGroupPlacementPolicyOutput) MaxDistance() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.MaxDistance }).(pulumi.IntPtrOutput) +func (ResizeRequestStatusErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusError)(nil)).Elem() } -// Number of VMs in this placement group. Google does not recommend that you use this field -// unless you use a compact policy and you want your policy to work only if it contains this -// exact number of VMs. -func (o ResourcePolicyGroupPlacementPolicyOutput) VmCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.VmCount }).(pulumi.IntPtrOutput) +func (i ResizeRequestStatusErrorArgs) ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput { + return i.ToResizeRequestStatusErrorOutputWithContext(context.Background()) } -type ResourcePolicyGroupPlacementPolicyPtrOutput struct{ *pulumi.OutputState } +func (i ResizeRequestStatusErrorArgs) ToResizeRequestStatusErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorOutput) +} -func (ResourcePolicyGroupPlacementPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +// ResizeRequestStatusErrorArrayInput is an input type that accepts ResizeRequestStatusErrorArray and ResizeRequestStatusErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorArrayInput` via: +// +// ResizeRequestStatusErrorArray{ ResizeRequestStatusErrorArgs{...} } +type ResizeRequestStatusErrorArrayInput interface { + pulumi.Input + + ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput + ToResizeRequestStatusErrorArrayOutputWithContext(context.Context) ResizeRequestStatusErrorArrayOutput } -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { +type ResizeRequestStatusErrorArray []ResizeRequestStatusErrorInput + +func (ResizeRequestStatusErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusError)(nil)).Elem() +} + +func (i ResizeRequestStatusErrorArray) ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput { + return i.ToResizeRequestStatusErrorArrayOutputWithContext(context.Background()) +} + +func (i ResizeRequestStatusErrorArray) ToResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorArrayOutput) +} + +type ResizeRequestStatusErrorOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusError)(nil)).Elem() +} + +func (o ResizeRequestStatusErrorOutput) ToResizeRequestStatusErrorOutput() ResizeRequestStatusErrorOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { +func (o ResizeRequestStatusErrorOutput) ToResizeRequestStatusErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorOutput { return o } -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Elem() ResourcePolicyGroupPlacementPolicyOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) ResourcePolicyGroupPlacementPolicy { - if v != nil { - return *v - } - var ret ResourcePolicyGroupPlacementPolicy - return ret - }).(ResourcePolicyGroupPlacementPolicyOutput) +// (Output) +// [Output Only] The array of errors encountered while processing this operation. +// Structure is documented below. +func (o ResizeRequestStatusErrorOutput) Errors() ResizeRequestStatusErrorErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusError) []ResizeRequestStatusErrorError { return v.Errors }).(ResizeRequestStatusErrorErrorArrayOutput) } -// The number of availability domains instances will be spread across. If two instances are in different -// availability domain, they will not be put in the same low latency network -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { - if v == nil { - return nil - } - return v.AvailabilityDomainCount - }).(pulumi.IntPtrOutput) +type ResizeRequestStatusErrorArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusError)(nil)).Elem() } -// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. -// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created -// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy -// attached. -// Possible values are: `COLLOCATED`. -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Collocation() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *string { - if v == nil { - return nil - } - return v.Collocation - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorArrayOutput) ToResizeRequestStatusErrorArrayOutput() ResizeRequestStatusErrorArrayOutput { + return o } -// Specifies the number of max logical switches. -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) MaxDistance() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { - if v == nil { - return nil - } - return v.MaxDistance - }).(pulumi.IntPtrOutput) +func (o ResizeRequestStatusErrorArrayOutput) ToResizeRequestStatusErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorArrayOutput { + return o } -// Number of VMs in this placement group. Google does not recommend that you use this field -// unless you use a compact policy and you want your policy to work only if it contains this -// exact number of VMs. -func (o ResourcePolicyGroupPlacementPolicyPtrOutput) VmCount() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { - if v == nil { - return nil - } - return v.VmCount - }).(pulumi.IntPtrOutput) +func (o ResizeRequestStatusErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusError { + return vs[0].([]ResizeRequestStatusError)[vs[1].(int)] + }).(ResizeRequestStatusErrorOutput) } -type ResourcePolicyInstanceSchedulePolicy struct { - // The expiration time of the schedule. The timestamp is an RFC3339 string. - ExpirationTime *string `pulumi:"expirationTime"` - // The start time of the schedule. The timestamp is an RFC3339 string. - StartTime *string `pulumi:"startTime"` - // Specifies the time zone to be used in 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. - TimeZone string `pulumi:"timeZone"` - // Specifies the schedule for starting instances. - // Structure is documented below. - VmStartSchedule *ResourcePolicyInstanceSchedulePolicyVmStartSchedule `pulumi:"vmStartSchedule"` - // Specifies the schedule for stopping instances. +type ResizeRequestStatusErrorError struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code *string `pulumi:"code"` + // (Output) + // [Output Only] An optional list 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. // Structure is documented below. - VmStopSchedule *ResourcePolicyInstanceSchedulePolicyVmStopSchedule `pulumi:"vmStopSchedule"` + ErrorDetails []ResizeRequestStatusErrorErrorErrorDetail `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location *string `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// ResourcePolicyInstanceSchedulePolicyInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs and ResourcePolicyInstanceSchedulePolicyOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyInput` via: +// ResizeRequestStatusErrorErrorInput is an input type that accepts ResizeRequestStatusErrorErrorArgs and ResizeRequestStatusErrorErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorInput` via: // -// ResourcePolicyInstanceSchedulePolicyArgs{...} -type ResourcePolicyInstanceSchedulePolicyInput interface { +// ResizeRequestStatusErrorErrorArgs{...} +type ResizeRequestStatusErrorErrorInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput - ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyOutput + ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput + ToResizeRequestStatusErrorErrorOutputWithContext(context.Context) ResizeRequestStatusErrorErrorOutput } -type ResourcePolicyInstanceSchedulePolicyArgs struct { - // The expiration time of the schedule. The timestamp is an RFC3339 string. - ExpirationTime pulumi.StringPtrInput `pulumi:"expirationTime"` - // The start time of the schedule. The timestamp is an RFC3339 string. - StartTime pulumi.StringPtrInput `pulumi:"startTime"` - // Specifies the time zone to be used in 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. - TimeZone pulumi.StringInput `pulumi:"timeZone"` - // Specifies the schedule for starting instances. - // Structure is documented below. - VmStartSchedule ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput `pulumi:"vmStartSchedule"` - // Specifies the schedule for stopping instances. +type ResizeRequestStatusErrorErrorArgs struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code pulumi.StringPtrInput `pulumi:"code"` + // (Output) + // [Output Only] An optional list 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. // Structure is documented below. - VmStopSchedule ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput `pulumi:"vmStopSchedule"` -} - -func (ResourcePolicyInstanceSchedulePolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() -} - -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { - return i.ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Background()) + ErrorDetails ResizeRequestStatusErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location pulumi.StringPtrInput `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput) +func (ResizeRequestStatusErrorErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorError)(nil)).Elem() } -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorArgs) ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput { + return i.ToResizeRequestStatusErrorErrorOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput).ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorArgs) ToResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorOutput) } -// ResourcePolicyInstanceSchedulePolicyPtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs, ResourcePolicyInstanceSchedulePolicyPtr and ResourcePolicyInstanceSchedulePolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyPtrInput` via: -// -// ResourcePolicyInstanceSchedulePolicyArgs{...} -// -// or: +// ResizeRequestStatusErrorErrorArrayInput is an input type that accepts ResizeRequestStatusErrorErrorArray and ResizeRequestStatusErrorErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorArrayInput` via: // -// nil -type ResourcePolicyInstanceSchedulePolicyPtrInput interface { +// ResizeRequestStatusErrorErrorArray{ ResizeRequestStatusErrorErrorArgs{...} } +type ResizeRequestStatusErrorErrorArrayInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput - ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput + ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput + ToResizeRequestStatusErrorErrorArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorArrayOutput } -type resourcePolicyInstanceSchedulePolicyPtrType ResourcePolicyInstanceSchedulePolicyArgs - -func ResourcePolicyInstanceSchedulePolicyPtr(v *ResourcePolicyInstanceSchedulePolicyArgs) ResourcePolicyInstanceSchedulePolicyPtrInput { - return (*resourcePolicyInstanceSchedulePolicyPtrType)(v) -} +type ResizeRequestStatusErrorErrorArray []ResizeRequestStatusErrorErrorInput -func (*resourcePolicyInstanceSchedulePolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() +func (ResizeRequestStatusErrorErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorError)(nil)).Elem() } -func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorArray) ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput { + return i.ToResizeRequestStatusErrorErrorArrayOutputWithContext(context.Background()) } -func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyPtrOutput) +func (i ResizeRequestStatusErrorErrorArray) ToResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorArrayOutput) } -type ResourcePolicyInstanceSchedulePolicyOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() +func (ResizeRequestStatusErrorErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorError)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { +func (o ResizeRequestStatusErrorErrorOutput) ToResizeRequestStatusErrorErrorOutput() ResizeRequestStatusErrorErrorOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { +func (o ResizeRequestStatusErrorErrorOutput) ToResizeRequestStatusErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { - return o.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) +// (Output) +// [Output Only] The error type identifier for this error. +func (o ResizeRequestStatusErrorErrorOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) } -func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicy { - return &v - }).(ResourcePolicyInstanceSchedulePolicyPtrOutput) -} - -// The expiration time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyOutput) ExpirationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.ExpirationTime }).(pulumi.StringPtrOutput) -} - -// The start time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.StartTime }).(pulumi.StringPtrOutput) -} - -// Specifies the time zone to be used in 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. -func (o ResourcePolicyInstanceSchedulePolicyOutput) TimeZone() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) string { return v.TimeZone }).(pulumi.StringOutput) +// (Output) +// [Output Only] An optional list 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. +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorOutput) ErrorDetails() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) []ResizeRequestStatusErrorErrorErrorDetail { + return v.ErrorDetails + }).(ResizeRequestStatusErrorErrorErrorDetailArrayOutput) } -// Specifies the schedule for starting instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - return v.VmStartSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +// (Output) +// Output Only] Indicates the field in the request that caused the error. This property is optional. +func (o ResizeRequestStatusErrorErrorOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) } -// Specifies the schedule for stopping instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { - return v.VmStopSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusErrorErrorOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) } -type ResourcePolicyInstanceSchedulePolicyPtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() +func (ResizeRequestStatusErrorErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorError)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { +func (o ResizeRequestStatusErrorErrorArrayOutput) ToResizeRequestStatusErrorErrorArrayOutput() ResizeRequestStatusErrorErrorArrayOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { +func (o ResizeRequestStatusErrorErrorArrayOutput) ToResizeRequestStatusErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorArrayOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) ResourcePolicyInstanceSchedulePolicy { - if v != nil { - return *v - } - var ret ResourcePolicyInstanceSchedulePolicy - return ret - }).(ResourcePolicyInstanceSchedulePolicyOutput) -} - -// The expiration time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ExpirationTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { - if v == nil { - return nil - } - return v.ExpirationTime - }).(pulumi.StringPtrOutput) -} - -// The start time of the schedule. The timestamp is an RFC3339 string. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { - if v == nil { - return nil - } - return v.StartTime - }).(pulumi.StringPtrOutput) -} - -// Specifies the time zone to be used in 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. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) TimeZone() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { - if v == nil { - return nil - } - return &v.TimeZone - }).(pulumi.StringPtrOutput) -} - -// Specifies the schedule for starting instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - if v == nil { - return nil - } - return v.VmStartSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) -} - -// Specifies the schedule for stopping instances. -// Structure is documented below. -func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { - if v == nil { - return nil - } - return v.VmStopSchedule - }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +func (o ResizeRequestStatusErrorErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorError { + return vs[0].([]ResizeRequestStatusErrorError)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStartSchedule struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule string `pulumi:"schedule"` +type ResizeRequestStatusErrorErrorErrorDetail struct { + // (Output) + // [Output Only] + // Structure is documented below. + ErrorInfos []ResizeRequestStatusErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps []ResizeRequestStatusErrorErrorErrorDetailHelp `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos []ResizeRequestStatusErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` } -// ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput` via: +// ResizeRequestStatusErrorErrorErrorDetailInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailArgs and ResizeRequestStatusErrorErrorErrorDetailOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailInput` via: // -// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} -type ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput interface { +// ResizeRequestStatusErrorErrorErrorDetailArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput - ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput -} - -type ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule pulumi.StringInput `pulumi:"schedule"` -} - -func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() + ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput + ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Background()) +type ResizeRequestStatusErrorErrorErrorDetailArgs struct { + // (Output) + // [Output Only] + // Structure is documented below. + ErrorInfos ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) +func (ResizeRequestStatusErrorErrorErrorDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailArgs) ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorErrorDetailArgs) ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailOutput) } -// ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput` via: -// -// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} +// ResizeRequestStatusErrorErrorErrorDetailArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailArray and ResizeRequestStatusErrorErrorErrorDetailArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailArrayInput` via: // -// or: -// -// nil -type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailArray{ ResizeRequestStatusErrorErrorErrorDetailArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailArrayInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput - ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput + ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput } -type resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs - -func ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput { - return (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType)(v) -} +type ResizeRequestStatusErrorErrorErrorDetailArray []ResizeRequestStatusErrorErrorErrorDetailInput -func (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailArray) ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(context.Background()) } -func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailArray) ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailArrayOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ToResizeRequestStatusErrorErrorErrorDetailOutput() ResizeRequestStatusErrorErrorErrorDetailOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ToResizeRequestStatusErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) ErrorInfos() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailErrorInfo { + return v.ErrorInfos + }).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) } -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - return &v - }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) Helps() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailHelp { + return v.Helps + }).(ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) } -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) Schedule() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) string { return v.Schedule }).(pulumi.StringOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) LocalizedMessages() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + return v.LocalizedMessages + }).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput struct{ *pulumi.OutputState } - -func (ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailOutput) QuotaInfos() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetail) []ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + return v.QuotaInfos + }).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) } -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { - return o +type ResizeRequestStatusErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetail)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailArrayOutput() ResizeRequestStatusErrorErrorErrorDetailArrayOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) ResourcePolicyInstanceSchedulePolicyVmStartSchedule { - if v != nil { - return *v - } - var ret ResourcePolicyInstanceSchedulePolicyVmStartSchedule - return ret - }).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailArrayOutput { + return o } -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *string { - if v == nil { - return nil - } - return &v.Schedule - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetail { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetail)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStopSchedule struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule string `pulumi:"schedule"` +type ResizeRequestStatusErrorErrorErrorDetailErrorInfo struct { + // (Output) + // The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + Domain *string `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + Metadatas map[string]string `pulumi:"metadatas"` + // (Output) + // The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason *string `pulumi:"reason"` } -// ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput` via: +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs and ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput` via: // -// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} -type ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput interface { +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput - ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput -} - -type ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs struct { - // Specifies the frequency for the operation, using the unix-cron format. - Schedule pulumi.StringInput `pulumi:"schedule"` -} - -func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Background()) +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs struct { + // (Output) + // The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + Domain pulumi.StringPtrInput `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + Metadatas pulumi.StringMapInput `pulumi:"metadatas"` + // (Output) + // The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason pulumi.StringPtrInput `pulumi:"reason"` } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) } -func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) } -// ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput` via: -// -// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray and ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput` via: // -// or: -// -// nil -type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray{ ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput interface { pulumi.Input - ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput - ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput } -type resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs - -func ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput { - return (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType)(v) -} +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray []ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput -func (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) } -func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +// (Output) +// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) } -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { - return &v - }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +// (Output) +// Additional structured details about this error. +// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) map[string]string { return v.Metadatas }).(pulumi.StringMapOutput) } -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) Schedule() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) string { return v.Schedule }).(pulumi.StringOutput) +// (Output) +// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) } -type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) ResourcePolicyInstanceSchedulePolicyVmStopSchedule { - if v != nil { - return *v - } - var ret ResourcePolicyInstanceSchedulePolicyVmStopSchedule - return ret - }).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) -} - -// Specifies the frequency for the operation, using the unix-cron format. -func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *string { - if v == nil { - return nil - } - return &v.Schedule - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailErrorInfo { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailErrorInfo)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput) } -type ResourcePolicySnapshotSchedulePolicy struct { - // Retention policy applied to snapshots created by this resource policy. - // Structure is documented below. - RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `pulumi:"retentionPolicy"` - // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. - // Structure is documented below. - Schedule ResourcePolicySnapshotSchedulePolicySchedule `pulumi:"schedule"` - // Properties with which the snapshots are created, such as labels. +type ResizeRequestStatusErrorErrorErrorDetailHelp struct { + // (Output) + // [Output Only] // Structure is documented below. - SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `pulumi:"snapshotProperties"` + Links []ResizeRequestStatusErrorErrorErrorDetailHelpLink `pulumi:"links"` } -// ResourcePolicySnapshotSchedulePolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs and ResourcePolicySnapshotSchedulePolicyOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyInput` via: +// ResizeRequestStatusErrorErrorErrorDetailHelpInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpArgs and ResizeRequestStatusErrorErrorErrorDetailHelpOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpInput` via: // -// ResourcePolicySnapshotSchedulePolicyArgs{...} -type ResourcePolicySnapshotSchedulePolicyInput interface { +// ResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailHelpInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput - ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput } -type ResourcePolicySnapshotSchedulePolicyArgs struct { - // Retention policy applied to snapshots created by this resource policy. - // Structure is documented below. - RetentionPolicy ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput `pulumi:"retentionPolicy"` - // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. - // Structure is documented below. - Schedule ResourcePolicySnapshotSchedulePolicyScheduleInput `pulumi:"schedule"` - // Properties with which the snapshots are created, such as labels. +type ResizeRequestStatusErrorErrorErrorDetailHelpArgs struct { + // (Output) + // [Output Only] // Structure is documented below. - SnapshotProperties ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput `pulumi:"snapshotProperties"` + Links ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` } -func (ResourcePolicySnapshotSchedulePolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { - return i.ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpOutput) } -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) +// ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpArray and ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput` via: +// +// ResizeRequestStatusErrorErrorErrorDetailHelpArray{ ResizeRequestStatusErrorErrorErrorDetailHelpArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput interface { + pulumi.Input + + ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput } -func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput).ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx) +type ResizeRequestStatusErrorErrorErrorDetailHelpArray []ResizeRequestStatusErrorErrorErrorDetailHelpInput + +func (ResizeRequestStatusErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -// ResourcePolicySnapshotSchedulePolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs, ResourcePolicySnapshotSchedulePolicyPtr and ResourcePolicySnapshotSchedulePolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyPtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyArgs{...} -// -// or: -// -// nil -type ResourcePolicySnapshotSchedulePolicyPtrInput interface { - pulumi.Input +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArray) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) +} - ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput - ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput +func (i ResizeRequestStatusErrorErrorErrorDetailHelpArray) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) } -type resourcePolicySnapshotSchedulePolicyPtrType ResourcePolicySnapshotSchedulePolicyArgs +type ResizeRequestStatusErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } -func ResourcePolicySnapshotSchedulePolicyPtr(v *ResourcePolicySnapshotSchedulePolicyArgs) ResourcePolicySnapshotSchedulePolicyPtrInput { - return (*resourcePolicySnapshotSchedulePolicyPtrType)(v) +func (ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (*resourcePolicySnapshotSchedulePolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() +func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpOutput() ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return o } -func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return o } -func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyPtrOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusErrorErrorErrorDetailHelpOutput) Links() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelp) []ResizeRequestStatusErrorErrorErrorDetailHelpLink { + return v.Links + }).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailHelpOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailHelp { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailHelp)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailHelpOutput) } -func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicy { - return &v - }).(ResourcePolicySnapshotSchedulePolicyPtrOutput) +type ResizeRequestStatusErrorErrorErrorDetailHelpLink struct { + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // (Output) + // The URL of the link. + Url *string `pulumi:"url"` } -// Retention policy applied to snapshots created by this resource policy. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - return v.RetentionPolicy - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) -} +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs and ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput` via: +// +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput interface { + pulumi.Input -// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyOutput) Schedule() ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicySchedule { - return v.Schedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput } -// Properties with which the snapshots are created, such as labels. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { - return v.SnapshotProperties - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs struct { + // An optional description of this resize-request. + Description pulumi.StringPtrInput `pulumi:"description"` + // (Output) + // The URL of the link. + Url pulumi.StringPtrInput `pulumi:"url"` } -type ResourcePolicySnapshotSchedulePolicyPtrOutput struct{ *pulumi.OutputState } +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() +} -func (ResourcePolicySnapshotSchedulePolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) } -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { - return o +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) } -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { - return o +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray and ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput` via: +// +// ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray{ ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput interface { + pulumi.Input + + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput } -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicy { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicy - return ret - }).(ResourcePolicySnapshotSchedulePolicyOutput) +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray []ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput + +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -// Retention policy applied to snapshots created by this resource policy. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - if v == nil { - return nil - } - return v.RetentionPolicy - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) } -// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Schedule() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySchedule { - if v == nil { - return nil - } - return &v.Schedule - }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) } -// Properties with which the snapshots are created, such as labels. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { - if v == nil { - return nil - } - return v.SnapshotProperties - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct { - // Maximum age of the snapshot that is allowed to be kept. - MaxRetentionDays int `pulumi:"maxRetentionDays"` - // Specifies the behavior to apply to scheduled snapshots when - // the source disk is deleted. - // Default value is `KEEP_AUTO_SNAPSHOTS`. - // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. - OnSourceDiskDelete *string `pulumi:"onSourceDiskDelete"` +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return o } -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs and ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput` via: -// -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput interface { - pulumi.Input +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return o +} - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput +// An optional description of this resize-request. +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Description }).(pulumi.StringPtrOutput) } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs struct { - // Maximum age of the snapshot that is allowed to be kept. - MaxRetentionDays pulumi.IntInput `pulumi:"maxRetentionDays"` - // Specifies the behavior to apply to scheduled snapshots when - // the source disk is deleted. - // Default value is `KEEP_AUTO_SNAPSHOTS`. - // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. - OnSourceDiskDelete pulumi.StringPtrInput `pulumi:"onSourceDiskDelete"` +// (Output) +// The URL of the link. +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) } -func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +type ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Background()) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return o } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput { + return o } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailHelpLink { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailHelpLink)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput) } -func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput).ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx) +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale *string `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs, ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr and ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput` via: +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs and ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput` via: // -// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} -// -// or: -// -// nil -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput - ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput } -type resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale pulumi.StringPtrInput `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` +} -func ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput { - return (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType)(v) +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) } -func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray and ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput` via: +// +// ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray{ ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput interface { + pulumi.Input + + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray []ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput -func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return o +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return o +func (i ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) -} +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - return &v - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -// Maximum age of the snapshot that is allowed to be kept. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) MaxRetentionDays() pulumi.IntOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) int { return v.MaxRetentionDays }).(pulumi.IntOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return o } -// Specifies the behavior to apply to scheduled snapshots when -// the source disk is deleted. -// Default value is `KEEP_AUTO_SNAPSHOTS`. -// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { return v.OnSourceDiskDelete }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return o } -type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput struct{ *pulumi.OutputState } - -func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() +// (Output) +// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Locale }).(pulumi.StringPtrOutput) } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage) *string { return v.Message }).(pulumi.StringPtrOutput) } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { - return o +type ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) ResourcePolicySnapshotSchedulePolicyRetentionPolicy { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyRetentionPolicy - return ret - }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o } -// Maximum age of the snapshot that is allowed to be kept. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) MaxRetentionDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *int { - if v == nil { - return nil - } - return &v.MaxRetentionDays - }).(pulumi.IntPtrOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o } -// Specifies the behavior to apply to scheduled snapshots when -// the source disk is deleted. -// Default value is `KEEP_AUTO_SNAPSHOTS`. -// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. -func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { - if v == nil { - return nil - } - return v.OnSourceDiskDelete - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput) } -type ResourcePolicySnapshotSchedulePolicySchedule struct { - // The policy will execute every nth day at the specified time. - // Structure is documented below. - DailySchedule *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule `pulumi:"dailySchedule"` - // The policy will execute every nth hour starting at the specified time. - // Structure is documented below. - HourlySchedule *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule `pulumi:"hourlySchedule"` - // Allows specifying a snapshot time for each day of the week. - // Structure is documented below. - WeeklySchedule *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule `pulumi:"weeklySchedule"` +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfo struct { + // (Output) + // The map holding related quota dimensions + Dimensions map[string]string `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit *int `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit *int `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName *string `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName *string `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus *string `pulumi:"rolloutStatus"` } -// ResourcePolicySnapshotSchedulePolicyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleInput` via: +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs and ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleInput interface { +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput -} - -type ResourcePolicySnapshotSchedulePolicyScheduleArgs struct { - // The policy will execute every nth day at the specified time. - // Structure is documented below. - DailySchedule ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput `pulumi:"dailySchedule"` - // The policy will execute every nth hour starting at the specified time. - // Structure is documented below. - HourlySchedule ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput `pulumi:"hourlySchedule"` - // Allows specifying a snapshot time for each day of the week. - // Structure is documented below. - WeeklySchedule ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput `pulumi:"weeklySchedule"` -} - -func (ResourcePolicySnapshotSchedulePolicyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput } -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Background()) +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs struct { + // (Output) + // The map holding related quota dimensions + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit pulumi.IntPtrInput `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName pulumi.StringPtrInput `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName pulumi.StringPtrInput `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` } -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput).ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) } -// ResourcePolicySnapshotSchedulePolicySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs, ResourcePolicySnapshotSchedulePolicySchedulePtr and ResourcePolicySnapshotSchedulePolicySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray and ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput` via: // -// or: -// -// nil -type ResourcePolicySnapshotSchedulePolicySchedulePtrInput interface { +// ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray{ ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{...} } +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput + ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput } -type resourcePolicySnapshotSchedulePolicySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleArgs - -func ResourcePolicySnapshotSchedulePolicySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleArgs) ResourcePolicySnapshotSchedulePolicySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicySchedulePtrType)(v) -} +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray []ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput -func (*resourcePolicySnapshotSchedulePolicySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return i.ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) +func (i ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) +// (Output) +// The map holding related quota dimensions +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) map[string]string { return v.Dimensions }).(pulumi.StringMapOutput) } -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) +// (Output) +// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) } -// The policy will execute every nth day at the specified time. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - return v.DailySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) +// (Output) +// Current effective quota limit. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) } -// The policy will execute every nth hour starting at the specified time. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - return v.HourlySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) +// (Output) +// The name of the quota limit. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) } -// Allows specifying a snapshot time for each day of the week. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - return v.WeeklySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) +// (Output) +// The Compute Engine quota metric name. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.MetricName }).(pulumi.StringPtrOutput) } -type ResourcePolicySnapshotSchedulePolicySchedulePtrOutput struct{ *pulumi.OutputState } +// (Output) +// Rollout status of the future quota limit. +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusErrorErrorErrorDetailQuotaInfo) *string { return v.RolloutStatus }).(pulumi.StringPtrOutput) +} -func (ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() +type ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) ResourcePolicySnapshotSchedulePolicySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) +func (o ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + return vs[0].([]ResizeRequestStatusErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] + }).(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput) } -// The policy will execute every nth day at the specified time. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - if v == nil { - return nil - } - return v.DailySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) +type ResizeRequestStatusLastAttempt struct { + // (Output) + // [Output only] Fatal 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. + // Structure is documented below. + Errors []ResizeRequestStatusLastAttemptError `pulumi:"errors"` } -// The policy will execute every nth hour starting at the specified time. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - if v == nil { - return nil - } - return v.HourlySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) +// ResizeRequestStatusLastAttemptInput is an input type that accepts ResizeRequestStatusLastAttemptArgs and ResizeRequestStatusLastAttemptOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptInput` via: +// +// ResizeRequestStatusLastAttemptArgs{...} +type ResizeRequestStatusLastAttemptInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput + ToResizeRequestStatusLastAttemptOutputWithContext(context.Context) ResizeRequestStatusLastAttemptOutput } -// Allows specifying a snapshot time for each day of the week. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - if v == nil { - return nil - } - return v.WeeklySchedule - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) +type ResizeRequestStatusLastAttemptArgs struct { + // (Output) + // [Output only] Fatal 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. + // Structure is documented below. + Errors ResizeRequestStatusLastAttemptErrorArrayInput `pulumi:"errors"` } -type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule struct { - // 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. - DaysInCycle int `pulumi:"daysInCycle"` - // 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. - StartTime string `pulumi:"startTime"` +func (ResizeRequestStatusLastAttemptArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttempt)(nil)).Elem() } -// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput` via: +func (i ResizeRequestStatusLastAttemptArgs) ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput { + return i.ToResizeRequestStatusLastAttemptOutputWithContext(context.Background()) +} + +func (i ResizeRequestStatusLastAttemptArgs) ToResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptOutput) +} + +// ResizeRequestStatusLastAttemptArrayInput is an input type that accepts ResizeRequestStatusLastAttemptArray and ResizeRequestStatusLastAttemptArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptArrayInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput interface { +// ResizeRequestStatusLastAttemptArray{ ResizeRequestStatusLastAttemptArgs{...} } +type ResizeRequestStatusLastAttemptArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput + ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput + ToResizeRequestStatusLastAttemptArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptArrayOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs struct { - // 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. - DaysInCycle pulumi.IntInput `pulumi:"daysInCycle"` - // 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. - StartTime pulumi.StringInput `pulumi:"startTime"` +type ResizeRequestStatusLastAttemptArray []ResizeRequestStatusLastAttemptInput + +func (ResizeRequestStatusLastAttemptArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttempt)(nil)).Elem() } -func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() +func (i ResizeRequestStatusLastAttemptArray) ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput { + return i.ToResizeRequestStatusLastAttemptArrayOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptArray) ToResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptArrayOutput) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) +type ResizeRequestStatusLastAttemptOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusLastAttemptOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttempt)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusLastAttemptOutput) ToResizeRequestStatusLastAttemptOutput() ResizeRequestStatusLastAttemptOutput { + return o } -func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx) +func (o ResizeRequestStatusLastAttemptOutput) ToResizeRequestStatusLastAttemptOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptOutput { + return o } -// ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} -// -// or: -// -// nil -type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput interface { - pulumi.Input +// (Output) +// [Output only] Fatal 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. +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptOutput) Errors() ResizeRequestStatusLastAttemptErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttempt) []ResizeRequestStatusLastAttemptError { return v.Errors }).(ResizeRequestStatusLastAttemptErrorArrayOutput) +} - ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput +type ResizeRequestStatusLastAttemptArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusLastAttemptArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttempt)(nil)).Elem() } -type resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs +func (o ResizeRequestStatusLastAttemptArrayOutput) ToResizeRequestStatusLastAttemptArrayOutput() ResizeRequestStatusLastAttemptArrayOutput { + return o +} -func ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType)(v) +func (o ResizeRequestStatusLastAttemptArrayOutput) ToResizeRequestStatusLastAttemptArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptArrayOutput { + return o } -func (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() +func (o ResizeRequestStatusLastAttemptArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttempt { + return vs[0].([]ResizeRequestStatusLastAttempt)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptOutput) } -func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) +type ResizeRequestStatusLastAttemptError struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors []ResizeRequestStatusLastAttemptErrorError `pulumi:"errors"` } -func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) +// ResizeRequestStatusLastAttemptErrorInput is an input type that accepts ResizeRequestStatusLastAttemptErrorArgs and ResizeRequestStatusLastAttemptErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorInput` via: +// +// ResizeRequestStatusLastAttemptErrorArgs{...} +type ResizeRequestStatusLastAttemptErrorInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput + ToResizeRequestStatusLastAttemptErrorOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorArgs struct { + // (Output) + // [Output Only] The array of errors encountered while processing this operation. + // Structure is documented below. + Errors ResizeRequestStatusLastAttemptErrorErrorArrayInput `pulumi:"errors"` +} -func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return o +func (i ResizeRequestStatusLastAttemptErrorArgs) ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput { + return i.ToResizeRequestStatusLastAttemptErrorOutputWithContext(context.Background()) } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return o +func (i ResizeRequestStatusLastAttemptErrorArgs) ToResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorOutput) } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) +// ResizeRequestStatusLastAttemptErrorArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorArray and ResizeRequestStatusLastAttemptErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorArrayInput` via: +// +// ResizeRequestStatusLastAttemptErrorArray{ ResizeRequestStatusLastAttemptErrorArgs{...} } +type ResizeRequestStatusLastAttemptErrorArrayInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput + ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) +type ResizeRequestStatusLastAttemptErrorArray []ResizeRequestStatusLastAttemptErrorInput + +func (ResizeRequestStatusLastAttemptErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptError)(nil)).Elem() } -// 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. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) DaysInCycle() pulumi.IntOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) int { return v.DaysInCycle }).(pulumi.IntOutput) +func (i ResizeRequestStatusLastAttemptErrorArray) ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(context.Background()) } -// 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. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) StartTime() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) string { return v.StartTime }).(pulumi.StringOutput) +func (i ResizeRequestStatusLastAttemptErrorArray) ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { +func (o ResizeRequestStatusLastAttemptErrorOutput) ToResizeRequestStatusLastAttemptErrorOutput() ResizeRequestStatusLastAttemptErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { +func (o ResizeRequestStatusLastAttemptErrorOutput) ToResizeRequestStatusLastAttemptErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) +// (Output) +// [Output Only] The array of errors encountered while processing this operation. +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorOutput) Errors() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptError) []ResizeRequestStatusLastAttemptErrorError { + return v.Errors + }).(ResizeRequestStatusLastAttemptErrorErrorArrayOutput) } -// 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. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) DaysInCycle() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *int { - if v == nil { - return nil - } - return &v.DaysInCycle - }).(pulumi.IntPtrOutput) -} +type ResizeRequestStatusLastAttemptErrorArrayOutput struct{ *pulumi.OutputState } -// 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. -func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *string { - if v == nil { - return nil - } - return &v.StartTime - }).(pulumi.StringPtrOutput) +func (ResizeRequestStatusLastAttemptErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptError)(nil)).Elem() } -type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule struct { - // The number of hours between snapshots. - HoursInCycle int `pulumi:"hoursInCycle"` - // Time within the window to start the operations. - // It must be in an hourly format "HH:MM", - // where HH : [00-23] and MM : [00] GMT. eg: 21:00 - StartTime string `pulumi:"startTime"` +func (o ResizeRequestStatusLastAttemptErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorArrayOutput() ResizeRequestStatusLastAttemptErrorArrayOutput { + return o } -// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput interface { - pulumi.Input +func (o ResizeRequestStatusLastAttemptErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorArrayOutput { + return o +} - ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput +func (o ResizeRequestStatusLastAttemptErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptError { + return vs[0].([]ResizeRequestStatusLastAttemptError)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs struct { - // The number of hours between snapshots. - HoursInCycle pulumi.IntInput `pulumi:"hoursInCycle"` - // Time within the window to start the operations. - // It must be in an hourly format "HH:MM", - // where HH : [00-23] and MM : [00] GMT. eg: 21:00 - StartTime pulumi.StringInput `pulumi:"startTime"` +type ResizeRequestStatusLastAttemptErrorError struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code *string `pulumi:"code"` + // (Output) + // [Output Only] An optional list 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. + // Structure is documented below. + ErrorDetails []ResizeRequestStatusLastAttemptErrorErrorErrorDetail `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location *string `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() +// ResizeRequestStatusLastAttemptErrorErrorInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorArgs and ResizeRequestStatusLastAttemptErrorErrorOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput + ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Background()) +type ResizeRequestStatusLastAttemptErrorErrorArgs struct { + // (Output) + // [Output Only] The error type identifier for this error. + Code pulumi.StringPtrInput `pulumi:"code"` + // (Output) + // [Output Only] An optional list 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. + // Structure is documented below. + ErrorDetails ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput `pulumi:"errorDetails"` + // (Output) + // Output Only] Indicates the field in the request that caused the error. This property is optional. + Location pulumi.StringPtrInput `pulumi:"location"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) +func (ResizeRequestStatusLastAttemptErrorErrorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorArgs) ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusLastAttemptErrorErrorArgs) ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorOutput) } -// ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} -// -// or: +// ResizeRequestStatusLastAttemptErrorErrorArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorArray and ResizeRequestStatusLastAttemptErrorErrorArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput interface { +// ResizeRequestStatusLastAttemptErrorErrorArray{ ResizeRequestStatusLastAttemptErrorErrorArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput + ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput } -type resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs - -func ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType)(v) -} +type ResizeRequestStatusLastAttemptErrorErrorArray []ResizeRequestStatusLastAttemptErrorErrorInput -func (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorArray) ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorArray) ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ToResizeRequestStatusLastAttemptErrorErrorOutput() ResizeRequestStatusLastAttemptErrorErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ToResizeRequestStatusLastAttemptErrorErrorOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) +// (Output) +// [Output Only] The error type identifier for this error. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Code() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Code }).(pulumi.StringPtrOutput) } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) +// (Output) +// [Output Only] An optional list 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. +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) ErrorDetails() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) []ResizeRequestStatusLastAttemptErrorErrorErrorDetail { + return v.ErrorDetails + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) } -// The number of hours between snapshots. -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) HoursInCycle() pulumi.IntOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) int { return v.HoursInCycle }).(pulumi.IntOutput) +// (Output) +// Output Only] Indicates the field in the request that caused the error. This property is optional. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Location }).(pulumi.StringPtrOutput) } -// Time within the window to start the operations. -// It must be in an hourly format "HH:MM", -// where HH : [00-23] and MM : [00] GMT. eg: 21:00 -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) StartTime() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) string { return v.StartTime }).(pulumi.StringOutput) +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusLastAttemptErrorErrorOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorError) *string { return v.Message }).(pulumi.StringPtrOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorError)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorArrayOutput() ResizeRequestStatusLastAttemptErrorErrorArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) -} - -// The number of hours between snapshots. -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) HoursInCycle() pulumi.IntPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *int { - if v == nil { - return nil - } - return &v.HoursInCycle - }).(pulumi.IntPtrOutput) -} - -// Time within the window to start the operations. -// It must be in an hourly format "HH:MM", -// where HH : [00-23] and MM : [00] GMT. eg: 21:00 -func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *string { - if v == nil { - return nil - } - return &v.StartTime - }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorError { + return vs[0].([]ResizeRequestStatusLastAttemptErrorError)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule struct { - // May contain up to seven (one for each day of the week) snapshot times. +type ResizeRequestStatusLastAttemptErrorErrorErrorDetail struct { + // (Output) + // [Output Only] // Structure is documented below. - DayOfWeeks []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek `pulumi:"dayOfWeeks"` + ErrorInfos []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo `pulumi:"quotaInfos"` } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs struct { - // May contain up to seven (one for each day of the week) snapshot times. +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs struct { + // (Output) + // [Output Only] // Structure is documented below. - DayOfWeeks ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput `pulumi:"dayOfWeeks"` -} - -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() -} - -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Background()) + ErrorInfos ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput `pulumi:"errorInfos"` + // (Output) + // [Output Only] + // Structure is documented below. + Helps ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput `pulumi:"helps"` + // (Output) + // [Output Only] + // Structure is documented below. + LocalizedMessages ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput `pulumi:"localizedMessages"` + // (Output) + // [Output Only] + // Structure is documented below. + QuotaInfos ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput `pulumi:"quotaInfos"` } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} -// -// or: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput` via: // -// nil -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput } -type resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs - -func ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput { - return (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType)(v) -} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput -func (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(context.Background()) } -func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) ErrorInfos() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + return v.ErrorInfos + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - return &v - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) Helps() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + return v.Helps + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) } -// May contain up to seven (one for each day of the week) snapshot times. +// (Output) +// [Output Only] // Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { - return v.DayOfWeeks - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) LocalizedMessages() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + return v.LocalizedMessages + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput struct{ *pulumi.OutputState } - -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) QuotaInfos() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetail) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + return v.QuotaInfos + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { - return o +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule - return ret - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput { + return o } -// May contain up to seven (one for each day of the week) snapshot times. -// Structure is documented below. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { - if v == nil { - return nil - } - return v.DayOfWeeks - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetail { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetail)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek struct { - // The day of the week to create the snapshot. e.g. MONDAY - // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. - Day string `pulumi:"day"` - // Time within the window to start the operations. - // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - StartTime string `pulumi:"startTime"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo struct { + // (Output) + // The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + Domain *string `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + Metadatas map[string]string `pulumi:"metadatas"` + // (Output) + // The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason *string `pulumi:"reason"` } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs struct { - // The day of the week to create the snapshot. e.g. MONDAY - // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. - Day pulumi.StringInput `pulumi:"day"` - // Time within the window to start the operations. - // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. - StartTime pulumi.StringInput `pulumi:"startTime"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs struct { + // (Output) + // The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + Domain pulumi.StringPtrInput `pulumi:"domain"` + // (Output) + // Additional structured details about this error. + // Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + Metadatas pulumi.StringMapInput `pulumi:"metadatas"` + // (Output) + // The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + Reason pulumi.StringPtrInput `pulumi:"reason"` } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) } -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput` via: // -// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray{ ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput - ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { return o } -// The day of the week to create the snapshot. e.g. MONDAY -// Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) Day() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.Day }).(pulumi.StringOutput) +// (Output) +// The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Domain() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Domain }).(pulumi.StringPtrOutput) } -// Time within the window to start the operations. -// It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) StartTime() pulumi.StringOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.StartTime }).(pulumi.StringOutput) +// (Output) +// Additional structured details about this error. +// Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Metadatas() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) map[string]string { + return v.Metadatas + }).(pulumi.StringMapOutput) } -type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput struct{ *pulumi.OutputState } +// (Output) +// The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) Reason() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo) *string { return v.Reason }).(pulumi.StringPtrOutput) +} -func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) Index(i pulumi.IntInput) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { - return vs[0].([]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)[vs[1].(int)] - }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput) } -type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct { - // Creates the new snapshot in the snapshot chain labeled with the - // specified name. The chain name must be 1-63 characters long and comply - // with RFC1035. - ChainName *string `pulumi:"chainName"` - // Whether to perform a 'guest aware' snapshot. - GuestFlush *bool `pulumi:"guestFlush"` - // A set of key-value pairs. - Labels map[string]string `pulumi:"labels"` - // Cloud Storage bucket location to store the auto snapshot - // (regional or multi-regional) - StorageLocations *string `pulumi:"storageLocations"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp struct { + // (Output) + // [Output Only] + // Structure is documented below. + Links []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink `pulumi:"links"` } -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput` via: // -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput interface { pulumi.Input - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput } -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs struct { - // Creates the new snapshot in the snapshot chain labeled with the - // specified name. The chain name must be 1-63 characters long and comply - // with RFC1035. - ChainName pulumi.StringPtrInput `pulumi:"chainName"` - // Whether to perform a 'guest aware' snapshot. - GuestFlush pulumi.BoolPtrInput `pulumi:"guestFlush"` - // A set of key-value pairs. - Labels pulumi.StringMapInput `pulumi:"labels"` - // Cloud Storage bucket location to store the auto snapshot - // (regional or multi-regional) - StorageLocations pulumi.StringPtrInput `pulumi:"storageLocations"` +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs struct { + // (Output) + // [Output Only] + // Structure is documented below. + Links ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput `pulumi:"links"` } -func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { - return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(context.Background()) } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput } -func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput).ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput + +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs, ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput values. -// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput` via: -// -// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} -// -// or: -// -// nil -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput interface { - pulumi.Input +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(context.Background()) +} - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput - ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) } -type resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput struct{ *pulumi.OutputState } -func ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr(v *ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput { - return (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType)(v) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -func (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return o } -func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return o } -func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +// (Output) +// [Output Only] +// Structure is documented below. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) Links() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp) []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + return v.Links + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) } -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput struct{ *pulumi.OutputState } -func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput { return o } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput) } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { - return &v - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink struct { + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // (Output) + // The URL of the link. + Url *string `pulumi:"url"` } -// Creates the new snapshot in the snapshot chain labeled with the -// specified name. The chain name must be 1-63 characters long and comply -// with RFC1035. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ChainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.ChainName }).(pulumi.StringPtrOutput) +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput } -// Whether to perform a 'guest aware' snapshot. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) GuestFlush() pulumi.BoolPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { return v.GuestFlush }).(pulumi.BoolPtrOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs struct { + // An optional description of this resize-request. + Description pulumi.StringPtrInput `pulumi:"description"` + // (Output) + // The URL of the link. + Url pulumi.StringPtrInput `pulumi:"url"` } -// A set of key-value pairs. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { return v.Labels }).(pulumi.StringMapOutput) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -// Cloud Storage bucket location to store the auto snapshot -// (regional or multi-regional) -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) StorageLocations() pulumi.StringPtrOutput { - return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.StorageLocations }).(pulumi.StringPtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(context.Background()) } -type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput struct{ *pulumi.OutputState } +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) +} -func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput + +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { - return o +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(context.Background()) } -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) ResourcePolicySnapshotSchedulePolicySnapshotProperties { - if v != nil { - return *v - } - var ret ResourcePolicySnapshotSchedulePolicySnapshotProperties - return ret - }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) } -// Creates the new snapshot in the snapshot chain labeled with the -// specified name. The chain name must be 1-63 characters long and comply -// with RFC1035. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ChainName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { - if v == nil { - return nil - } - return v.ChainName - }).(pulumi.StringPtrOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput struct{ *pulumi.OutputState } + +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -// Whether to perform a 'guest aware' snapshot. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) GuestFlush() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { - if v == nil { - return nil - } - return v.GuestFlush - }).(pulumi.BoolPtrOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return o } -// A set of key-value pairs. -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Labels() pulumi.StringMapOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { - if v == nil { - return nil - } - return v.Labels - }).(pulumi.StringMapOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return o } -// Cloud Storage bucket location to store the auto snapshot -// (regional or multi-regional) -func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) StorageLocations() pulumi.StringPtrOutput { - return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { - if v == nil { - return nil - } - return v.StorageLocations - }).(pulumi.StringPtrOutput) +// An optional description of this resize-request. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { return v.Description }).(pulumi.StringPtrOutput) } -type RouterBgp struct { - // User-specified flag to indicate which mode to use for advertisement. - // Default value is `DEFAULT`. - // Possible values are: `DEFAULT`, `CUSTOM`. - AdvertiseMode *string `pulumi:"advertiseMode"` - // User-specified list of prefix groups to advertise in custom mode. - // This field can only be populated if advertiseMode is CUSTOM and - // is advertised to all peers of the router. These groups will be - // advertised in addition to any specified prefixes. Leave this field - // blank to advertise no custom groups. - // This enum field has the one valid value: ALL_SUBNETS - AdvertisedGroups []string `pulumi:"advertisedGroups"` - // User-specified list of individual IP ranges to advertise in - // custom mode. This field can only be populated if advertiseMode - // is CUSTOM and is advertised to all peers of the router. These IP - // ranges will be advertised in addition to any specified groups. - // Leave this field blank to advertise no custom IP ranges. - // Structure is documented below. - AdvertisedIpRanges []RouterBgpAdvertisedIpRange `pulumi:"advertisedIpRanges"` - // Local BGP Autonomous System Number (ASN). Must be an RFC6996 - // private ASN, either 16-bit or 32-bit. The value will be fixed for - // this router resource. All VPN tunnels that link to this router - // will have the same local ASN. - Asn int `pulumi:"asn"` - // Explicitly specifies a range of valid BGP Identifiers for this Router. - // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of - // size at least /30, even if the BGP sessions are over IPv6. It must - // not overlap with any IPv4 BGP session ranges. Other vendors commonly - // call this router ID. - IdentifierRange *string `pulumi:"identifierRange"` - // The interval in seconds between BGP keepalive messages that are sent - // to the peer. Hold time is three times the interval at which keepalive - // messages are sent, and the hold time is the maximum number of seconds - // allowed to elapse between successive keepalive messages that BGP - // receives from a peer. - // BGP will use the smaller of either the local hold time value or the - // peer's hold time value as the hold time for the BGP connection - // between the two peers. If set, this value must be between 20 and 60. - // The default is 20. - KeepaliveInterval *int `pulumi:"keepaliveInterval"` +// (Output) +// The URL of the link. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) Url() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink) *string { return v.Url }).(pulumi.StringPtrOutput) } -// RouterBgpInput is an input type that accepts RouterBgpArgs and RouterBgpOutput values. -// You can construct a concrete instance of `RouterBgpInput` via: -// -// RouterBgpArgs{...} -type RouterBgpInput interface { - pulumi.Input +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput struct{ *pulumi.OutputState } - ToRouterBgpOutput() RouterBgpOutput - ToRouterBgpOutputWithContext(context.Context) RouterBgpOutput +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)(nil)).Elem() } -type RouterBgpArgs struct { - // User-specified flag to indicate which mode to use for advertisement. - // Default value is `DEFAULT`. - // Possible values are: `DEFAULT`, `CUSTOM`. - AdvertiseMode pulumi.StringPtrInput `pulumi:"advertiseMode"` - // User-specified list of prefix groups to advertise in custom mode. - // This field can only be populated if advertiseMode is CUSTOM and - // is advertised to all peers of the router. These groups will be - // advertised in addition to any specified prefixes. Leave this field - // blank to advertise no custom groups. - // This enum field has the one valid value: ALL_SUBNETS - AdvertisedGroups pulumi.StringArrayInput `pulumi:"advertisedGroups"` - // User-specified list of individual IP ranges to advertise in - // custom mode. This field can only be populated if advertiseMode - // is CUSTOM and is advertised to all peers of the router. These IP - // ranges will be advertised in addition to any specified groups. - // Leave this field blank to advertise no custom IP ranges. - // Structure is documented below. - AdvertisedIpRanges RouterBgpAdvertisedIpRangeArrayInput `pulumi:"advertisedIpRanges"` - // Local BGP Autonomous System Number (ASN). Must be an RFC6996 - // private ASN, either 16-bit or 32-bit. The value will be fixed for - // this router resource. All VPN tunnels that link to this router - // will have the same local ASN. - Asn pulumi.IntInput `pulumi:"asn"` - // Explicitly specifies a range of valid BGP Identifiers for this Router. - // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of - // size at least /30, even if the BGP sessions are over IPv6. It must - // not overlap with any IPv4 BGP session ranges. Other vendors commonly - // call this router ID. - IdentifierRange pulumi.StringPtrInput `pulumi:"identifierRange"` - // The interval in seconds between BGP keepalive messages that are sent - // to the peer. Hold time is three times the interval at which keepalive - // messages are sent, and the hold time is the maximum number of seconds - // allowed to elapse between successive keepalive messages that BGP - // receives from a peer. - // BGP will use the smaller of either the local hold time value or the - // peer's hold time value as the hold time for the BGP connection - // between the two peers. If set, this value must be between 20 and 60. - // The default is 20. - KeepaliveInterval pulumi.IntPtrInput `pulumi:"keepaliveInterval"` +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return o } -func (RouterBgpArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgp)(nil)).Elem() +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput { + return o } -func (i RouterBgpArgs) ToRouterBgpOutput() RouterBgpOutput { - return i.ToRouterBgpOutputWithContext(context.Background()) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput) } -func (i RouterBgpArgs) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale *string `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message *string `pulumi:"message"` } -func (i RouterBgpArgs) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return i.ToRouterBgpPtrOutputWithContext(context.Background()) +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput } -func (i RouterBgpArgs) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput).ToRouterBgpPtrOutputWithContext(ctx) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs struct { + // (Output) + // The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + Locale pulumi.StringPtrInput `pulumi:"locale"` + // (Output) + // The localized error message in the above locale. + Message pulumi.StringPtrInput `pulumi:"message"` } -// RouterBgpPtrInput is an input type that accepts RouterBgpArgs, RouterBgpPtr and RouterBgpPtrOutput values. -// You can construct a concrete instance of `RouterBgpPtrInput` via: -// -// RouterBgpArgs{...} -// -// or: -// -// nil -type RouterBgpPtrInput interface { - pulumi.Input +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() +} - ToRouterBgpPtrOutput() RouterBgpPtrOutput - ToRouterBgpPtrOutputWithContext(context.Context) RouterBgpPtrOutput +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(context.Background()) } -type routerBgpPtrType RouterBgpArgs +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) +} -func RouterBgpPtr(v *RouterBgpArgs) RouterBgpPtrInput { - return (*routerBgpPtrType)(v) +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput interface { + pulumi.Input + + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput } -func (*routerBgpPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterBgp)(nil)).Elem() +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput + +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (i *routerBgpPtrType) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return i.ToRouterBgpPtrOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(context.Background()) } -func (i *routerBgpPtrType) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) } -type RouterBgpOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput struct{ *pulumi.OutputState } -func (RouterBgpOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgp)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -func (o RouterBgpOutput) ToRouterBgpOutput() RouterBgpOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o RouterBgpOutput) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { return o } -func (o RouterBgpOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return o.ToRouterBgpPtrOutputWithContext(context.Background()) +// (Output) +// The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Locale() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { return v.Locale }).(pulumi.StringPtrOutput) } -func (o RouterBgpOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterBgp) *RouterBgp { - return &v - }).(RouterBgpPtrOutput) +// (Output) +// The localized error message in the above locale. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) Message() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage) *string { return v.Message }).(pulumi.StringPtrOutput) } -// User-specified flag to indicate which mode to use for advertisement. -// Default value is `DEFAULT`. -// Possible values are: `DEFAULT`, `CUSTOM`. -func (o RouterBgpOutput) AdvertiseMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterBgp) *string { return v.AdvertiseMode }).(pulumi.StringPtrOutput) -} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput struct{ *pulumi.OutputState } -// User-specified list of prefix groups to advertise in custom mode. -// This field can only be populated if advertiseMode is CUSTOM and -// is advertised to all peers of the router. These groups will be -// advertised in addition to any specified prefixes. Leave this field -// blank to advertise no custom groups. -// This enum field has the one valid value: ALL_SUBNETS -func (o RouterBgpOutput) AdvertisedGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterBgp) []string { return v.AdvertisedGroups }).(pulumi.StringArrayOutput) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)(nil)).Elem() } -// User-specified list of individual IP ranges to advertise in -// custom mode. This field can only be populated if advertiseMode -// is CUSTOM and is advertised to all peers of the router. These IP -// ranges will be advertised in addition to any specified groups. -// Leave this field blank to advertise no custom IP ranges. -// Structure is documented below. -func (o RouterBgpOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { - return o.ApplyT(func(v RouterBgp) []RouterBgpAdvertisedIpRange { return v.AdvertisedIpRanges }).(RouterBgpAdvertisedIpRangeArrayOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o } -// Local BGP Autonomous System Number (ASN). Must be an RFC6996 -// private ASN, either 16-bit or 32-bit. The value will be fixed for -// this router resource. All VPN tunnels that link to this router -// will have the same local ASN. -func (o RouterBgpOutput) Asn() pulumi.IntOutput { - return o.ApplyT(func(v RouterBgp) int { return v.Asn }).(pulumi.IntOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput { + return o } -// Explicitly specifies a range of valid BGP Identifiers for this Router. -// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of -// size at least /30, even if the BGP sessions are over IPv6. It must -// not overlap with any IPv4 BGP session ranges. Other vendors commonly -// call this router ID. -func (o RouterBgpOutput) IdentifierRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterBgp) *string { return v.IdentifierRange }).(pulumi.StringPtrOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput) } -// The interval in seconds between BGP keepalive messages that are sent -// to the peer. Hold time is three times the interval at which keepalive -// messages are sent, and the hold time is the maximum number of seconds -// allowed to elapse between successive keepalive messages that BGP -// receives from a peer. -// BGP will use the smaller of either the local hold time value or the -// peer's hold time value as the hold time for the BGP connection -// between the two peers. If set, this value must be between 20 and 60. -// The default is 20. -func (o RouterBgpOutput) KeepaliveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterBgp) *int { return v.KeepaliveInterval }).(pulumi.IntPtrOutput) -} - -type RouterBgpPtrOutput struct{ *pulumi.OutputState } - -func (RouterBgpPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterBgp)(nil)).Elem() -} - -func (o RouterBgpPtrOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { - return o -} - -func (o RouterBgpPtrOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { - return o -} - -func (o RouterBgpPtrOutput) Elem() RouterBgpOutput { - return o.ApplyT(func(v *RouterBgp) RouterBgp { - if v != nil { - return *v - } - var ret RouterBgp - return ret - }).(RouterBgpOutput) -} - -// User-specified flag to indicate which mode to use for advertisement. -// Default value is `DEFAULT`. -// Possible values are: `DEFAULT`, `CUSTOM`. -func (o RouterBgpPtrOutput) AdvertiseMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterBgp) *string { - if v == nil { - return nil - } - return v.AdvertiseMode - }).(pulumi.StringPtrOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo struct { + // (Output) + // The map holding related quota dimensions + Dimensions map[string]string `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit *int `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit *int `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName *string `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName *string `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus *string `pulumi:"rolloutStatus"` } -// User-specified list of prefix groups to advertise in custom mode. -// This field can only be populated if advertiseMode is CUSTOM and -// is advertised to all peers of the router. These groups will be -// advertised in addition to any specified prefixes. Leave this field -// blank to advertise no custom groups. -// This enum field has the one valid value: ALL_SUBNETS -func (o RouterBgpPtrOutput) AdvertisedGroups() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterBgp) []string { - if v == nil { - return nil - } - return v.AdvertisedGroups - }).(pulumi.StringArrayOutput) -} +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs and ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput` via: +// +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput interface { + pulumi.Input -// User-specified list of individual IP ranges to advertise in -// custom mode. This field can only be populated if advertiseMode -// is CUSTOM and is advertised to all peers of the router. These IP -// ranges will be advertised in addition to any specified groups. -// Leave this field blank to advertise no custom IP ranges. -// Structure is documented below. -func (o RouterBgpPtrOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { - return o.ApplyT(func(v *RouterBgp) []RouterBgpAdvertisedIpRange { - if v == nil { - return nil - } - return v.AdvertisedIpRanges - }).(RouterBgpAdvertisedIpRangeArrayOutput) + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput } -// Local BGP Autonomous System Number (ASN). Must be an RFC6996 -// private ASN, either 16-bit or 32-bit. The value will be fixed for -// this router resource. All VPN tunnels that link to this router -// will have the same local ASN. -func (o RouterBgpPtrOutput) Asn() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterBgp) *int { - if v == nil { - return nil - } - return &v.Asn - }).(pulumi.IntPtrOutput) +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs struct { + // (Output) + // The map holding related quota dimensions + Dimensions pulumi.StringMapInput `pulumi:"dimensions"` + // (Output) + // Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + FutureLimit pulumi.IntPtrInput `pulumi:"futureLimit"` + // (Output) + // Current effective quota limit. The limit's unit depends on the quota type or metric. + Limit pulumi.IntPtrInput `pulumi:"limit"` + // (Output) + // The name of the quota limit. + LimitName pulumi.StringPtrInput `pulumi:"limitName"` + // (Output) + // The Compute Engine quota metric name. + MetricName pulumi.StringPtrInput `pulumi:"metricName"` + // (Output) + // Rollout status of the future quota limit. + RolloutStatus pulumi.StringPtrInput `pulumi:"rolloutStatus"` } -// Explicitly specifies a range of valid BGP Identifiers for this Router. -// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of -// size at least /30, even if the BGP sessions are over IPv6. It must -// not overlap with any IPv4 BGP session ranges. Other vendors commonly -// call this router ID. -func (o RouterBgpPtrOutput) IdentifierRange() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterBgp) *string { - if v == nil { - return nil - } - return v.IdentifierRange - }).(pulumi.StringPtrOutput) +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -// The interval in seconds between BGP keepalive messages that are sent -// to the peer. Hold time is three times the interval at which keepalive -// messages are sent, and the hold time is the maximum number of seconds -// allowed to elapse between successive keepalive messages that BGP -// receives from a peer. -// BGP will use the smaller of either the local hold time value or the -// peer's hold time value as the hold time for the BGP connection -// between the two peers. If set, this value must be between 20 and 60. -// The default is 20. -func (o RouterBgpPtrOutput) KeepaliveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterBgp) *int { - if v == nil { - return nil - } - return v.KeepaliveInterval - }).(pulumi.IntPtrOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(context.Background()) } -type RouterBgpAdvertisedIpRange struct { - // User-specified description for the IP range. - Description *string `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range string `pulumi:"range"` +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) } -// RouterBgpAdvertisedIpRangeInput is an input type that accepts RouterBgpAdvertisedIpRangeArgs and RouterBgpAdvertisedIpRangeOutput values. -// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeInput` via: +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput is an input type that accepts ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray and ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput values. +// You can construct a concrete instance of `ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput` via: // -// RouterBgpAdvertisedIpRangeArgs{...} -type RouterBgpAdvertisedIpRangeInput interface { +// ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray{ ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{...} } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput interface { pulumi.Input - ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput - ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput + ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput } -type RouterBgpAdvertisedIpRangeArgs struct { - // User-specified description for the IP range. - Description pulumi.StringPtrInput `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range pulumi.StringInput `pulumi:"range"` -} +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray []ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput -func (RouterBgpAdvertisedIpRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { - return i.ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Background()) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return i.ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(context.Background()) } -func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeOutput) +func (i ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) } -// RouterBgpAdvertisedIpRangeArrayInput is an input type that accepts RouterBgpAdvertisedIpRangeArray and RouterBgpAdvertisedIpRangeArrayOutput values. -// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeArrayInput` via: -// -// RouterBgpAdvertisedIpRangeArray{ RouterBgpAdvertisedIpRangeArgs{...} } -type RouterBgpAdvertisedIpRangeArrayInput interface { - pulumi.Input +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput struct{ *pulumi.OutputState } - ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput - ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeArrayOutput +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -type RouterBgpAdvertisedIpRangeArray []RouterBgpAdvertisedIpRangeInput - -func (RouterBgpAdvertisedIpRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return o } -func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { - return i.ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Background()) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return o } -func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeArrayOutput) +// (Output) +// The map holding related quota dimensions +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Dimensions() pulumi.StringMapOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) map[string]string { + return v.Dimensions + }).(pulumi.StringMapOutput) } -type RouterBgpAdvertisedIpRangeOutput struct{ *pulumi.OutputState } - -func (RouterBgpAdvertisedIpRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() +// (Output) +// Future quota limit being rolled out. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) FutureLimit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.FutureLimit }).(pulumi.IntPtrOutput) } -func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { - return o +// (Output) +// Current effective quota limit. The limit's unit depends on the quota type or metric. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) Limit() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *int { return v.Limit }).(pulumi.IntPtrOutput) } -func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { - return o +// (Output) +// The name of the quota limit. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) LimitName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.LimitName }).(pulumi.StringPtrOutput) } -// User-specified description for the IP range. -func (o RouterBgpAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterBgpAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) +// (Output) +// The Compute Engine quota metric name. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) MetricName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.MetricName }).(pulumi.StringPtrOutput) } -// The IP range to advertise. The value must be a -// CIDR-formatted string. -func (o RouterBgpAdvertisedIpRangeOutput) Range() pulumi.StringOutput { - return o.ApplyT(func(v RouterBgpAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) +// (Output) +// Rollout status of the future quota limit. +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) RolloutStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo) *string { return v.RolloutStatus }).(pulumi.StringPtrOutput) } -type RouterBgpAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } +type ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput struct{ *pulumi.OutputState } -func (RouterBgpAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() +func (ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)(nil)).Elem() } -func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput() ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) ToResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutputWithContext(ctx context.Context) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput { return o } -func (o RouterBgpAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterBgpAdvertisedIpRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterBgpAdvertisedIpRange { - return vs[0].([]RouterBgpAdvertisedIpRange)[vs[1].(int)] - }).(RouterBgpAdvertisedIpRangeOutput) +func (o ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput) Index(i pulumi.IntInput) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + return vs[0].([]ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo)[vs[1].(int)] + }).(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput) } -type RouterNatLogConfig struct { - // Indicates whether or not to export logs. - Enable bool `pulumi:"enable"` - // Specifies the desired filtering of logs on this NAT. - // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. - Filter string `pulumi:"filter"` +type ResourcePolicyDiskConsistencyGroupPolicy struct { + // Enable disk consistency on the resource policy. + Enabled bool `pulumi:"enabled"` } -// RouterNatLogConfigInput is an input type that accepts RouterNatLogConfigArgs and RouterNatLogConfigOutput values. -// You can construct a concrete instance of `RouterNatLogConfigInput` via: +// ResourcePolicyDiskConsistencyGroupPolicyInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs and ResourcePolicyDiskConsistencyGroupPolicyOutput values. +// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyInput` via: // -// RouterNatLogConfigArgs{...} -type RouterNatLogConfigInput interface { +// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} +type ResourcePolicyDiskConsistencyGroupPolicyInput interface { pulumi.Input - ToRouterNatLogConfigOutput() RouterNatLogConfigOutput - ToRouterNatLogConfigOutputWithContext(context.Context) RouterNatLogConfigOutput + ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput + ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput } -type RouterNatLogConfigArgs struct { - // Indicates whether or not to export logs. - Enable pulumi.BoolInput `pulumi:"enable"` - // Specifies the desired filtering of logs on this NAT. - // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. - Filter pulumi.StringInput `pulumi:"filter"` +type ResourcePolicyDiskConsistencyGroupPolicyArgs struct { + // Enable disk consistency on the resource policy. + Enabled pulumi.BoolInput `pulumi:"enabled"` } -func (RouterNatLogConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() +func (ResourcePolicyDiskConsistencyGroupPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { - return i.ToRouterNatLogConfigOutputWithContext(context.Background()) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { + return i.ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(context.Background()) } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput) } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { - return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) } -func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput).ToRouterNatLogConfigPtrOutputWithContext(ctx) +func (i ResourcePolicyDiskConsistencyGroupPolicyArgs) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyOutput).ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx) } -// RouterNatLogConfigPtrInput is an input type that accepts RouterNatLogConfigArgs, RouterNatLogConfigPtr and RouterNatLogConfigPtrOutput values. -// You can construct a concrete instance of `RouterNatLogConfigPtrInput` via: +// ResourcePolicyDiskConsistencyGroupPolicyPtrInput is an input type that accepts ResourcePolicyDiskConsistencyGroupPolicyArgs, ResourcePolicyDiskConsistencyGroupPolicyPtr and ResourcePolicyDiskConsistencyGroupPolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicyDiskConsistencyGroupPolicyPtrInput` via: // -// RouterNatLogConfigArgs{...} +// ResourcePolicyDiskConsistencyGroupPolicyArgs{...} // // or: // // nil -type RouterNatLogConfigPtrInput interface { +type ResourcePolicyDiskConsistencyGroupPolicyPtrInput interface { pulumi.Input - ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput - ToRouterNatLogConfigPtrOutputWithContext(context.Context) RouterNatLogConfigPtrOutput + ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput + ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput } -type routerNatLogConfigPtrType RouterNatLogConfigArgs +type resourcePolicyDiskConsistencyGroupPolicyPtrType ResourcePolicyDiskConsistencyGroupPolicyArgs -func RouterNatLogConfigPtr(v *RouterNatLogConfigArgs) RouterNatLogConfigPtrInput { - return (*routerNatLogConfigPtrType)(v) +func ResourcePolicyDiskConsistencyGroupPolicyPtr(v *ResourcePolicyDiskConsistencyGroupPolicyArgs) ResourcePolicyDiskConsistencyGroupPolicyPtrInput { + return (*resourcePolicyDiskConsistencyGroupPolicyPtrType)(v) } -func (*routerNatLogConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() +func (*resourcePolicyDiskConsistencyGroupPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { - return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return i.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) } -func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigPtrOutput) +func (i *resourcePolicyDiskConsistencyGroupPolicyPtrType) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) } -type RouterNatLogConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicyDiskConsistencyGroupPolicyOutput struct{ *pulumi.OutputState } -func (RouterNatLogConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() +func (ResourcePolicyDiskConsistencyGroupPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutput() ResourcePolicyDiskConsistencyGroupPolicyOutput { return o } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyOutput { return o } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { - return o.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return o.ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(context.Background()) } -func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatLogConfig) *RouterNatLogConfig { +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyDiskConsistencyGroupPolicy) *ResourcePolicyDiskConsistencyGroupPolicy { return &v - }).(RouterNatLogConfigPtrOutput) -} - -// Indicates whether or not to export logs. -func (o RouterNatLogConfigOutput) Enable() pulumi.BoolOutput { - return o.ApplyT(func(v RouterNatLogConfig) bool { return v.Enable }).(pulumi.BoolOutput) + }).(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) } -// Specifies the desired filtering of logs on this NAT. -// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. -func (o RouterNatLogConfigOutput) Filter() pulumi.StringOutput { - return o.ApplyT(func(v RouterNatLogConfig) string { return v.Filter }).(pulumi.StringOutput) +// Enable disk consistency on the resource policy. +func (o ResourcePolicyDiskConsistencyGroupPolicyOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ResourcePolicyDiskConsistencyGroupPolicy) bool { return v.Enabled }).(pulumi.BoolOutput) } -type RouterNatLogConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicyDiskConsistencyGroupPolicyPtrOutput struct{ *pulumi.OutputState } -func (RouterNatLogConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() +func (ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyDiskConsistencyGroupPolicy)(nil)).Elem() } -func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutput() ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { return o } -func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) ToResourcePolicyDiskConsistencyGroupPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyDiskConsistencyGroupPolicyPtrOutput { return o } -func (o RouterNatLogConfigPtrOutput) Elem() RouterNatLogConfigOutput { - return o.ApplyT(func(v *RouterNatLogConfig) RouterNatLogConfig { +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Elem() ResourcePolicyDiskConsistencyGroupPolicyOutput { + return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) ResourcePolicyDiskConsistencyGroupPolicy { if v != nil { return *v } - var ret RouterNatLogConfig + var ret ResourcePolicyDiskConsistencyGroupPolicy return ret - }).(RouterNatLogConfigOutput) + }).(ResourcePolicyDiskConsistencyGroupPolicyOutput) } -// Indicates whether or not to export logs. -func (o RouterNatLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *RouterNatLogConfig) *bool { +// Enable disk consistency on the resource policy. +func (o ResourcePolicyDiskConsistencyGroupPolicyPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ResourcePolicyDiskConsistencyGroupPolicy) *bool { if v == nil { return nil } - return &v.Enable + return &v.Enabled }).(pulumi.BoolPtrOutput) } -// Specifies the desired filtering of logs on this NAT. -// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. -func (o RouterNatLogConfigPtrOutput) Filter() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterNatLogConfig) *string { - if v == nil { - return nil - } - return &v.Filter - }).(pulumi.StringPtrOutput) -} - -type RouterNatRule struct { - // The action to be enforced for traffic that matches this rule. - // Structure is documented below. - Action *RouterNatRuleAction `pulumi:"action"` - // An optional description of this rule. - Description *string `pulumi:"description"` - // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. - // If it evaluates to true, the corresponding action is enforced. - // The following examples are valid match expressions for public NAT: - // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" - // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" - // The following example is a valid match expression for private NAT: - // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" - Match string `pulumi:"match"` - // An integer uniquely identifying a rule in the list. - // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. - RuleNumber int `pulumi:"ruleNumber"` +type ResourcePolicyGroupPlacementPolicy struct { + // The number of availability domains instances will be spread across. If two instances are in different + // availability domain, they will not be put in the same low latency network + AvailabilityDomainCount *int `pulumi:"availabilityDomainCount"` + // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. + // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created + // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy + // attached. + // Possible values are: `COLLOCATED`. + Collocation *string `pulumi:"collocation"` + // Specifies the number of max logical switches. + MaxDistance *int `pulumi:"maxDistance"` + // Number of VMs in this placement group. Google does not recommend that you use this field + // unless you use a compact policy and you want your policy to work only if it contains this + // exact number of VMs. + VmCount *int `pulumi:"vmCount"` } -// RouterNatRuleInput is an input type that accepts RouterNatRuleArgs and RouterNatRuleOutput values. -// You can construct a concrete instance of `RouterNatRuleInput` via: +// ResourcePolicyGroupPlacementPolicyInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs and ResourcePolicyGroupPlacementPolicyOutput values. +// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyInput` via: // -// RouterNatRuleArgs{...} -type RouterNatRuleInput interface { +// ResourcePolicyGroupPlacementPolicyArgs{...} +type ResourcePolicyGroupPlacementPolicyInput interface { pulumi.Input - ToRouterNatRuleOutput() RouterNatRuleOutput - ToRouterNatRuleOutputWithContext(context.Context) RouterNatRuleOutput + ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput + ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyOutput } -type RouterNatRuleArgs struct { - // The action to be enforced for traffic that matches this rule. - // Structure is documented below. - Action RouterNatRuleActionPtrInput `pulumi:"action"` - // An optional description of this rule. - Description pulumi.StringPtrInput `pulumi:"description"` - // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. - // If it evaluates to true, the corresponding action is enforced. - // The following examples are valid match expressions for public NAT: - // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" - // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" - // The following example is a valid match expression for private NAT: - // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" - Match pulumi.StringInput `pulumi:"match"` - // An integer uniquely identifying a rule in the list. - // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. - RuleNumber pulumi.IntInput `pulumi:"ruleNumber"` +type ResourcePolicyGroupPlacementPolicyArgs struct { + // The number of availability domains instances will be spread across. If two instances are in different + // availability domain, they will not be put in the same low latency network + AvailabilityDomainCount pulumi.IntPtrInput `pulumi:"availabilityDomainCount"` + // Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. + // Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created + // with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy + // attached. + // Possible values are: `COLLOCATED`. + Collocation pulumi.StringPtrInput `pulumi:"collocation"` + // Specifies the number of max logical switches. + MaxDistance pulumi.IntPtrInput `pulumi:"maxDistance"` + // Number of VMs in this placement group. Google does not recommend that you use this field + // unless you use a compact policy and you want your policy to work only if it contains this + // exact number of VMs. + VmCount pulumi.IntPtrInput `pulumi:"vmCount"` } -func (RouterNatRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRule)(nil)).Elem() +func (ResourcePolicyGroupPlacementPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } -func (i RouterNatRuleArgs) ToRouterNatRuleOutput() RouterNatRuleOutput { - return i.ToRouterNatRuleOutputWithContext(context.Background()) +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { + return i.ToResourcePolicyGroupPlacementPolicyOutputWithContext(context.Background()) } -func (i RouterNatRuleArgs) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleOutput) +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput) } -// RouterNatRuleArrayInput is an input type that accepts RouterNatRuleArray and RouterNatRuleArrayOutput values. -// You can construct a concrete instance of `RouterNatRuleArrayInput` via: +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { + return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) +} + +func (i ResourcePolicyGroupPlacementPolicyArgs) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyOutput).ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx) +} + +// ResourcePolicyGroupPlacementPolicyPtrInput is an input type that accepts ResourcePolicyGroupPlacementPolicyArgs, ResourcePolicyGroupPlacementPolicyPtr and ResourcePolicyGroupPlacementPolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicyGroupPlacementPolicyPtrInput` via: // -// RouterNatRuleArray{ RouterNatRuleArgs{...} } -type RouterNatRuleArrayInput interface { +// ResourcePolicyGroupPlacementPolicyArgs{...} +// +// or: +// +// nil +type ResourcePolicyGroupPlacementPolicyPtrInput interface { pulumi.Input - ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput - ToRouterNatRuleArrayOutputWithContext(context.Context) RouterNatRuleArrayOutput + ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput + ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput } -type RouterNatRuleArray []RouterNatRuleInput +type resourcePolicyGroupPlacementPolicyPtrType ResourcePolicyGroupPlacementPolicyArgs -func (RouterNatRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() +func ResourcePolicyGroupPlacementPolicyPtr(v *ResourcePolicyGroupPlacementPolicyArgs) ResourcePolicyGroupPlacementPolicyPtrInput { + return (*resourcePolicyGroupPlacementPolicyPtrType)(v) } -func (i RouterNatRuleArray) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { - return i.ToRouterNatRuleArrayOutputWithContext(context.Background()) +func (*resourcePolicyGroupPlacementPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } -func (i RouterNatRuleArray) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleArrayOutput) +func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { + return i.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } -type RouterNatRuleOutput struct{ *pulumi.OutputState } +func (i *resourcePolicyGroupPlacementPolicyPtrType) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyGroupPlacementPolicyPtrOutput) +} -func (RouterNatRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRule)(nil)).Elem() +type ResourcePolicyGroupPlacementPolicyOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyGroupPlacementPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyGroupPlacementPolicy)(nil)).Elem() } -func (o RouterNatRuleOutput) ToRouterNatRuleOutput() RouterNatRuleOutput { +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutput() ResourcePolicyGroupPlacementPolicyOutput { return o } -func (o RouterNatRuleOutput) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyOutput { return o } -// The action to be enforced for traffic that matches this rule. -// Structure is documented below. -func (o RouterNatRuleOutput) Action() RouterNatRuleActionPtrOutput { - return o.ApplyT(func(v RouterNatRule) *RouterNatRuleAction { return v.Action }).(RouterNatRuleActionPtrOutput) +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { + return o.ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(context.Background()) } -// An optional description of this rule. -func (o RouterNatRuleOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterNatRule) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o ResourcePolicyGroupPlacementPolicyOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyGroupPlacementPolicy) *ResourcePolicyGroupPlacementPolicy { + return &v + }).(ResourcePolicyGroupPlacementPolicyPtrOutput) } -// CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. -// If it evaluates to true, the corresponding action is enforced. -// The following examples are valid match expressions for public NAT: -// "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" -// "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" -// The following example is a valid match expression for private NAT: -// "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" -func (o RouterNatRuleOutput) Match() pulumi.StringOutput { - return o.ApplyT(func(v RouterNatRule) string { return v.Match }).(pulumi.StringOutput) +// The number of availability domains instances will be spread across. If two instances are in different +// availability domain, they will not be put in the same low latency network +func (o ResourcePolicyGroupPlacementPolicyOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.AvailabilityDomainCount }).(pulumi.IntPtrOutput) } -// An integer uniquely identifying a rule in the list. -// The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. -func (o RouterNatRuleOutput) RuleNumber() pulumi.IntOutput { - return o.ApplyT(func(v RouterNatRule) int { return v.RuleNumber }).(pulumi.IntOutput) +// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. +// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created +// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy +// attached. +// Possible values are: `COLLOCATED`. +func (o ResourcePolicyGroupPlacementPolicyOutput) Collocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *string { return v.Collocation }).(pulumi.StringPtrOutput) } -type RouterNatRuleArrayOutput struct{ *pulumi.OutputState } +// Specifies the number of max logical switches. +func (o ResourcePolicyGroupPlacementPolicyOutput) MaxDistance() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.MaxDistance }).(pulumi.IntPtrOutput) +} -func (RouterNatRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() +// Number of VMs in this placement group. Google does not recommend that you use this field +// unless you use a compact policy and you want your policy to work only if it contains this +// exact number of VMs. +func (o ResourcePolicyGroupPlacementPolicyOutput) VmCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v ResourcePolicyGroupPlacementPolicy) *int { return v.VmCount }).(pulumi.IntPtrOutput) } -func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { +type ResourcePolicyGroupPlacementPolicyPtrOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyGroupPlacementPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyGroupPlacementPolicy)(nil)).Elem() +} + +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutput() ResourcePolicyGroupPlacementPolicyPtrOutput { return o } -func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) ToResourcePolicyGroupPlacementPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyGroupPlacementPolicyPtrOutput { return o } -func (o RouterNatRuleArrayOutput) Index(i pulumi.IntInput) RouterNatRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatRule { - return vs[0].([]RouterNatRule)[vs[1].(int)] - }).(RouterNatRuleOutput) +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Elem() ResourcePolicyGroupPlacementPolicyOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) ResourcePolicyGroupPlacementPolicy { + if v != nil { + return *v + } + var ret ResourcePolicyGroupPlacementPolicy + return ret + }).(ResourcePolicyGroupPlacementPolicyOutput) } -type RouterNatRuleAction struct { - // A list of URLs of the IP resources used for this NAT rule. - // These IP addresses must be valid static external IP addresses assigned to the project. - // This field is used for public NAT. - SourceNatActiveIps []string `pulumi:"sourceNatActiveIps"` - // A list of URLs of the subnetworks used as source ranges for this NAT Rule. - // These subnetworks must have purpose set to PRIVATE_NAT. - // This field is used for private NAT. - SourceNatActiveRanges []string `pulumi:"sourceNatActiveRanges"` - // A list of URLs of the IP resources to be drained. - // These IPs must be valid static external IPs that have been assigned to the NAT. - // These IPs should be used for updating/patching a NAT rule only. - // This field is used for public NAT. - SourceNatDrainIps []string `pulumi:"sourceNatDrainIps"` - // A list of URLs of subnetworks representing source ranges to be drained. - // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. - // This field is used for private NAT. - SourceNatDrainRanges []string `pulumi:"sourceNatDrainRanges"` +// The number of availability domains instances will be spread across. If two instances are in different +// availability domain, they will not be put in the same low latency network +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) AvailabilityDomainCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { + if v == nil { + return nil + } + return v.AvailabilityDomainCount + }).(pulumi.IntPtrOutput) } -// RouterNatRuleActionInput is an input type that accepts RouterNatRuleActionArgs and RouterNatRuleActionOutput values. -// You can construct a concrete instance of `RouterNatRuleActionInput` via: +// Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. +// Specify `COLLOCATED` to enable collocation. Can only be specified with `vmCount`. If compute instances are created +// with a COLLOCATED policy, then exactly `vmCount` instances must be created at the same time with the resource policy +// attached. +// Possible values are: `COLLOCATED`. +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) Collocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *string { + if v == nil { + return nil + } + return v.Collocation + }).(pulumi.StringPtrOutput) +} + +// Specifies the number of max logical switches. +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) MaxDistance() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { + if v == nil { + return nil + } + return v.MaxDistance + }).(pulumi.IntPtrOutput) +} + +// Number of VMs in this placement group. Google does not recommend that you use this field +// unless you use a compact policy and you want your policy to work only if it contains this +// exact number of VMs. +func (o ResourcePolicyGroupPlacementPolicyPtrOutput) VmCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicyGroupPlacementPolicy) *int { + if v == nil { + return nil + } + return v.VmCount + }).(pulumi.IntPtrOutput) +} + +type ResourcePolicyInstanceSchedulePolicy struct { + // The expiration time of the schedule. The timestamp is an RFC3339 string. + ExpirationTime *string `pulumi:"expirationTime"` + // The start time of the schedule. The timestamp is an RFC3339 string. + StartTime *string `pulumi:"startTime"` + // Specifies the time zone to be used in 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. + TimeZone string `pulumi:"timeZone"` + // Specifies the schedule for starting instances. + // Structure is documented below. + VmStartSchedule *ResourcePolicyInstanceSchedulePolicyVmStartSchedule `pulumi:"vmStartSchedule"` + // Specifies the schedule for stopping instances. + // Structure is documented below. + VmStopSchedule *ResourcePolicyInstanceSchedulePolicyVmStopSchedule `pulumi:"vmStopSchedule"` +} + +// ResourcePolicyInstanceSchedulePolicyInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs and ResourcePolicyInstanceSchedulePolicyOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyInput` via: // -// RouterNatRuleActionArgs{...} -type RouterNatRuleActionInput interface { +// ResourcePolicyInstanceSchedulePolicyArgs{...} +type ResourcePolicyInstanceSchedulePolicyInput interface { pulumi.Input - ToRouterNatRuleActionOutput() RouterNatRuleActionOutput - ToRouterNatRuleActionOutputWithContext(context.Context) RouterNatRuleActionOutput + ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput + ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyOutput } -type RouterNatRuleActionArgs struct { - // A list of URLs of the IP resources used for this NAT rule. - // These IP addresses must be valid static external IP addresses assigned to the project. - // This field is used for public NAT. - SourceNatActiveIps pulumi.StringArrayInput `pulumi:"sourceNatActiveIps"` - // A list of URLs of the subnetworks used as source ranges for this NAT Rule. - // These subnetworks must have purpose set to PRIVATE_NAT. - // This field is used for private NAT. - SourceNatActiveRanges pulumi.StringArrayInput `pulumi:"sourceNatActiveRanges"` - // A list of URLs of the IP resources to be drained. - // These IPs must be valid static external IPs that have been assigned to the NAT. - // These IPs should be used for updating/patching a NAT rule only. - // This field is used for public NAT. - SourceNatDrainIps pulumi.StringArrayInput `pulumi:"sourceNatDrainIps"` - // A list of URLs of subnetworks representing source ranges to be drained. - // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. - // This field is used for private NAT. - SourceNatDrainRanges pulumi.StringArrayInput `pulumi:"sourceNatDrainRanges"` +type ResourcePolicyInstanceSchedulePolicyArgs struct { + // The expiration time of the schedule. The timestamp is an RFC3339 string. + ExpirationTime pulumi.StringPtrInput `pulumi:"expirationTime"` + // The start time of the schedule. The timestamp is an RFC3339 string. + StartTime pulumi.StringPtrInput `pulumi:"startTime"` + // Specifies the time zone to be used in 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. + TimeZone pulumi.StringInput `pulumi:"timeZone"` + // Specifies the schedule for starting instances. + // Structure is documented below. + VmStartSchedule ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput `pulumi:"vmStartSchedule"` + // Specifies the schedule for stopping instances. + // Structure is documented below. + VmStopSchedule ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput `pulumi:"vmStopSchedule"` } -func (RouterNatRuleActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { - return i.ToRouterNatRuleActionOutputWithContext(context.Background()) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { + return i.ToResourcePolicyInstanceSchedulePolicyOutputWithContext(context.Background()) } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput) } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { - return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } -func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput).ToRouterNatRuleActionPtrOutputWithContext(ctx) +func (i ResourcePolicyInstanceSchedulePolicyArgs) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyOutput).ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx) } -// RouterNatRuleActionPtrInput is an input type that accepts RouterNatRuleActionArgs, RouterNatRuleActionPtr and RouterNatRuleActionPtrOutput values. -// You can construct a concrete instance of `RouterNatRuleActionPtrInput` via: +// ResourcePolicyInstanceSchedulePolicyPtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyArgs, ResourcePolicyInstanceSchedulePolicyPtr and ResourcePolicyInstanceSchedulePolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyPtrInput` via: // -// RouterNatRuleActionArgs{...} +// ResourcePolicyInstanceSchedulePolicyArgs{...} // // or: // // nil -type RouterNatRuleActionPtrInput interface { +type ResourcePolicyInstanceSchedulePolicyPtrInput interface { pulumi.Input - ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput - ToRouterNatRuleActionPtrOutputWithContext(context.Context) RouterNatRuleActionPtrOutput + ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput + ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput } -type routerNatRuleActionPtrType RouterNatRuleActionArgs +type resourcePolicyInstanceSchedulePolicyPtrType ResourcePolicyInstanceSchedulePolicyArgs -func RouterNatRuleActionPtr(v *RouterNatRuleActionArgs) RouterNatRuleActionPtrInput { - return (*routerNatRuleActionPtrType)(v) +func ResourcePolicyInstanceSchedulePolicyPtr(v *ResourcePolicyInstanceSchedulePolicyArgs) ResourcePolicyInstanceSchedulePolicyPtrInput { + return (*resourcePolicyInstanceSchedulePolicyPtrType)(v) } -func (*routerNatRuleActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() +func (*resourcePolicyInstanceSchedulePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { - return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) +func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } -func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionPtrOutput) +func (i *resourcePolicyInstanceSchedulePolicyPtrType) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyPtrOutput) } -type RouterNatRuleActionOutput struct{ *pulumi.OutputState } +type ResourcePolicyInstanceSchedulePolicyOutput struct{ *pulumi.OutputState } -func (RouterNatRuleActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutput() ResourcePolicyInstanceSchedulePolicyOutput { return o } -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyOutput { return o } -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { - return o.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { + return o.ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(context.Background()) } -func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatRuleAction) *RouterNatRuleAction { +func (o ResourcePolicyInstanceSchedulePolicyOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicy { return &v - }).(RouterNatRuleActionPtrOutput) + }).(ResourcePolicyInstanceSchedulePolicyPtrOutput) } -// A list of URLs of the IP resources used for this NAT rule. -// These IP addresses must be valid static external IP addresses assigned to the project. -// This field is used for public NAT. -func (o RouterNatRuleActionOutput) SourceNatActiveIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveIps }).(pulumi.StringArrayOutput) +// The expiration time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyOutput) ExpirationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.ExpirationTime }).(pulumi.StringPtrOutput) } -// A list of URLs of the subnetworks used as source ranges for this NAT Rule. -// These subnetworks must have purpose set to PRIVATE_NAT. -// This field is used for private NAT. -func (o RouterNatRuleActionOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveRanges }).(pulumi.StringArrayOutput) +// The start time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *string { return v.StartTime }).(pulumi.StringPtrOutput) } -// A list of URLs of the IP resources to be drained. -// These IPs must be valid static external IPs that have been assigned to the NAT. -// These IPs should be used for updating/patching a NAT rule only. -// This field is used for public NAT. -func (o RouterNatRuleActionOutput) SourceNatDrainIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainIps }).(pulumi.StringArrayOutput) +// Specifies the time zone to be used in 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. +func (o ResourcePolicyInstanceSchedulePolicyOutput) TimeZone() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) string { return v.TimeZone }).(pulumi.StringOutput) } -// A list of URLs of subnetworks representing source ranges to be drained. -// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. -// This field is used for private NAT. -func (o RouterNatRuleActionOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainRanges }).(pulumi.StringArrayOutput) +// Specifies the schedule for starting instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { + return v.VmStartSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) } -type RouterNatRuleActionPtrOutput struct{ *pulumi.OutputState } +// Specifies the schedule for stopping instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + return v.VmStopSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +} -func (RouterNatRuleActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() +type ResourcePolicyInstanceSchedulePolicyPtrOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicy)(nil)).Elem() } -func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutput() ResourcePolicyInstanceSchedulePolicyPtrOutput { return o } -func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ToResourcePolicyInstanceSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyPtrOutput { return o } -func (o RouterNatRuleActionPtrOutput) Elem() RouterNatRuleActionOutput { - return o.ApplyT(func(v *RouterNatRuleAction) RouterNatRuleAction { +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) ResourcePolicyInstanceSchedulePolicy { if v != nil { return *v } - var ret RouterNatRuleAction + var ret ResourcePolicyInstanceSchedulePolicy return ret - }).(RouterNatRuleActionOutput) + }).(ResourcePolicyInstanceSchedulePolicyOutput) } -// A list of URLs of the IP resources used for this NAT rule. -// These IP addresses must be valid static external IP addresses assigned to the project. -// This field is used for public NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatActiveIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { +// The expiration time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) ExpirationTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } - return v.SourceNatActiveIps - }).(pulumi.StringArrayOutput) + return v.ExpirationTime + }).(pulumi.StringPtrOutput) } -// A list of URLs of the subnetworks used as source ranges for this NAT Rule. -// These subnetworks must have purpose set to PRIVATE_NAT. -// This field is used for private NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { +// The start time of the schedule. The timestamp is an RFC3339 string. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } - return v.SourceNatActiveRanges - }).(pulumi.StringArrayOutput) + return v.StartTime + }).(pulumi.StringPtrOutput) } -// A list of URLs of the IP resources to be drained. -// These IPs must be valid static external IPs that have been assigned to the NAT. -// These IPs should be used for updating/patching a NAT rule only. -// This field is used for public NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatDrainIps() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { +// Specifies the time zone to be used in 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. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) TimeZone() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *string { if v == nil { return nil } - return v.SourceNatDrainIps - }).(pulumi.StringArrayOutput) + return &v.TimeZone + }).(pulumi.StringPtrOutput) } -// A list of URLs of subnetworks representing source ranges to be drained. -// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. -// This field is used for private NAT. -func (o RouterNatRuleActionPtrOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouterNatRuleAction) []string { +// Specifies the schedule for starting instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStartSchedule() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { if v == nil { return nil } - return v.SourceNatDrainRanges - }).(pulumi.StringArrayOutput) + return v.VmStartSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) } -type RouterNatSubnetwork struct { - // Self-link of subnetwork to NAT - Name string `pulumi:"name"` - // List of the secondary ranges of the subnetwork that are allowed - // to use NAT. This can be populated only if - // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in - // sourceIpRangesToNat - SecondaryIpRangeNames []string `pulumi:"secondaryIpRangeNames"` - // List of options for which source IPs in the subnetwork - // should have NAT enabled. Supported values include: - // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, - // `PRIMARY_IP_RANGE`. - SourceIpRangesToNats []string `pulumi:"sourceIpRangesToNats"` +// Specifies the schedule for stopping instances. +// Structure is documented below. +func (o ResourcePolicyInstanceSchedulePolicyPtrOutput) VmStopSchedule() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicy) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + if v == nil { + return nil + } + return v.VmStopSchedule + }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) } -// RouterNatSubnetworkInput is an input type that accepts RouterNatSubnetworkArgs and RouterNatSubnetworkOutput values. -// You can construct a concrete instance of `RouterNatSubnetworkInput` via: +type ResourcePolicyInstanceSchedulePolicyVmStartSchedule struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule string `pulumi:"schedule"` +} + +// ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput` via: // -// RouterNatSubnetworkArgs{...} -type RouterNatSubnetworkInput interface { +// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} +type ResourcePolicyInstanceSchedulePolicyVmStartScheduleInput interface { pulumi.Input - ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput - ToRouterNatSubnetworkOutputWithContext(context.Context) RouterNatSubnetworkOutput + ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput + ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput } -type RouterNatSubnetworkArgs struct { - // Self-link of subnetwork to NAT - Name pulumi.StringInput `pulumi:"name"` - // List of the secondary ranges of the subnetwork that are allowed - // to use NAT. This can be populated only if - // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in - // sourceIpRangesToNat - SecondaryIpRangeNames pulumi.StringArrayInput `pulumi:"secondaryIpRangeNames"` - // List of options for which source IPs in the subnetwork - // should have NAT enabled. Supported values include: - // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, - // `PRIMARY_IP_RANGE`. - SourceIpRangesToNats pulumi.StringArrayInput `pulumi:"sourceIpRangesToNats"` +type ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule pulumi.StringInput `pulumi:"schedule"` } -func (RouterNatSubnetworkArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { - return i.ToRouterNatSubnetworkOutputWithContext(context.Background()) +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(context.Background()) } -func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkOutput) +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) } -// RouterNatSubnetworkArrayInput is an input type that accepts RouterNatSubnetworkArray and RouterNatSubnetworkArrayOutput values. -// You can construct a concrete instance of `RouterNatSubnetworkArrayInput` via: +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) +} + +func (i ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx) +} + +// ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput` via: // -// RouterNatSubnetworkArray{ RouterNatSubnetworkArgs{...} } -type RouterNatSubnetworkArrayInput interface { +// ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs{...} +// +// or: +// +// nil +type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput interface { pulumi.Input - ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput - ToRouterNatSubnetworkArrayOutputWithContext(context.Context) RouterNatSubnetworkArrayOutput + ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput + ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput } -type RouterNatSubnetworkArray []RouterNatSubnetworkInput +type resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs -func (RouterNatSubnetworkArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() +func ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrInput { + return (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType)(v) } -func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { - return i.ToRouterNatSubnetworkArrayOutputWithContext(context.Background()) +func (*resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkArrayOutput) +func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) } -type RouterNatSubnetworkOutput struct{ *pulumi.OutputState } +func (i *resourcePolicyInstanceSchedulePolicyVmStartSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) +} -func (RouterNatSubnetworkOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() +type ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { return o } -func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { return o } -// Self-link of subnetwork to NAT -func (o RouterNatSubnetworkOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterNatSubnetwork) string { return v.Name }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(context.Background()) } -// List of the secondary ranges of the subnetwork that are allowed -// to use NAT. This can be populated only if -// `LIST_OF_SECONDARY_IP_RANGES` is one of the values in -// sourceIpRangesToNat -func (o RouterNatSubnetworkOutput) SecondaryIpRangeNames() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SecondaryIpRangeNames }).(pulumi.StringArrayOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *ResourcePolicyInstanceSchedulePolicyVmStartSchedule { + return &v + }).(ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) } -// List of options for which source IPs in the subnetwork -// should have NAT enabled. Supported values include: -// `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, -// `PRIMARY_IP_RANGE`. -func (o RouterNatSubnetworkOutput) SourceIpRangesToNats() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SourceIpRangesToNats }).(pulumi.StringArrayOutput) +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) Schedule() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStartSchedule) string { return v.Schedule }).(pulumi.StringOutput) } -type RouterNatSubnetworkArrayOutput struct{ *pulumi.OutputState } +type ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput struct{ *pulumi.OutputState } -func (RouterNatSubnetworkArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStartSchedule)(nil)).Elem() } -func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { return o } -func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput { return o } -func (o RouterNatSubnetworkArrayOutput) Index(i pulumi.IntInput) RouterNatSubnetworkOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatSubnetwork { - return vs[0].([]RouterNatSubnetwork)[vs[1].(int)] - }).(RouterNatSubnetworkOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) ResourcePolicyInstanceSchedulePolicyVmStartSchedule { + if v != nil { + return *v + } + var ret ResourcePolicyInstanceSchedulePolicyVmStartSchedule + return ret + }).(ResourcePolicyInstanceSchedulePolicyVmStartScheduleOutput) } -type RouterPeerAdvertisedIpRange struct { - // User-specified description for the IP range. - Description *string `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range string `pulumi:"range"` +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStartSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStartSchedule) *string { + if v == nil { + return nil + } + return &v.Schedule + }).(pulumi.StringPtrOutput) } -// RouterPeerAdvertisedIpRangeInput is an input type that accepts RouterPeerAdvertisedIpRangeArgs and RouterPeerAdvertisedIpRangeOutput values. -// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeInput` via: +type ResourcePolicyInstanceSchedulePolicyVmStopSchedule struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule string `pulumi:"schedule"` +} + +// ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs and ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput` via: // -// RouterPeerAdvertisedIpRangeArgs{...} -type RouterPeerAdvertisedIpRangeInput interface { +// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} +type ResourcePolicyInstanceSchedulePolicyVmStopScheduleInput interface { pulumi.Input - ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput - ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeOutput + ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput + ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput } -type RouterPeerAdvertisedIpRangeArgs struct { - // User-specified description for the IP range. - Description pulumi.StringPtrInput `pulumi:"description"` - // The IP range to advertise. The value must be a - // CIDR-formatted string. - Range pulumi.StringInput `pulumi:"range"` +type ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs struct { + // Specifies the frequency for the operation, using the unix-cron format. + Schedule pulumi.StringInput `pulumi:"schedule"` } -func (RouterPeerAdvertisedIpRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() +func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { - return i.ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Background()) +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(context.Background()) } -func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeOutput) +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) } -// RouterPeerAdvertisedIpRangeArrayInput is an input type that accepts RouterPeerAdvertisedIpRangeArray and RouterPeerAdvertisedIpRangeArrayOutput values. -// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeArrayInput` via: +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) +} + +func (i ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput).ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx) +} + +// ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput is an input type that accepts ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs, ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr and ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput` via: // -// RouterPeerAdvertisedIpRangeArray{ RouterPeerAdvertisedIpRangeArgs{...} } -type RouterPeerAdvertisedIpRangeArrayInput interface { +// ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs{...} +// +// or: +// +// nil +type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput interface { pulumi.Input - ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput - ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeArrayOutput + ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput + ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput } -type RouterPeerAdvertisedIpRangeArray []RouterPeerAdvertisedIpRangeInput +type resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs -func (RouterPeerAdvertisedIpRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() +func ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtr(v *ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrInput { + return (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType)(v) } -func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { - return i.ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Background()) +func (*resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeArrayOutput) +func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return i.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) } -type RouterPeerAdvertisedIpRangeOutput struct{ *pulumi.OutputState } +func (i *resourcePolicyInstanceSchedulePolicyVmStopSchedulePtrType) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) +} -func (RouterPeerAdvertisedIpRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() +type ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { return o } -func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopScheduleOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { return o } -// User-specified description for the IP range. -func (o RouterPeerAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouterPeerAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(context.Background()) } -// The IP range to advertise. The value must be a -// CIDR-formatted string. -func (o RouterPeerAdvertisedIpRangeOutput) Range() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + return &v + }).(ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) } -type RouterPeerAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) Schedule() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicyInstanceSchedulePolicyVmStopSchedule) string { return v.Schedule }).(pulumi.StringOutput) +} -func (RouterPeerAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() +type ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput struct{ *pulumi.OutputState } + +func (ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicyInstanceSchedulePolicyVmStopSchedule)(nil)).Elem() } -func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput() ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { return o } -func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) ToResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutputWithContext(ctx context.Context) ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput { return o } -func (o RouterPeerAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterPeerAdvertisedIpRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterPeerAdvertisedIpRange { - return vs[0].([]RouterPeerAdvertisedIpRange)[vs[1].(int)] - }).(RouterPeerAdvertisedIpRangeOutput) +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Elem() ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) ResourcePolicyInstanceSchedulePolicyVmStopSchedule { + if v != nil { + return *v + } + var ret ResourcePolicyInstanceSchedulePolicyVmStopSchedule + return ret + }).(ResourcePolicyInstanceSchedulePolicyVmStopScheduleOutput) } -type RouterPeerBfd struct { - // The minimum interval, in milliseconds, between BFD control packets - // received from the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the transmit interval of the other router. If set, this value - // must be between 1000 and 30000. - MinReceiveInterval *int `pulumi:"minReceiveInterval"` - // The minimum interval, in milliseconds, between BFD control packets - // transmitted to the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the corresponding receive interval of the other router. If set, - // this value must be between 1000 and 30000. - MinTransmitInterval *int `pulumi:"minTransmitInterval"` - // The number of consecutive BFD packets that must be missed before - // BFD declares that a peer is unavailable. If set, the value must - // be a value between 5 and 16. - // - // The `md5AuthenticationKey` block supports: - Multiplier *int `pulumi:"multiplier"` - // The BFD session initialization mode for this BGP peer. - // If set to `ACTIVE`, the Cloud Router will initiate the BFD session - // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait - // for the peer router to initiate the BFD session for this BGP peer. - // If set to `DISABLED`, BFD is disabled for this BGP peer. - // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. - SessionInitializationMode string `pulumi:"sessionInitializationMode"` +// Specifies the frequency for the operation, using the unix-cron format. +func (o ResourcePolicyInstanceSchedulePolicyVmStopSchedulePtrOutput) Schedule() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicyInstanceSchedulePolicyVmStopSchedule) *string { + if v == nil { + return nil + } + return &v.Schedule + }).(pulumi.StringPtrOutput) } -// RouterPeerBfdInput is an input type that accepts RouterPeerBfdArgs and RouterPeerBfdOutput values. -// You can construct a concrete instance of `RouterPeerBfdInput` via: +type ResourcePolicySnapshotSchedulePolicy struct { + // Retention policy applied to snapshots created by this resource policy. + // Structure is documented below. + RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `pulumi:"retentionPolicy"` + // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. + // Structure is documented below. + Schedule ResourcePolicySnapshotSchedulePolicySchedule `pulumi:"schedule"` + // Properties with which the snapshots are created, such as labels. + // Structure is documented below. + SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `pulumi:"snapshotProperties"` +} + +// ResourcePolicySnapshotSchedulePolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs and ResourcePolicySnapshotSchedulePolicyOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyInput` via: // -// RouterPeerBfdArgs{...} -type RouterPeerBfdInput interface { +// ResourcePolicySnapshotSchedulePolicyArgs{...} +type ResourcePolicySnapshotSchedulePolicyInput interface { pulumi.Input - ToRouterPeerBfdOutput() RouterPeerBfdOutput - ToRouterPeerBfdOutputWithContext(context.Context) RouterPeerBfdOutput + ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput + ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyOutput } -type RouterPeerBfdArgs struct { - // The minimum interval, in milliseconds, between BFD control packets - // received from the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the transmit interval of the other router. If set, this value - // must be between 1000 and 30000. - MinReceiveInterval pulumi.IntPtrInput `pulumi:"minReceiveInterval"` - // The minimum interval, in milliseconds, between BFD control packets - // transmitted to the peer router. The actual value is negotiated - // between the two routers and is equal to the greater of this value - // and the corresponding receive interval of the other router. If set, - // this value must be between 1000 and 30000. - MinTransmitInterval pulumi.IntPtrInput `pulumi:"minTransmitInterval"` - // The number of consecutive BFD packets that must be missed before - // BFD declares that a peer is unavailable. If set, the value must - // be a value between 5 and 16. - // - // The `md5AuthenticationKey` block supports: - Multiplier pulumi.IntPtrInput `pulumi:"multiplier"` - // The BFD session initialization mode for this BGP peer. - // If set to `ACTIVE`, the Cloud Router will initiate the BFD session - // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait - // for the peer router to initiate the BFD session for this BGP peer. - // If set to `DISABLED`, BFD is disabled for this BGP peer. - // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. - SessionInitializationMode pulumi.StringInput `pulumi:"sessionInitializationMode"` +type ResourcePolicySnapshotSchedulePolicyArgs struct { + // Retention policy applied to snapshots created by this resource policy. + // Structure is documented below. + RetentionPolicy ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput `pulumi:"retentionPolicy"` + // Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. + // Structure is documented below. + Schedule ResourcePolicySnapshotSchedulePolicyScheduleInput `pulumi:"schedule"` + // Properties with which the snapshots are created, such as labels. + // Structure is documented below. + SnapshotProperties ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput `pulumi:"snapshotProperties"` } -func (RouterPeerBfdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -func (i RouterPeerBfdArgs) ToRouterPeerBfdOutput() RouterPeerBfdOutput { - return i.ToRouterPeerBfdOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { + return i.ToResourcePolicySnapshotSchedulePolicyOutputWithContext(context.Background()) } -func (i RouterPeerBfdArgs) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput) } -func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { - return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } -func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput).ToRouterPeerBfdPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyArgs) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyOutput).ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx) } -// RouterPeerBfdPtrInput is an input type that accepts RouterPeerBfdArgs, RouterPeerBfdPtr and RouterPeerBfdPtrOutput values. -// You can construct a concrete instance of `RouterPeerBfdPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyArgs, ResourcePolicySnapshotSchedulePolicyPtr and ResourcePolicySnapshotSchedulePolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyPtrInput` via: // -// RouterPeerBfdArgs{...} +// ResourcePolicySnapshotSchedulePolicyArgs{...} // // or: // // nil -type RouterPeerBfdPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyPtrInput interface { pulumi.Input - ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput - ToRouterPeerBfdPtrOutputWithContext(context.Context) RouterPeerBfdPtrOutput + ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput + ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput } -type routerPeerBfdPtrType RouterPeerBfdArgs +type resourcePolicySnapshotSchedulePolicyPtrType ResourcePolicySnapshotSchedulePolicyArgs -func RouterPeerBfdPtr(v *RouterPeerBfdArgs) RouterPeerBfdPtrInput { - return (*routerPeerBfdPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyPtr(v *ResourcePolicySnapshotSchedulePolicyArgs) ResourcePolicySnapshotSchedulePolicyPtrInput { + return (*resourcePolicySnapshotSchedulePolicyPtrType)(v) } -func (*routerPeerBfdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { - return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } -func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyPtrType) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyPtrOutput) } -type RouterPeerBfdOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyOutput struct{ *pulumi.OutputState } -func (RouterPeerBfdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -func (o RouterPeerBfdOutput) ToRouterPeerBfdOutput() RouterPeerBfdOutput { +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutput() ResourcePolicySnapshotSchedulePolicyOutput { return o } -func (o RouterPeerBfdOutput) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyOutput { return o } -func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { - return o.ToRouterPeerBfdPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(context.Background()) } -func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerBfd) *RouterPeerBfd { +func (o ResourcePolicySnapshotSchedulePolicyOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicy { return &v - }).(RouterPeerBfdPtrOutput) -} - -// The minimum interval, in milliseconds, between BFD control packets -// received from the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the transmit interval of the other router. If set, this value -// must be between 1000 and 30000. -func (o RouterPeerBfdOutput) MinReceiveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinReceiveInterval }).(pulumi.IntPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyPtrOutput) } -// The minimum interval, in milliseconds, between BFD control packets -// transmitted to the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the corresponding receive interval of the other router. If set, -// this value must be between 1000 and 30000. -func (o RouterPeerBfdOutput) MinTransmitInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinTransmitInterval }).(pulumi.IntPtrOutput) +// Retention policy applied to snapshots created by this resource policy. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { + return v.RetentionPolicy + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -// The number of consecutive BFD packets that must be missed before -// BFD declares that a peer is unavailable. If set, the value must -// be a value between 5 and 16. -// -// The `md5AuthenticationKey` block supports: -func (o RouterPeerBfdOutput) Multiplier() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouterPeerBfd) *int { return v.Multiplier }).(pulumi.IntPtrOutput) +// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyOutput) Schedule() ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicySchedule { + return v.Schedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } -// The BFD session initialization mode for this BGP peer. -// If set to `ACTIVE`, the Cloud Router will initiate the BFD session -// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait -// for the peer router to initiate the BFD session for this BGP peer. -// If set to `DISABLED`, BFD is disabled for this BGP peer. -// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. -func (o RouterPeerBfdOutput) SessionInitializationMode() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerBfd) string { return v.SessionInitializationMode }).(pulumi.StringOutput) +// Properties with which the snapshots are created, such as labels. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { + return v.SnapshotProperties + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } -type RouterPeerBfdPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyPtrOutput struct{ *pulumi.OutputState } -func (RouterPeerBfdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicy)(nil)).Elem() } -func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyPtrOutput { return o } -func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyPtrOutput { return o } -func (o RouterPeerBfdPtrOutput) Elem() RouterPeerBfdOutput { - return o.ApplyT(func(v *RouterPeerBfd) RouterPeerBfd { +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) ResourcePolicySnapshotSchedulePolicy { if v != nil { return *v } - var ret RouterPeerBfd + var ret ResourcePolicySnapshotSchedulePolicy return ret - }).(RouterPeerBfdOutput) -} - -// The minimum interval, in milliseconds, between BFD control packets -// received from the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the transmit interval of the other router. If set, this value -// must be between 1000 and 30000. -func (o RouterPeerBfdPtrOutput) MinReceiveInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *int { - if v == nil { - return nil - } - return v.MinReceiveInterval - }).(pulumi.IntPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyOutput) } -// The minimum interval, in milliseconds, between BFD control packets -// transmitted to the peer router. The actual value is negotiated -// between the two routers and is equal to the greater of this value -// and the corresponding receive interval of the other router. If set, -// this value must be between 1000 and 30000. -func (o RouterPeerBfdPtrOutput) MinTransmitInterval() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *int { +// Retention policy applied to snapshots created by this resource policy. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) RetentionPolicy() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { if v == nil { return nil } - return v.MinTransmitInterval - }).(pulumi.IntPtrOutput) + return v.RetentionPolicy + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -// The number of consecutive BFD packets that must be missed before -// BFD declares that a peer is unavailable. If set, the value must -// be a value between 5 and 16. -// -// The `md5AuthenticationKey` block supports: -func (o RouterPeerBfdPtrOutput) Multiplier() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *int { +// Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) Schedule() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySchedule { if v == nil { return nil } - return v.Multiplier - }).(pulumi.IntPtrOutput) + return &v.Schedule + }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } -// The BFD session initialization mode for this BGP peer. -// If set to `ACTIVE`, the Cloud Router will initiate the BFD session -// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait -// for the peer router to initiate the BFD session for this BGP peer. -// If set to `DISABLED`, BFD is disabled for this BGP peer. -// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. -func (o RouterPeerBfdPtrOutput) SessionInitializationMode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterPeerBfd) *string { +// Properties with which the snapshots are created, such as labels. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyPtrOutput) SnapshotProperties() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicy) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { if v == nil { return nil } - return &v.SessionInitializationMode - }).(pulumi.StringPtrOutput) + return v.SnapshotProperties + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } -type RouterPeerMd5AuthenticationKey struct { - // Value of the key. - Key string `pulumi:"key"` - // Name of this BGP peer. The name must be 1-63 characters long, - // and comply with RFC1035. Specifically, the name must be 1-63 characters - // long and match the regular expression `a-z?` which - // means the first character must be a lowercase letter, and all - // following characters must be a dash, lowercase letter, or digit, - // except the last character, which cannot be a dash. - Name string `pulumi:"name"` +type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct { + // Maximum age of the snapshot that is allowed to be kept. + MaxRetentionDays int `pulumi:"maxRetentionDays"` + // Specifies the behavior to apply to scheduled snapshots when + // the source disk is deleted. + // Default value is `KEEP_AUTO_SNAPSHOTS`. + // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + OnSourceDiskDelete *string `pulumi:"onSourceDiskDelete"` } -// RouterPeerMd5AuthenticationKeyInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs and RouterPeerMd5AuthenticationKeyOutput values. -// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyInput` via: +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs and ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput` via: // -// RouterPeerMd5AuthenticationKeyArgs{...} -type RouterPeerMd5AuthenticationKeyInput interface { +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyInput interface { pulumi.Input - ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput - ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput } -type RouterPeerMd5AuthenticationKeyArgs struct { - // Value of the key. - Key pulumi.StringInput `pulumi:"key"` - // Name of this BGP peer. The name must be 1-63 characters long, - // and comply with RFC1035. Specifically, the name must be 1-63 characters - // long and match the regular expression `a-z?` which - // means the first character must be a lowercase letter, and all - // following characters must be a dash, lowercase letter, or digit, - // except the last character, which cannot be a dash. - Name pulumi.StringInput `pulumi:"name"` +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs struct { + // Maximum age of the snapshot that is allowed to be kept. + MaxRetentionDays pulumi.IntInput `pulumi:"maxRetentionDays"` + // Specifies the behavior to apply to scheduled snapshots when + // the source disk is deleted. + // Default value is `KEEP_AUTO_SNAPSHOTS`. + // Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + OnSourceDiskDelete pulumi.StringPtrInput `pulumi:"onSourceDiskDelete"` } -func (RouterPeerMd5AuthenticationKeyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { - return i.ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { + return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(context.Background()) } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput) +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { - return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } -func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput).ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx) -} +func (i ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput).ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx) +} -// RouterPeerMd5AuthenticationKeyPtrInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs, RouterPeerMd5AuthenticationKeyPtr and RouterPeerMd5AuthenticationKeyPtrOutput values. -// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs, ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr and ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput` via: // -// RouterPeerMd5AuthenticationKeyArgs{...} +// ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs{...} // // or: // // nil -type RouterPeerMd5AuthenticationKeyPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput interface { pulumi.Input - ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput - ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyPtrOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput + ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput } -type routerPeerMd5AuthenticationKeyPtrType RouterPeerMd5AuthenticationKeyArgs +type resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs -func RouterPeerMd5AuthenticationKeyPtr(v *RouterPeerMd5AuthenticationKeyArgs) RouterPeerMd5AuthenticationKeyPtrInput { - return (*routerPeerMd5AuthenticationKeyPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtr(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrInput { + return (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType)(v) } -func (*routerPeerMd5AuthenticationKeyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { - return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } -func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyRetentionPolicyPtrType) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -type RouterPeerMd5AuthenticationKeyOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput struct{ *pulumi.OutputState } -func (RouterPeerMd5AuthenticationKeyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return o } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { return o } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { - return o.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(context.Background()) } -func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerMd5AuthenticationKey) *RouterPeerMd5AuthenticationKey { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *ResourcePolicySnapshotSchedulePolicyRetentionPolicy { return &v - }).(RouterPeerMd5AuthenticationKeyPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) } -// Value of the key. -func (o RouterPeerMd5AuthenticationKeyOutput) Key() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Key }).(pulumi.StringOutput) +// Maximum age of the snapshot that is allowed to be kept. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) MaxRetentionDays() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) int { return v.MaxRetentionDays }).(pulumi.IntOutput) } -// Name of this BGP peer. The name must be 1-63 characters long, -// and comply with RFC1035. Specifically, the name must be 1-63 characters -// long and match the regular expression `a-z?` which -// means the first character must be a lowercase letter, and all -// following characters must be a dash, lowercase letter, or digit, -// except the last character, which cannot be a dash. -func (o RouterPeerMd5AuthenticationKeyOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Name }).(pulumi.StringOutput) +// Specifies the behavior to apply to scheduled snapshots when +// the source disk is deleted. +// Default value is `KEEP_AUTO_SNAPSHOTS`. +// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { return v.OnSourceDiskDelete }).(pulumi.StringPtrOutput) } -type RouterPeerMd5AuthenticationKeyPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput struct{ *pulumi.OutputState } -func (RouterPeerMd5AuthenticationKeyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyRetentionPolicy)(nil)).Elem() } -func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput() ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o } -func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) ToResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput { return o } -func (o RouterPeerMd5AuthenticationKeyPtrOutput) Elem() RouterPeerMd5AuthenticationKeyOutput { - return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) RouterPeerMd5AuthenticationKey { +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) ResourcePolicySnapshotSchedulePolicyRetentionPolicy { if v != nil { return *v } - var ret RouterPeerMd5AuthenticationKey + var ret ResourcePolicySnapshotSchedulePolicyRetentionPolicy return ret - }).(RouterPeerMd5AuthenticationKeyOutput) + }).(ResourcePolicySnapshotSchedulePolicyRetentionPolicyOutput) } -// Value of the key. -func (o RouterPeerMd5AuthenticationKeyPtrOutput) Key() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { +// Maximum age of the snapshot that is allowed to be kept. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) MaxRetentionDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *int { if v == nil { return nil } - return &v.Key - }).(pulumi.StringPtrOutput) + return &v.MaxRetentionDays + }).(pulumi.IntPtrOutput) } -// Name of this BGP peer. The name must be 1-63 characters long, -// and comply with RFC1035. Specifically, the name must be 1-63 characters -// long and match the regular expression `a-z?` which -// means the first character must be a lowercase letter, and all -// following characters must be a dash, lowercase letter, or digit, -// except the last character, which cannot be a dash. -func (o RouterPeerMd5AuthenticationKeyPtrOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { +// Specifies the behavior to apply to scheduled snapshots when +// the source disk is deleted. +// Default value is `KEEP_AUTO_SNAPSHOTS`. +// Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. +func (o ResourcePolicySnapshotSchedulePolicyRetentionPolicyPtrOutput) OnSourceDiskDelete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) *string { if v == nil { return nil } - return &v.Name + return v.OnSourceDiskDelete }).(pulumi.StringPtrOutput) } -type RouterStatusBestRoute struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description string `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange string `pulumi:"destRange"` - // The name of the router. - Name string `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network string `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway string `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb string `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance string `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` - // Network IP address of an instance that should handle matching packets. - NextHopIp string `pulumi:"nextHopIp"` - // URL to a Network that should handle matching packets. - NextHopNetwork string `pulumi:"nextHopNetwork"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority int `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project string `pulumi:"project"` - SelfLink string `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags []string `pulumi:"tags"` +type ResourcePolicySnapshotSchedulePolicySchedule struct { + // The policy will execute every nth day at the specified time. + // Structure is documented below. + DailySchedule *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule `pulumi:"dailySchedule"` + // The policy will execute every nth hour starting at the specified time. + // Structure is documented below. + HourlySchedule *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule `pulumi:"hourlySchedule"` + // Allows specifying a snapshot time for each day of the week. + // Structure is documented below. + WeeklySchedule *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule `pulumi:"weeklySchedule"` } -// RouterStatusBestRouteInput is an input type that accepts RouterStatusBestRouteArgs and RouterStatusBestRouteOutput values. -// You can construct a concrete instance of `RouterStatusBestRouteInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleInput` via: // -// RouterStatusBestRouteArgs{...} -type RouterStatusBestRouteInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleInput interface { pulumi.Input - ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput - ToRouterStatusBestRouteOutputWithContext(context.Context) RouterStatusBestRouteOutput + ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput } -type RouterStatusBestRouteArgs struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description pulumi.StringInput `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange pulumi.StringInput `pulumi:"destRange"` - // The name of the router. - Name pulumi.StringInput `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network pulumi.StringInput `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` - // Network IP address of an instance that should handle matching packets. - NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` - // URL to a Network that should handle matching packets. - NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority pulumi.IntInput `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project pulumi.StringInput `pulumi:"project"` - SelfLink pulumi.StringInput `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags pulumi.StringArrayInput `pulumi:"tags"` +type ResourcePolicySnapshotSchedulePolicyScheduleArgs struct { + // The policy will execute every nth day at the specified time. + // Structure is documented below. + DailySchedule ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput `pulumi:"dailySchedule"` + // The policy will execute every nth hour starting at the specified time. + // Structure is documented below. + HourlySchedule ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput `pulumi:"hourlySchedule"` + // Allows specifying a snapshot time for each day of the week. + // Structure is documented below. + WeeklySchedule ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput `pulumi:"weeklySchedule"` } -func (RouterStatusBestRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { - return i.ToRouterStatusBestRouteOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(context.Background()) } -func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } -// RouterStatusBestRouteArrayInput is an input type that accepts RouterStatusBestRouteArray and RouterStatusBestRouteArrayOutput values. -// You can construct a concrete instance of `RouterStatusBestRouteArrayInput` via: +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) +} + +func (i ResourcePolicySnapshotSchedulePolicyScheduleArgs) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleOutput).ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx) +} + +// ResourcePolicySnapshotSchedulePolicySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleArgs, ResourcePolicySnapshotSchedulePolicySchedulePtr and ResourcePolicySnapshotSchedulePolicySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySchedulePtrInput` via: // -// RouterStatusBestRouteArray{ RouterStatusBestRouteArgs{...} } -type RouterStatusBestRouteArrayInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleArgs{...} +// +// or: +// +// nil +type ResourcePolicySnapshotSchedulePolicySchedulePtrInput interface { pulumi.Input - ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput - ToRouterStatusBestRouteArrayOutputWithContext(context.Context) RouterStatusBestRouteArrayOutput + ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput } -type RouterStatusBestRouteArray []RouterStatusBestRouteInput +type resourcePolicySnapshotSchedulePolicySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleArgs -func (RouterStatusBestRouteArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() +func ResourcePolicySnapshotSchedulePolicySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleArgs) ResourcePolicySnapshotSchedulePolicySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicySchedulePtrType)(v) } -func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { - return i.ToRouterStatusBestRouteArrayOutputWithContext(context.Background()) +func (*resourcePolicySnapshotSchedulePolicySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteArrayOutput) +func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } -type RouterStatusBestRouteOutput struct{ *pulumi.OutputState } - -func (RouterStatusBestRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() +func (i *resourcePolicySnapshotSchedulePolicySchedulePtrType) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } -func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { - return o +type ResourcePolicySnapshotSchedulePolicyScheduleOutput struct{ *pulumi.OutputState } + +func (ResourcePolicySnapshotSchedulePolicyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleOutput { return o } -// An optional description of this resource. Provide this property -// when you create the resource. -func (o RouterStatusBestRouteOutput) Description() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Description }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return o } -// The destination range of outgoing packets that this route applies to. -// Only IPv4 is supported. -func (o RouterStatusBestRouteOutput) DestRange() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.DestRange }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(context.Background()) } -// The name of the router. -func (o RouterStatusBestRouteOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Name }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicySchedule { + return &v + }).(ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) } -// The network name or resource link to the parent -// network of this subnetwork. -func (o RouterStatusBestRouteOutput) Network() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Network }).(pulumi.StringOutput) +// The policy will execute every nth day at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { + return v.DailySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -// URL to a gateway that should handle matching packets. -// Currently, you can only specify the internet gateway, using a full or -// partial valid URL: -// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' -// * 'projects/project/global/gateways/default-internet-gateway' -// * 'global/gateways/default-internet-gateway' -// * The string 'default-internet-gateway'. -func (o RouterStatusBestRouteOutput) NextHopGateway() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopGateway }).(pulumi.StringOutput) +// The policy will execute every nth hour starting at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { + return v.HourlySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -// The IP address or URL to a forwarding rule of type -// loadBalancingScheme=INTERNAL that should handle matching -// packets. -// -// With the GA provider you can only specify the forwarding -// rule as a partial or full URL. For example, the following -// are all valid values: -// * 10.128.0.56 -// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule -// * regions/region/forwardingRules/forwardingRule -// -// When the beta provider, you can also specify the IP address -// of a forwarding rule from the same VPC or any peered VPC. -// -// Note that this can only be used when the destinationRange is -// a public (non-RFC 1918) IP CIDR range. -func (o RouterStatusBestRouteOutput) NextHopIlb() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIlb }).(pulumi.StringOutput) +// Allows specifying a snapshot time for each day of the week. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { + return v.WeeklySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -// URL to an instance that should handle matching packets. -// You can specify this as a full or partial URL. For example: -// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' -// * 'projects/project/zones/zone/instances/instance' -// * 'zones/zone/instances/instance' -// * Just the instance name, with the zone in 'next_hop_instance_zone'. -func (o RouterStatusBestRouteOutput) NextHopInstance() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstance }).(pulumi.StringOutput) -} +type ResourcePolicySnapshotSchedulePolicySchedulePtrOutput struct{ *pulumi.OutputState } -// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. -func (o RouterStatusBestRouteOutput) NextHopInstanceZone() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) +func (ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySchedule)(nil)).Elem() } -// Network IP address of an instance that should handle matching packets. -func (o RouterStatusBestRouteOutput) NextHopIp() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIp }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o } -// URL to a Network that should handle matching packets. -func (o RouterStatusBestRouteOutput) NextHopNetwork() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopNetwork }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySchedulePtrOutput { + return o } -// URL to a VpnTunnel that should handle matching packets. -func (o RouterStatusBestRouteOutput) NextHopVpnTunnel() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) ResourcePolicySnapshotSchedulePolicySchedule { + if v != nil { + return *v + } + var ret ResourcePolicySnapshotSchedulePolicySchedule + return ret + }).(ResourcePolicySnapshotSchedulePolicyScheduleOutput) } -// The priority of this route. Priority is used to break ties in cases -// where there is more than one matching route of equal prefix length. -// -// In the case of two routes with equal prefix length, the one with the -// lowest-numbered priority value wins. -// -// Default value is 1000. Valid range is 0 through 65535. -func (o RouterStatusBestRouteOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RouterStatusBestRoute) int { return v.Priority }).(pulumi.IntOutput) +// The policy will execute every nth day at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) DailySchedule() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { + if v == nil { + return nil + } + return v.DailySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -// The ID of the project in which the resource -// belongs. If it is not provided, the provider project is used. -func (o RouterStatusBestRouteOutput) Project() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Project }).(pulumi.StringOutput) +// The policy will execute every nth hour starting at the specified time. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) HourlySchedule() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { + if v == nil { + return nil + } + return v.HourlySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -func (o RouterStatusBestRouteOutput) SelfLink() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoute) string { return v.SelfLink }).(pulumi.StringOutput) +// Allows specifying a snapshot time for each day of the week. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicySchedulePtrOutput) WeeklySchedule() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { + if v == nil { + return nil + } + return v.WeeklySchedule + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -// A list of instance tags to which this route applies. -func (o RouterStatusBestRouteOutput) Tags() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterStatusBestRoute) []string { return v.Tags }).(pulumi.StringArrayOutput) +type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule struct { + // 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. + DaysInCycle int `pulumi:"daysInCycle"` + // 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. + StartTime string `pulumi:"startTime"` } -type RouterStatusBestRouteArrayOutput struct{ *pulumi.OutputState } +// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput` via: +// +// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleInput interface { + pulumi.Input -func (RouterStatusBestRouteArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() + ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput } -func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { - return o -} - -func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { - return o -} - -func (o RouterStatusBestRouteArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRouteOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoute { - return vs[0].([]RouterStatusBestRoute)[vs[1].(int)] - }).(RouterStatusBestRouteOutput) -} - -type RouterStatusBestRoutesForRouter struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description string `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange string `pulumi:"destRange"` - // The name of the router. - Name string `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network string `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway string `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb string `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance string `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` - // Network IP address of an instance that should handle matching packets. - NextHopIp string `pulumi:"nextHopIp"` - // URL to a Network that should handle matching packets. - NextHopNetwork string `pulumi:"nextHopNetwork"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority int `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project string `pulumi:"project"` - SelfLink string `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags []string `pulumi:"tags"` +type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs struct { + // 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. + DaysInCycle pulumi.IntInput `pulumi:"daysInCycle"` + // 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. + StartTime pulumi.StringInput `pulumi:"startTime"` } -// RouterStatusBestRoutesForRouterInput is an input type that accepts RouterStatusBestRoutesForRouterArgs and RouterStatusBestRoutesForRouterOutput values. -// You can construct a concrete instance of `RouterStatusBestRoutesForRouterInput` via: -// -// RouterStatusBestRoutesForRouterArgs{...} -type RouterStatusBestRoutesForRouterInput interface { - pulumi.Input - - ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput - ToRouterStatusBestRoutesForRouterOutputWithContext(context.Context) RouterStatusBestRoutesForRouterOutput +func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -type RouterStatusBestRoutesForRouterArgs struct { - // An optional description of this resource. Provide this property - // when you create the resource. - Description pulumi.StringInput `pulumi:"description"` - // The destination range of outgoing packets that this route applies to. - // Only IPv4 is supported. - DestRange pulumi.StringInput `pulumi:"destRange"` - // The name of the router. - Name pulumi.StringInput `pulumi:"name"` - // The network name or resource link to the parent - // network of this subnetwork. - Network pulumi.StringInput `pulumi:"network"` - // URL to a gateway that should handle matching packets. - // Currently, you can only specify the internet gateway, using a full or - // partial valid URL: - // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' - // * 'projects/project/global/gateways/default-internet-gateway' - // * 'global/gateways/default-internet-gateway' - // * The string 'default-internet-gateway'. - NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` - // The IP address or URL to a forwarding rule of type - // loadBalancingScheme=INTERNAL that should handle matching - // packets. - // - // With the GA provider you can only specify the forwarding - // rule as a partial or full URL. For example, the following - // are all valid values: - // * 10.128.0.56 - // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule - // * regions/region/forwardingRules/forwardingRule - // - // When the beta provider, you can also specify the IP address - // of a forwarding rule from the same VPC or any peered VPC. - // - // Note that this can only be used when the destinationRange is - // a public (non-RFC 1918) IP CIDR range. - NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` - // URL to an instance that should handle matching packets. - // You can specify this as a full or partial URL. For example: - // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' - // * 'projects/project/zones/zone/instances/instance' - // * 'zones/zone/instances/instance' - // * Just the instance name, with the zone in 'next_hop_instance_zone'. - NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` - // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. - NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` - // Network IP address of an instance that should handle matching packets. - NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` - // URL to a Network that should handle matching packets. - NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` - // URL to a VpnTunnel that should handle matching packets. - NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` - // The priority of this route. Priority is used to break ties in cases - // where there is more than one matching route of equal prefix length. - // - // In the case of two routes with equal prefix length, the one with the - // lowest-numbered priority value wins. - // - // Default value is 1000. Valid range is 0 through 65535. - Priority pulumi.IntInput `pulumi:"priority"` - // The ID of the project in which the resource - // belongs. If it is not provided, the provider project is used. - Project pulumi.StringInput `pulumi:"project"` - SelfLink pulumi.StringInput `pulumi:"selfLink"` - // A list of instance tags to which this route applies. - Tags pulumi.StringArrayInput `pulumi:"tags"` +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(context.Background()) } -func (RouterStatusBestRoutesForRouterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) } -func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { - return i.ToRouterStatusBestRoutesForRouterOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) } -func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx) } -// RouterStatusBestRoutesForRouterArrayInput is an input type that accepts RouterStatusBestRoutesForRouterArray and RouterStatusBestRoutesForRouterArrayOutput values. -// You can construct a concrete instance of `RouterStatusBestRoutesForRouterArrayInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput` via: // -// RouterStatusBestRoutesForRouterArray{ RouterStatusBestRoutesForRouterArgs{...} } -type RouterStatusBestRoutesForRouterArrayInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs{...} +// +// or: +// +// nil +type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput interface { pulumi.Input - ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput - ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Context) RouterStatusBestRoutesForRouterArrayOutput -} - -type RouterStatusBestRoutesForRouterArray []RouterStatusBestRoutesForRouterInput - -func (RouterStatusBestRoutesForRouterArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() -} - -func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { - return i.ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Background()) -} - -func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterArrayOutput) -} - -type RouterStatusBestRoutesForRouterOutput struct{ *pulumi.OutputState } - -func (RouterStatusBestRoutesForRouterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() -} - -func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { - return o + ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput } -func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { - return o -} +type resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs -// An optional description of this resource. Provide this property -// when you create the resource. -func (o RouterStatusBestRoutesForRouterOutput) Description() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Description }).(pulumi.StringOutput) +func ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType)(v) } -// The destination range of outgoing packets that this route applies to. -// Only IPv4 is supported. -func (o RouterStatusBestRoutesForRouterOutput) DestRange() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.DestRange }).(pulumi.StringOutput) +func (*resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -// The name of the router. -func (o RouterStatusBestRoutesForRouterOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Name }).(pulumi.StringOutput) +func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) } -// The network name or resource link to the parent -// network of this subnetwork. -func (o RouterStatusBestRoutesForRouterOutput) Network() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Network }).(pulumi.StringOutput) +func (i *resourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -// URL to a gateway that should handle matching packets. -// Currently, you can only specify the internet gateway, using a full or -// partial valid URL: -// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' -// * 'projects/project/global/gateways/default-internet-gateway' -// * 'global/gateways/default-internet-gateway' -// * The string 'default-internet-gateway'. -func (o RouterStatusBestRoutesForRouterOutput) NextHopGateway() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopGateway }).(pulumi.StringOutput) -} +type ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput struct{ *pulumi.OutputState } -// The IP address or URL to a forwarding rule of type -// loadBalancingScheme=INTERNAL that should handle matching -// packets. -// -// With the GA provider you can only specify the forwarding -// rule as a partial or full URL. For example, the following -// are all valid values: -// * 10.128.0.56 -// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule -// * regions/region/forwardingRules/forwardingRule -// -// When the beta provider, you can also specify the IP address -// of a forwarding rule from the same VPC or any peered VPC. -// -// Note that this can only be used when the destinationRange is -// a public (non-RFC 1918) IP CIDR range. -func (o RouterStatusBestRoutesForRouterOutput) NextHopIlb() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIlb }).(pulumi.StringOutput) +func (ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -// URL to an instance that should handle matching packets. -// You can specify this as a full or partial URL. For example: -// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' -// * 'projects/project/zones/zone/instances/instance' -// * 'zones/zone/instances/instance' -// * Just the instance name, with the zone in 'next_hop_instance_zone'. -func (o RouterStatusBestRoutesForRouterOutput) NextHopInstance() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstance }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return o } -// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. -func (o RouterStatusBestRoutesForRouterOutput) NextHopInstanceZone() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return o } -// Network IP address of an instance that should handle matching packets. -func (o RouterStatusBestRoutesForRouterOutput) NextHopIp() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIp }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(context.Background()) } -// URL to a Network that should handle matching packets. -func (o RouterStatusBestRoutesForRouterOutput) NextHopNetwork() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopNetwork }).(pulumi.StringOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { + return &v + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) } -// URL to a VpnTunnel that should handle matching packets. -func (o RouterStatusBestRoutesForRouterOutput) NextHopVpnTunnel() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) +// 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. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) DaysInCycle() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) int { return v.DaysInCycle }).(pulumi.IntOutput) } -// The priority of this route. Priority is used to break ties in cases -// where there is more than one matching route of equal prefix length. -// -// In the case of two routes with equal prefix length, the one with the -// lowest-numbered priority value wins. -// -// Default value is 1000. Valid range is 0 through 65535. -func (o RouterStatusBestRoutesForRouterOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) int { return v.Priority }).(pulumi.IntOutput) +// 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. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) string { return v.StartTime }).(pulumi.StringOutput) } -// The ID of the project in which the resource -// belongs. If it is not provided, the provider project is used. -func (o RouterStatusBestRoutesForRouterOutput) Project() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Project }).(pulumi.StringOutput) -} +type ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput struct{ *pulumi.OutputState } -func (o RouterStatusBestRoutesForRouterOutput) SelfLink() pulumi.StringOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.SelfLink }).(pulumi.StringOutput) +func (ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule)(nil)).Elem() } -// A list of instance tags to which this route applies. -func (o RouterStatusBestRoutesForRouterOutput) Tags() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouterStatusBestRoutesForRouter) []string { return v.Tags }).(pulumi.StringArrayOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o } -type RouterStatusBestRoutesForRouterArrayOutput struct{ *pulumi.OutputState } - -func (RouterStatusBestRoutesForRouterArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput { + return o } -func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { - return o +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule { + if v != nil { + return *v + } + var ret ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule + return ret + }).(ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleOutput) } -func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { - return o +// 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. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) DaysInCycle() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *int { + if v == nil { + return nil + } + return &v.DaysInCycle + }).(pulumi.IntPtrOutput) } -func (o RouterStatusBestRoutesForRouterArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRoutesForRouterOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoutesForRouter { - return vs[0].([]RouterStatusBestRoutesForRouter)[vs[1].(int)] - }).(RouterStatusBestRoutesForRouterOutput) +// 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. +func (o ResourcePolicySnapshotSchedulePolicyScheduleDailySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleDailySchedule) *string { + if v == nil { + return nil + } + return &v.StartTime + }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdaptiveProtectionConfig struct { - // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. - // - // The `layer7DdosDefenseConfig` block supports: - AutoDeployConfig *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig `pulumi:"autoDeployConfig"` - // 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. - Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `pulumi:"layer7DdosDefenseConfig"` +type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule struct { + // The number of hours between snapshots. + HoursInCycle int `pulumi:"hoursInCycle"` + // Time within the window to start the operations. + // It must be in an hourly format "HH:MM", + // where HH : [00-23] and MM : [00] GMT. eg: 21:00 + StartTime string `pulumi:"startTime"` } -// SecurityPolicyAdaptiveProtectionConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs and SecurityPolicyAdaptiveProtectionConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput` via: // -// SecurityPolicyAdaptiveProtectionConfigArgs{...} -type SecurityPolicyAdaptiveProtectionConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput - ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput } -type SecurityPolicyAdaptiveProtectionConfigArgs struct { - // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. - // - // The `layer7DdosDefenseConfig` block supports: - AutoDeployConfig SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput `pulumi:"autoDeployConfig"` - // 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. - Layer7DdosDefenseConfig SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput `pulumi:"layer7DdosDefenseConfig"` +type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs struct { + // The number of hours between snapshots. + HoursInCycle pulumi.IntInput `pulumi:"hoursInCycle"` + // Time within the window to start the operations. + // It must be in an hourly format "HH:MM", + // where HH : [00-23] and MM : [00] GMT. eg: 21:00 + StartTime pulumi.StringInput `pulumi:"startTime"` } -func (SecurityPolicyAdaptiveProtectionConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx) } -// SecurityPolicyAdaptiveProtectionConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs, SecurityPolicyAdaptiveProtectionConfigPtr and SecurityPolicyAdaptiveProtectionConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput` via: // -// SecurityPolicyAdaptiveProtectionConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs{...} // // or: // // nil -type SecurityPolicyAdaptiveProtectionConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput - ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput } -type securityPolicyAdaptiveProtectionConfigPtrType SecurityPolicyAdaptiveProtectionConfigArgs +type resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs -func SecurityPolicyAdaptiveProtectionConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigArgs) SecurityPolicyAdaptiveProtectionConfigPtrInput { - return (*securityPolicyAdaptiveProtectionConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType)(v) } -func (*securityPolicyAdaptiveProtectionConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return o.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { return &v - }).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) } -// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. -// -// The `layer7DdosDefenseConfig` block supports: -func (o SecurityPolicyAdaptiveProtectionConfigOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { - return v.AutoDeployConfig - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) +// The number of hours between snapshots. +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) HoursInCycle() pulumi.IntOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) int { return v.HoursInCycle }).(pulumi.IntOutput) } -// 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. -func (o SecurityPolicyAdaptiveProtectionConfigOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { - return v.Layer7DdosDefenseConfig - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) +// Time within the window to start the operations. +// It must be in an hourly format "HH:MM", +// where HH : [00-23] and MM : [00] GMT. eg: 21:00 +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) string { return v.StartTime }).(pulumi.StringOutput) } -type SecurityPolicyAdaptiveProtectionConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) SecurityPolicyAdaptiveProtectionConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule { if v != nil { return *v } - var ret SecurityPolicyAdaptiveProtectionConfig + var ret ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule return ret - }).(SecurityPolicyAdaptiveProtectionConfigOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleOutput) } -// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. -// -// The `layer7DdosDefenseConfig` block supports: -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { +// The number of hours between snapshots. +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) HoursInCycle() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *int { if v == nil { return nil } - return v.AutoDeployConfig - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) + return &v.HoursInCycle + }).(pulumi.IntPtrOutput) } -// 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. -func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { +// Time within the window to start the operations. +// It must be in an hourly format "HH:MM", +// where HH : [00-23] and MM : [00] GMT. eg: 21:00 +func (o ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedulePtrOutput) StartTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleHourlySchedule) *string { if v == nil { return nil } - return v.Layer7DdosDefenseConfig - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) + return &v.StartTime + }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig struct { - // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. - ConfidenceThreshold *float64 `pulumi:"confidenceThreshold"` - // 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. - ExpirationSec *int `pulumi:"expirationSec"` - // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. - ImpactedBaselineThreshold *float64 `pulumi:"impactedBaselineThreshold"` - // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. - LoadThreshold *float64 `pulumi:"loadThreshold"` +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule struct { + // May contain up to seven (one for each day of the week) snapshot times. + // Structure is documented below. + DayOfWeeks []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek `pulumi:"dayOfWeeks"` } -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput` via: // -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs struct { - // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. - ConfidenceThreshold pulumi.Float64PtrInput `pulumi:"confidenceThreshold"` - // 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. - ExpirationSec pulumi.IntPtrInput `pulumi:"expirationSec"` - // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. - ImpactedBaselineThreshold pulumi.Float64PtrInput `pulumi:"impactedBaselineThreshold"` - // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. - LoadThreshold pulumi.Float64PtrInput `pulumi:"loadThreshold"` +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs struct { + // May contain up to seven (one for each day of the week) snapshot times. + // Structure is documented below. + DayOfWeeks ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput `pulumi:"dayOfWeeks"` } -func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput).ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx) } -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs, SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs, ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr and ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput` via: // -// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs{...} // // or: // // nil -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput - ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput } -type securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs +type resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs -func SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput { - return (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtr(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrInput { + return (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType)(v) } -func (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) +func (i *resourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrType) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { return &v - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) -} - -// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.ConfidenceThreshold }).(pulumi.Float64PtrOutput) -} - -// 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. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ExpirationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { return v.ExpirationSec }).(pulumi.IntPtrOutput) -} - -// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { - return v.ImpactedBaselineThreshold - }).(pulumi.Float64PtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) } -// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) LoadThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.LoadThreshold }).(pulumi.Float64PtrOutput) +// May contain up to seven (one for each day of the week) snapshot times. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { + return v.DayOfWeeks + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) } -type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) Elem() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule { if v != nil { return *v } - var ret SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig + var ret ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule return ret - }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) -} - -// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { - if v == nil { - return nil - } - return v.ConfidenceThreshold - }).(pulumi.Float64PtrOutput) -} - -// 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. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ExpirationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { - if v == nil { - return nil - } - return v.ExpirationSec - }).(pulumi.IntPtrOutput) -} - -// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { - if v == nil { - return nil - } - return v.ImpactedBaselineThreshold - }).(pulumi.Float64PtrOutput) + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleOutput) } -// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. -func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) LoadThreshold() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { +// May contain up to seven (one for each day of the week) snapshot times. +// Structure is documented below. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedulePtrOutput) DayOfWeeks() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule) []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { if v == nil { return nil } - return v.LoadThreshold - }).(pulumi.Float64PtrOutput) + return v.DayOfWeeks + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) } -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct { - // If set to true, enables CAAP for L7 DDoS detection. - Enable *bool `pulumi:"enable"` - // Rule visibility. Supported values include: "STANDARD", "PREMIUM". - RuleVisibility *string `pulumi:"ruleVisibility"` +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek struct { + // The day of the week to create the snapshot. e.g. MONDAY + // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + Day string `pulumi:"day"` + // Time within the window to start the operations. + // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + StartTime string `pulumi:"startTime"` } -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput` via: +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput` via: // -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput -} - -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs struct { - // If set to true, enables CAAP for L7 DDoS detection. - Enable pulumi.BoolPtrInput `pulumi:"enable"` - // Rule visibility. Supported values include: "STANDARD", "PREMIUM". - RuleVisibility pulumi.StringPtrInput `pulumi:"ruleVisibility"` -} - -func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Background()) +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs struct { + // The day of the week to create the snapshot. e.g. MONDAY + // Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. + Day pulumi.StringInput `pulumi:"day"` + // Time within the window to start the operations. + // It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. + StartTime pulumi.StringInput `pulumi:"startTime"` } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(context.Background()) } -func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) } -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs, SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput` via: -// -// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} -// -// or: +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput is an input type that accepts ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray and ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput` via: // -// nil -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput interface { +// ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray{ ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgs{...} } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayInput interface { pulumi.Input - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput - ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput + ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput } -type securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs - -func SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput { - return (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType)(v) -} +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray []ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekInput -func (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return i.ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(context.Background()) } -func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) +func (i ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArray) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) } -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { - return &v - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) -} - -// If set to true, enables CAAP for L7 DDoS detection. -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) +// The day of the week to create the snapshot. e.g. MONDAY +// Possible values are: `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) Day() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.Day }).(pulumi.StringOutput) } -// Rule visibility. Supported values include: "STANDARD", "PREMIUM". -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) RuleVisibility() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { return v.RuleVisibility }).(pulumi.StringPtrOutput) +// Time within the window to start the operations. +// It must be in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT. +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) StartTime() pulumi.StringOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek) string { return v.StartTime }).(pulumi.StringOutput) } -type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)(nil)).Elem() } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput() ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) ToResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput { return o } -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { - if v != nil { - return *v - } - var ret SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig - return ret - }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) -} - -// If set to true, enables CAAP for L7 DDoS detection. -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Enable() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { - if v == nil { - return nil - } - return v.Enable - }).(pulumi.BoolPtrOutput) -} - -// Rule visibility. Supported values include: "STANDARD", "PREMIUM". -func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) RuleVisibility() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { - if v == nil { - return nil - } - return v.RuleVisibility - }).(pulumi.StringPtrOutput) +func (o ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArrayOutput) Index(i pulumi.IntInput) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek { + return vs[0].([]ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek)[vs[1].(int)] + }).(ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekOutput) } -type SecurityPolicyAdvancedOptionsConfig struct { - // Custom configuration to apply the JSON parsing. Only applicable when - // `jsonParsing` is set to `STANDARD`. Structure is documented below. - JsonCustomConfig *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig `pulumi:"jsonCustomConfig"` - // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. - // * `DISABLED` - Don't parse JSON payloads in POST bodies. - // * `STANDARD` - Parse JSON payloads in POST bodies. - // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. - JsonParsing *string `pulumi:"jsonParsing"` - // Log level to use. Defaults to `NORMAL`. - // * `NORMAL` - Normal log level. - // * `VERBOSE` - Verbose log level. - LogLevel *string `pulumi:"logLevel"` - // An optional list of case-insensitive request header names to use for resolving the callers client IP address. - UserIpRequestHeaders []string `pulumi:"userIpRequestHeaders"` +type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct { + // Creates the new snapshot in the snapshot chain labeled with the + // specified name. The chain name must be 1-63 characters long and comply + // with RFC1035. + ChainName *string `pulumi:"chainName"` + // Whether to perform a 'guest aware' snapshot. + GuestFlush *bool `pulumi:"guestFlush"` + // A set of key-value pairs. + Labels map[string]string `pulumi:"labels"` + // Cloud Storage bucket location to store the auto snapshot + // (regional or multi-regional) + StorageLocations *string `pulumi:"storageLocations"` } -// SecurityPolicyAdvancedOptionsConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs and SecurityPolicyAdvancedOptionsConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigInput` via: +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput` via: // -// SecurityPolicyAdvancedOptionsConfigArgs{...} -type SecurityPolicyAdvancedOptionsConfigInput interface { +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput - ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput } -type SecurityPolicyAdvancedOptionsConfigArgs struct { - // Custom configuration to apply the JSON parsing. Only applicable when - // `jsonParsing` is set to `STANDARD`. Structure is documented below. - JsonCustomConfig SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput `pulumi:"jsonCustomConfig"` - // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. - // * `DISABLED` - Don't parse JSON payloads in POST bodies. - // * `STANDARD` - Parse JSON payloads in POST bodies. - // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. - JsonParsing pulumi.StringPtrInput `pulumi:"jsonParsing"` - // Log level to use. Defaults to `NORMAL`. - // * `NORMAL` - Normal log level. - // * `VERBOSE` - Verbose log level. - LogLevel pulumi.StringPtrInput `pulumi:"logLevel"` - // An optional list of case-insensitive request header names to use for resolving the callers client IP address. - UserIpRequestHeaders pulumi.StringArrayInput `pulumi:"userIpRequestHeaders"` +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs struct { + // Creates the new snapshot in the snapshot chain labeled with the + // specified name. The chain name must be 1-63 characters long and comply + // with RFC1035. + ChainName pulumi.StringPtrInput `pulumi:"chainName"` + // Whether to perform a 'guest aware' snapshot. + GuestFlush pulumi.BoolPtrInput `pulumi:"guestFlush"` + // A set of key-value pairs. + Labels pulumi.StringMapInput `pulumi:"labels"` + // Cloud Storage bucket location to store the auto snapshot + // (regional or multi-regional) + StorageLocations pulumi.StringPtrInput `pulumi:"storageLocations"` } -func (SecurityPolicyAdvancedOptionsConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { + return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput) +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput).ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx) +func (i ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput).ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx) } -// SecurityPolicyAdvancedOptionsConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs, SecurityPolicyAdvancedOptionsConfigPtr and SecurityPolicyAdvancedOptionsConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigPtrInput` via: +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput is an input type that accepts ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs, ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr and ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput values. +// You can construct a concrete instance of `ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput` via: // -// SecurityPolicyAdvancedOptionsConfigArgs{...} +// ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs{...} // // or: // // nil -type SecurityPolicyAdvancedOptionsConfigPtrInput interface { +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput - ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput + ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput } -type securityPolicyAdvancedOptionsConfigPtrType SecurityPolicyAdvancedOptionsConfigArgs +type resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs -func SecurityPolicyAdvancedOptionsConfigPtr(v *SecurityPolicyAdvancedOptionsConfigArgs) SecurityPolicyAdvancedOptionsConfigPtrInput { - return (*securityPolicyAdvancedOptionsConfigPtrType)(v) +func ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtr(v *ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrInput { + return (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType)(v) } -func (*securityPolicyAdvancedOptionsConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (*resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } -func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) +func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return i.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigPtrOutput) -} +func (i *resourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrType) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) +} -type SecurityPolicyAdvancedOptionsConfigOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdvancedOptionsConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { - return o.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfig { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *ResourcePolicySnapshotSchedulePolicySnapshotProperties { return &v - }).(SecurityPolicyAdvancedOptionsConfigPtrOutput) + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) } -// Custom configuration to apply the JSON parsing. Only applicable when -// `jsonParsing` is set to `STANDARD`. Structure is documented below. -func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { - return v.JsonCustomConfig - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) +// Creates the new snapshot in the snapshot chain labeled with the +// specified name. The chain name must be 1-63 characters long and comply +// with RFC1035. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) ChainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.ChainName }).(pulumi.StringPtrOutput) } -// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. -// * `DISABLED` - Don't parse JSON payloads in POST bodies. -// * `STANDARD` - Parse JSON payloads in POST bodies. -// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. -func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonParsing() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.JsonParsing }).(pulumi.StringPtrOutput) +// Whether to perform a 'guest aware' snapshot. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) GuestFlush() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { return v.GuestFlush }).(pulumi.BoolPtrOutput) } -// Log level to use. Defaults to `NORMAL`. -// * `NORMAL` - Normal log level. -// * `VERBOSE` - Verbose log level. -func (o SecurityPolicyAdvancedOptionsConfigOutput) LogLevel() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.LogLevel }).(pulumi.StringPtrOutput) +// A set of key-value pairs. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } -// An optional list of case-insensitive request header names to use for resolving the callers client IP address. -func (o SecurityPolicyAdvancedOptionsConfigOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) []string { return v.UserIpRequestHeaders }).(pulumi.StringArrayOutput) +// Cloud Storage bucket location to store the auto snapshot +// (regional or multi-regional) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) StorageLocations() pulumi.StringPtrOutput { + return o.ApplyT(func(v ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { return v.StorageLocations }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdvancedOptionsConfigPtrOutput struct{ *pulumi.OutputState } +type ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdvancedOptionsConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() +func (ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResourcePolicySnapshotSchedulePolicySnapshotProperties)(nil)).Elem() } -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ToResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutputWithContext(ctx context.Context) ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) SecurityPolicyAdvancedOptionsConfig { +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Elem() ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) ResourcePolicySnapshotSchedulePolicySnapshotProperties { if v != nil { return *v } - var ret SecurityPolicyAdvancedOptionsConfig + var ret ResourcePolicySnapshotSchedulePolicySnapshotProperties return ret - }).(SecurityPolicyAdvancedOptionsConfigOutput) + }).(ResourcePolicySnapshotSchedulePolicySnapshotPropertiesOutput) } -// Custom configuration to apply the JSON parsing. Only applicable when -// `jsonParsing` is set to `STANDARD`. Structure is documented below. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { +// Creates the new snapshot in the snapshot chain labeled with the +// specified name. The chain name must be 1-63 characters long and comply +// with RFC1035. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) ChainName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { if v == nil { return nil } - return v.JsonCustomConfig - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) + return v.ChainName + }).(pulumi.StringPtrOutput) } -// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. -// * `DISABLED` - Don't parse JSON payloads in POST bodies. -// * `STANDARD` - Parse JSON payloads in POST bodies. -// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonParsing() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { +// Whether to perform a 'guest aware' snapshot. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) GuestFlush() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *bool { if v == nil { return nil } - return v.JsonParsing - }).(pulumi.StringPtrOutput) + return v.GuestFlush + }).(pulumi.BoolPtrOutput) } -// Log level to use. Defaults to `NORMAL`. -// * `NORMAL` - Normal log level. -// * `VERBOSE` - Verbose log level. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) LogLevel() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { +// A set of key-value pairs. +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) Labels() pulumi.StringMapOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) map[string]string { if v == nil { return nil } - return v.LogLevel - }).(pulumi.StringPtrOutput) + return v.Labels + }).(pulumi.StringMapOutput) } -// An optional list of case-insensitive request header names to use for resolving the callers client IP address. -func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) []string { +// Cloud Storage bucket location to store the auto snapshot +// (regional or multi-regional) +func (o ResourcePolicySnapshotSchedulePolicySnapshotPropertiesPtrOutput) StorageLocations() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResourcePolicySnapshotSchedulePolicySnapshotProperties) *string { if v == nil { return nil } - return v.UserIpRequestHeaders - }).(pulumi.StringArrayOutput) + return v.StorageLocations + }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfig struct { - // A list of custom Content-Type header values to apply the JSON parsing. The - // format of the Content-Type header values is defined in - // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header - // value, only the type/subtype needs to be specified, and the parameters should be excluded. - ContentTypes []string `pulumi:"contentTypes"` +type RouterBgp struct { + // User-specified flag to indicate which mode to use for advertisement. + // Default value is `DEFAULT`. + // Possible values are: `DEFAULT`, `CUSTOM`. + AdvertiseMode *string `pulumi:"advertiseMode"` + // User-specified list of prefix groups to advertise in custom mode. + // This field can only be populated if advertiseMode is CUSTOM and + // is advertised to all peers of the router. These groups will be + // advertised in addition to any specified prefixes. Leave this field + // blank to advertise no custom groups. + // This enum field has the one valid value: ALL_SUBNETS + AdvertisedGroups []string `pulumi:"advertisedGroups"` + // User-specified list of individual IP ranges to advertise in + // custom mode. This field can only be populated if advertiseMode + // is CUSTOM and is advertised to all peers of the router. These IP + // ranges will be advertised in addition to any specified groups. + // Leave this field blank to advertise no custom IP ranges. + // Structure is documented below. + AdvertisedIpRanges []RouterBgpAdvertisedIpRange `pulumi:"advertisedIpRanges"` + // Local BGP Autonomous System Number (ASN). Must be an RFC6996 + // private ASN, either 16-bit or 32-bit. The value will be fixed for + // this router resource. All VPN tunnels that link to this router + // will have the same local ASN. + Asn int `pulumi:"asn"` + // Explicitly specifies a range of valid BGP Identifiers for this Router. + // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of + // size at least /30, even if the BGP sessions are over IPv6. It must + // not overlap with any IPv4 BGP session ranges. Other vendors commonly + // call this router ID. + IdentifierRange *string `pulumi:"identifierRange"` + // The interval in seconds between BGP keepalive messages that are sent + // to the peer. Hold time is three times the interval at which keepalive + // messages are sent, and the hold time is the maximum number of seconds + // allowed to elapse between successive keepalive messages that BGP + // receives from a peer. + // BGP will use the smaller of either the local hold time value or the + // peer's hold time value as the hold time for the BGP connection + // between the two peers. If set, this value must be between 20 and 60. + // The default is 20. + KeepaliveInterval *int `pulumi:"keepaliveInterval"` } -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput` via: +// RouterBgpInput is an input type that accepts RouterBgpArgs and RouterBgpOutput values. +// You can construct a concrete instance of `RouterBgpInput` via: // -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput interface { +// RouterBgpArgs{...} +type RouterBgpInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput + ToRouterBgpOutput() RouterBgpOutput + ToRouterBgpOutputWithContext(context.Context) RouterBgpOutput } -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs struct { - // A list of custom Content-Type header values to apply the JSON parsing. The - // format of the Content-Type header values is defined in - // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header - // value, only the type/subtype needs to be specified, and the parameters should be excluded. - ContentTypes pulumi.StringArrayInput `pulumi:"contentTypes"` +type RouterBgpArgs struct { + // User-specified flag to indicate which mode to use for advertisement. + // Default value is `DEFAULT`. + // Possible values are: `DEFAULT`, `CUSTOM`. + AdvertiseMode pulumi.StringPtrInput `pulumi:"advertiseMode"` + // User-specified list of prefix groups to advertise in custom mode. + // This field can only be populated if advertiseMode is CUSTOM and + // is advertised to all peers of the router. These groups will be + // advertised in addition to any specified prefixes. Leave this field + // blank to advertise no custom groups. + // This enum field has the one valid value: ALL_SUBNETS + AdvertisedGroups pulumi.StringArrayInput `pulumi:"advertisedGroups"` + // User-specified list of individual IP ranges to advertise in + // custom mode. This field can only be populated if advertiseMode + // is CUSTOM and is advertised to all peers of the router. These IP + // ranges will be advertised in addition to any specified groups. + // Leave this field blank to advertise no custom IP ranges. + // Structure is documented below. + AdvertisedIpRanges RouterBgpAdvertisedIpRangeArrayInput `pulumi:"advertisedIpRanges"` + // Local BGP Autonomous System Number (ASN). Must be an RFC6996 + // private ASN, either 16-bit or 32-bit. The value will be fixed for + // this router resource. All VPN tunnels that link to this router + // will have the same local ASN. + Asn pulumi.IntInput `pulumi:"asn"` + // Explicitly specifies a range of valid BGP Identifiers for this Router. + // It is provided as a link-local IPv4 range (from 169.254.0.0/16), of + // size at least /30, even if the BGP sessions are over IPv6. It must + // not overlap with any IPv4 BGP session ranges. Other vendors commonly + // call this router ID. + IdentifierRange pulumi.StringPtrInput `pulumi:"identifierRange"` + // The interval in seconds between BGP keepalive messages that are sent + // to the peer. Hold time is three times the interval at which keepalive + // messages are sent, and the hold time is the maximum number of seconds + // allowed to elapse between successive keepalive messages that BGP + // receives from a peer. + // BGP will use the smaller of either the local hold time value or the + // peer's hold time value as the hold time for the BGP connection + // between the two peers. If set, this value must be between 20 and 60. + // The default is 20. + KeepaliveInterval pulumi.IntPtrInput `pulumi:"keepaliveInterval"` } -func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +func (RouterBgpArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgp)(nil)).Elem() } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Background()) +func (i RouterBgpArgs) ToRouterBgpOutput() RouterBgpOutput { + return i.ToRouterBgpOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) +func (i RouterBgpArgs) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput) } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) +func (i RouterBgpArgs) ToRouterBgpPtrOutput() RouterBgpPtrOutput { + return i.ToRouterBgpPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput).ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx) +func (i RouterBgpArgs) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpOutput).ToRouterBgpPtrOutputWithContext(ctx) } -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs, SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput` via: +// RouterBgpPtrInput is an input type that accepts RouterBgpArgs, RouterBgpPtr and RouterBgpPtrOutput values. +// You can construct a concrete instance of `RouterBgpPtrInput` via: // -// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} +// RouterBgpArgs{...} // // or: // // nil -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput interface { +type RouterBgpPtrInput interface { pulumi.Input - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput - ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput + ToRouterBgpPtrOutput() RouterBgpPtrOutput + ToRouterBgpPtrOutputWithContext(context.Context) RouterBgpPtrOutput } -type securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs +type routerBgpPtrType RouterBgpArgs -func SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput { - return (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType)(v) +func RouterBgpPtr(v *RouterBgpArgs) RouterBgpPtrInput { + return (*routerBgpPtrType)(v) } -func (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +func (*routerBgpPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterBgp)(nil)).Elem() } -func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) +func (i *routerBgpPtrType) ToRouterBgpPtrOutput() RouterBgpPtrOutput { + return i.ToRouterBgpPtrOutputWithContext(context.Background()) } -func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) +func (i *routerBgpPtrType) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpPtrOutput) } -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput struct{ *pulumi.OutputState } +type RouterBgpOutput struct{ *pulumi.OutputState } -func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +func (RouterBgpOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgp)(nil)).Elem() } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { +func (o RouterBgpOutput) ToRouterBgpOutput() RouterBgpOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { +func (o RouterBgpOutput) ToRouterBgpOutputWithContext(ctx context.Context) RouterBgpOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) +func (o RouterBgpOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { + return o.ToRouterBgpPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { +func (o RouterBgpOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterBgp) *RouterBgp { return &v - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) + }).(RouterBgpPtrOutput) } -// A list of custom Content-Type header values to apply the JSON parsing. The -// format of the Content-Type header values is defined in -// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header -// value, only the type/subtype needs to be specified, and the parameters should be excluded. -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ContentTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { return v.ContentTypes }).(pulumi.StringArrayOutput) +// User-specified flag to indicate which mode to use for advertisement. +// Default value is `DEFAULT`. +// Possible values are: `DEFAULT`, `CUSTOM`. +func (o RouterBgpOutput) AdvertiseMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterBgp) *string { return v.AdvertiseMode }).(pulumi.StringPtrOutput) } -type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput struct{ *pulumi.OutputState } +// User-specified list of prefix groups to advertise in custom mode. +// This field can only be populated if advertiseMode is CUSTOM and +// is advertised to all peers of the router. These groups will be +// advertised in addition to any specified prefixes. Leave this field +// blank to advertise no custom groups. +// This enum field has the one valid value: ALL_SUBNETS +func (o RouterBgpOutput) AdvertisedGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterBgp) []string { return v.AdvertisedGroups }).(pulumi.StringArrayOutput) +} -func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() +// User-specified list of individual IP ranges to advertise in +// custom mode. This field can only be populated if advertiseMode +// is CUSTOM and is advertised to all peers of the router. These IP +// ranges will be advertised in addition to any specified groups. +// Leave this field blank to advertise no custom IP ranges. +// Structure is documented below. +func (o RouterBgpOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { + return o.ApplyT(func(v RouterBgp) []RouterBgpAdvertisedIpRange { return v.AdvertisedIpRanges }).(RouterBgpAdvertisedIpRangeArrayOutput) } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { +// Local BGP Autonomous System Number (ASN). Must be an RFC6996 +// private ASN, either 16-bit or 32-bit. The value will be fixed for +// this router resource. All VPN tunnels that link to this router +// will have the same local ASN. +func (o RouterBgpOutput) Asn() pulumi.IntOutput { + return o.ApplyT(func(v RouterBgp) int { return v.Asn }).(pulumi.IntOutput) +} + +// Explicitly specifies a range of valid BGP Identifiers for this Router. +// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of +// size at least /30, even if the BGP sessions are over IPv6. It must +// not overlap with any IPv4 BGP session ranges. Other vendors commonly +// call this router ID. +func (o RouterBgpOutput) IdentifierRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterBgp) *string { return v.IdentifierRange }).(pulumi.StringPtrOutput) +} + +// The interval in seconds between BGP keepalive messages that are sent +// to the peer. Hold time is three times the interval at which keepalive +// messages are sent, and the hold time is the maximum number of seconds +// allowed to elapse between successive keepalive messages that BGP +// receives from a peer. +// BGP will use the smaller of either the local hold time value or the +// peer's hold time value as the hold time for the BGP connection +// between the two peers. If set, this value must be between 20 and 60. +// The default is 20. +func (o RouterBgpOutput) KeepaliveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterBgp) *int { return v.KeepaliveInterval }).(pulumi.IntPtrOutput) +} + +type RouterBgpPtrOutput struct{ *pulumi.OutputState } + +func (RouterBgpPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterBgp)(nil)).Elem() +} + +func (o RouterBgpPtrOutput) ToRouterBgpPtrOutput() RouterBgpPtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { +func (o RouterBgpPtrOutput) ToRouterBgpPtrOutputWithContext(ctx context.Context) RouterBgpPtrOutput { return o } -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { +func (o RouterBgpPtrOutput) Elem() RouterBgpOutput { + return o.ApplyT(func(v *RouterBgp) RouterBgp { if v != nil { return *v } - var ret SecurityPolicyAdvancedOptionsConfigJsonCustomConfig + var ret RouterBgp return ret - }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) + }).(RouterBgpOutput) } -// A list of custom Content-Type header values to apply the JSON parsing. The -// format of the Content-Type header values is defined in -// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header -// value, only the type/subtype needs to be specified, and the parameters should be excluded. -func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ContentTypes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { +// User-specified flag to indicate which mode to use for advertisement. +// Default value is `DEFAULT`. +// Possible values are: `DEFAULT`, `CUSTOM`. +func (o RouterBgpPtrOutput) AdvertiseMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterBgp) *string { if v == nil { return nil } - return v.ContentTypes + return v.AdvertiseMode + }).(pulumi.StringPtrOutput) +} + +// User-specified list of prefix groups to advertise in custom mode. +// This field can only be populated if advertiseMode is CUSTOM and +// is advertised to all peers of the router. These groups will be +// advertised in addition to any specified prefixes. Leave this field +// blank to advertise no custom groups. +// This enum field has the one valid value: ALL_SUBNETS +func (o RouterBgpPtrOutput) AdvertisedGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterBgp) []string { + if v == nil { + return nil + } + return v.AdvertisedGroups }).(pulumi.StringArrayOutput) } -type SecurityPolicyRecaptchaOptionsConfig struct { - // 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. - RedirectSiteKey string `pulumi:"redirectSiteKey"` +// User-specified list of individual IP ranges to advertise in +// custom mode. This field can only be populated if advertiseMode +// is CUSTOM and is advertised to all peers of the router. These IP +// ranges will be advertised in addition to any specified groups. +// Leave this field blank to advertise no custom IP ranges. +// Structure is documented below. +func (o RouterBgpPtrOutput) AdvertisedIpRanges() RouterBgpAdvertisedIpRangeArrayOutput { + return o.ApplyT(func(v *RouterBgp) []RouterBgpAdvertisedIpRange { + if v == nil { + return nil + } + return v.AdvertisedIpRanges + }).(RouterBgpAdvertisedIpRangeArrayOutput) } -// SecurityPolicyRecaptchaOptionsConfigInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs and SecurityPolicyRecaptchaOptionsConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigInput` via: -// -// SecurityPolicyRecaptchaOptionsConfigArgs{...} -type SecurityPolicyRecaptchaOptionsConfigInput interface { - pulumi.Input +// Local BGP Autonomous System Number (ASN). Must be an RFC6996 +// private ASN, either 16-bit or 32-bit. The value will be fixed for +// this router resource. All VPN tunnels that link to this router +// will have the same local ASN. +func (o RouterBgpPtrOutput) Asn() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterBgp) *int { + if v == nil { + return nil + } + return &v.Asn + }).(pulumi.IntPtrOutput) +} - ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput - ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigOutput +// Explicitly specifies a range of valid BGP Identifiers for this Router. +// It is provided as a link-local IPv4 range (from 169.254.0.0/16), of +// size at least /30, even if the BGP sessions are over IPv6. It must +// not overlap with any IPv4 BGP session ranges. Other vendors commonly +// call this router ID. +func (o RouterBgpPtrOutput) IdentifierRange() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterBgp) *string { + if v == nil { + return nil + } + return v.IdentifierRange + }).(pulumi.StringPtrOutput) } -type SecurityPolicyRecaptchaOptionsConfigArgs struct { - // 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. - RedirectSiteKey pulumi.StringInput `pulumi:"redirectSiteKey"` +// The interval in seconds between BGP keepalive messages that are sent +// to the peer. Hold time is three times the interval at which keepalive +// messages are sent, and the hold time is the maximum number of seconds +// allowed to elapse between successive keepalive messages that BGP +// receives from a peer. +// BGP will use the smaller of either the local hold time value or the +// peer's hold time value as the hold time for the BGP connection +// between the two peers. If set, this value must be between 20 and 60. +// The default is 20. +func (o RouterBgpPtrOutput) KeepaliveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterBgp) *int { + if v == nil { + return nil + } + return v.KeepaliveInterval + }).(pulumi.IntPtrOutput) } -func (SecurityPolicyRecaptchaOptionsConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +type RouterBgpAdvertisedIpRange struct { + // User-specified description for the IP range. + Description *string `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range string `pulumi:"range"` } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { - return i.ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Background()) +// RouterBgpAdvertisedIpRangeInput is an input type that accepts RouterBgpAdvertisedIpRangeArgs and RouterBgpAdvertisedIpRangeOutput values. +// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeInput` via: +// +// RouterBgpAdvertisedIpRangeArgs{...} +type RouterBgpAdvertisedIpRangeInput interface { + pulumi.Input + + ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput + ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeOutput } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput) +type RouterBgpAdvertisedIpRangeArgs struct { + // User-specified description for the IP range. + Description pulumi.StringPtrInput `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range pulumi.StringInput `pulumi:"range"` } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) +func (RouterBgpAdvertisedIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput).ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx) +func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { + return i.ToRouterBgpAdvertisedIpRangeOutputWithContext(context.Background()) } -// SecurityPolicyRecaptchaOptionsConfigPtrInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs, SecurityPolicyRecaptchaOptionsConfigPtr and SecurityPolicyRecaptchaOptionsConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigPtrInput` via: -// -// SecurityPolicyRecaptchaOptionsConfigArgs{...} -// -// or: +func (i RouterBgpAdvertisedIpRangeArgs) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeOutput) +} + +// RouterBgpAdvertisedIpRangeArrayInput is an input type that accepts RouterBgpAdvertisedIpRangeArray and RouterBgpAdvertisedIpRangeArrayOutput values. +// You can construct a concrete instance of `RouterBgpAdvertisedIpRangeArrayInput` via: // -// nil -type SecurityPolicyRecaptchaOptionsConfigPtrInput interface { +// RouterBgpAdvertisedIpRangeArray{ RouterBgpAdvertisedIpRangeArgs{...} } +type RouterBgpAdvertisedIpRangeArrayInput interface { pulumi.Input - ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput - ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput + ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput + ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterBgpAdvertisedIpRangeArrayOutput } -type securityPolicyRecaptchaOptionsConfigPtrType SecurityPolicyRecaptchaOptionsConfigArgs - -func SecurityPolicyRecaptchaOptionsConfigPtr(v *SecurityPolicyRecaptchaOptionsConfigArgs) SecurityPolicyRecaptchaOptionsConfigPtrInput { - return (*securityPolicyRecaptchaOptionsConfigPtrType)(v) -} +type RouterBgpAdvertisedIpRangeArray []RouterBgpAdvertisedIpRangeInput -func (*securityPolicyRecaptchaOptionsConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +func (RouterBgpAdvertisedIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) +func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { + return i.ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) +func (i RouterBgpAdvertisedIpRangeArray) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterBgpAdvertisedIpRangeArrayOutput) } -type SecurityPolicyRecaptchaOptionsConfigOutput struct{ *pulumi.OutputState } +type RouterBgpAdvertisedIpRangeOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRecaptchaOptionsConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +func (RouterBgpAdvertisedIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { +func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutput() RouterBgpAdvertisedIpRangeOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { +func (o RouterBgpAdvertisedIpRangeOutput) ToRouterBgpAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return o.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRecaptchaOptionsConfig) *SecurityPolicyRecaptchaOptionsConfig { - return &v - }).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) +// User-specified description for the IP range. +func (o RouterBgpAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterBgpAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) } -// 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. -func (o SecurityPolicyRecaptchaOptionsConfigOutput) RedirectSiteKey() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRecaptchaOptionsConfig) string { return v.RedirectSiteKey }).(pulumi.StringOutput) +// The IP range to advertise. The value must be a +// CIDR-formatted string. +func (o RouterBgpAdvertisedIpRangeOutput) Range() pulumi.StringOutput { + return o.ApplyT(func(v RouterBgpAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) } -type SecurityPolicyRecaptchaOptionsConfigPtrOutput struct{ *pulumi.OutputState } +type RouterBgpAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRecaptchaOptionsConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() +func (RouterBgpAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterBgpAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { +func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutput() RouterBgpAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { +func (o RouterBgpAdvertisedIpRangeArrayOutput) ToRouterBgpAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterBgpAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) Elem() SecurityPolicyRecaptchaOptionsConfigOutput { - return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) SecurityPolicyRecaptchaOptionsConfig { - if v != nil { - return *v - } - var ret SecurityPolicyRecaptchaOptionsConfig - return ret - }).(SecurityPolicyRecaptchaOptionsConfigOutput) -} - -// 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. -func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) RedirectSiteKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) *string { - if v == nil { - return nil - } - return &v.RedirectSiteKey - }).(pulumi.StringPtrOutput) +func (o RouterBgpAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterBgpAdvertisedIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterBgpAdvertisedIpRange { + return vs[0].([]RouterBgpAdvertisedIpRange)[vs[1].(int)] + }).(RouterBgpAdvertisedIpRangeOutput) } -type SecurityPolicyRuleType struct { - // Action to take when `match` matches the request. Valid values: - Action string `pulumi:"action"` - // An optional description of this rule. Max size is 64. - Description *string `pulumi:"description"` - // Additional actions that are performed on headers. Structure is documented below. - HeaderAction *SecurityPolicyRuleHeaderAction `pulumi:"headerAction"` - // A match condition that incoming traffic is evaluated against. - // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. - Match SecurityPolicyRuleMatch `pulumi:"match"` - // 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. - PreconfiguredWafConfig *SecurityPolicyRulePreconfiguredWafConfig `pulumi:"preconfiguredWafConfig"` - // When set to true, the `action` specified above is not enforced. - // Stackdriver logs for requests that trigger a preview action are annotated as such. - Preview *bool `pulumi:"preview"` - // 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. - Priority int `pulumi:"priority"` - // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. - RateLimitOptions *SecurityPolicyRuleRateLimitOptions `pulumi:"rateLimitOptions"` - // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. - RedirectOptions *SecurityPolicyRuleRedirectOptions `pulumi:"redirectOptions"` +type RouterNatLogConfig struct { + // Indicates whether or not to export logs. + Enable bool `pulumi:"enable"` + // Specifies the desired filtering of logs on this NAT. + // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. + Filter string `pulumi:"filter"` } -// SecurityPolicyRuleTypeInput is an input type that accepts SecurityPolicyRuleTypeArgs and SecurityPolicyRuleTypeOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleTypeInput` via: +// RouterNatLogConfigInput is an input type that accepts RouterNatLogConfigArgs and RouterNatLogConfigOutput values. +// You can construct a concrete instance of `RouterNatLogConfigInput` via: // -// SecurityPolicyRuleTypeArgs{...} -type SecurityPolicyRuleTypeInput interface { +// RouterNatLogConfigArgs{...} +type RouterNatLogConfigInput interface { pulumi.Input - ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput - ToSecurityPolicyRuleTypeOutputWithContext(context.Context) SecurityPolicyRuleTypeOutput + ToRouterNatLogConfigOutput() RouterNatLogConfigOutput + ToRouterNatLogConfigOutputWithContext(context.Context) RouterNatLogConfigOutput } -type SecurityPolicyRuleTypeArgs struct { - // Action to take when `match` matches the request. Valid values: - Action pulumi.StringInput `pulumi:"action"` - // An optional description of this rule. Max size is 64. - Description pulumi.StringPtrInput `pulumi:"description"` - // Additional actions that are performed on headers. Structure is documented below. - HeaderAction SecurityPolicyRuleHeaderActionPtrInput `pulumi:"headerAction"` - // A match condition that incoming traffic is evaluated against. - // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. - Match SecurityPolicyRuleMatchInput `pulumi:"match"` - // 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. - PreconfiguredWafConfig SecurityPolicyRulePreconfiguredWafConfigPtrInput `pulumi:"preconfiguredWafConfig"` - // When set to true, the `action` specified above is not enforced. - // Stackdriver logs for requests that trigger a preview action are annotated as such. - Preview pulumi.BoolPtrInput `pulumi:"preview"` - // 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. - Priority pulumi.IntInput `pulumi:"priority"` - // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. - RateLimitOptions SecurityPolicyRuleRateLimitOptionsPtrInput `pulumi:"rateLimitOptions"` - // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. - RedirectOptions SecurityPolicyRuleRedirectOptionsPtrInput `pulumi:"redirectOptions"` +type RouterNatLogConfigArgs struct { + // Indicates whether or not to export logs. + Enable pulumi.BoolInput `pulumi:"enable"` + // Specifies the desired filtering of logs on this NAT. + // Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. + Filter pulumi.StringInput `pulumi:"filter"` } -func (SecurityPolicyRuleTypeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() +func (RouterNatLogConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() } -func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { - return i.ToSecurityPolicyRuleTypeOutputWithContext(context.Background()) +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { + return i.ToRouterNatLogConfigOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeOutput) +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput) } -// SecurityPolicyRuleTypeArrayInput is an input type that accepts SecurityPolicyRuleTypeArray and SecurityPolicyRuleTypeArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleTypeArrayInput` via: -// -// SecurityPolicyRuleTypeArray{ SecurityPolicyRuleTypeArgs{...} } -type SecurityPolicyRuleTypeArrayInput interface { - pulumi.Input - - ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput - ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Context) SecurityPolicyRuleTypeArrayOutput +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { + return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } -type SecurityPolicyRuleTypeArray []SecurityPolicyRuleTypeInput - -func (SecurityPolicyRuleTypeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() +func (i RouterNatLogConfigArgs) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigOutput).ToRouterNatLogConfigPtrOutputWithContext(ctx) } -func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { - return i.ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Background()) -} +// RouterNatLogConfigPtrInput is an input type that accepts RouterNatLogConfigArgs, RouterNatLogConfigPtr and RouterNatLogConfigPtrOutput values. +// You can construct a concrete instance of `RouterNatLogConfigPtrInput` via: +// +// RouterNatLogConfigArgs{...} +// +// or: +// +// nil +type RouterNatLogConfigPtrInput interface { + pulumi.Input -func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeArrayOutput) + ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput + ToRouterNatLogConfigPtrOutputWithContext(context.Context) RouterNatLogConfigPtrOutput } -type SecurityPolicyRuleTypeOutput struct{ *pulumi.OutputState } +type routerNatLogConfigPtrType RouterNatLogConfigArgs -func (SecurityPolicyRuleTypeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() +func RouterNatLogConfigPtr(v *RouterNatLogConfigArgs) RouterNatLogConfigPtrInput { + return (*routerNatLogConfigPtrType)(v) } -func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { - return o +func (*routerNatLogConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() } -func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { - return o +func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { + return i.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } -// Action to take when `match` matches the request. Valid values: -func (o SecurityPolicyRuleTypeOutput) Action() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) string { return v.Action }).(pulumi.StringOutput) +func (i *routerNatLogConfigPtrType) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatLogConfigPtrOutput) } -// An optional description of this rule. Max size is 64. -func (o SecurityPolicyRuleTypeOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *string { return v.Description }).(pulumi.StringPtrOutput) -} +type RouterNatLogConfigOutput struct{ *pulumi.OutputState } -// Additional actions that are performed on headers. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) HeaderAction() SecurityPolicyRuleHeaderActionPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleHeaderAction { return v.HeaderAction }).(SecurityPolicyRuleHeaderActionPtrOutput) +func (RouterNatLogConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatLogConfig)(nil)).Elem() } -// A match condition that incoming traffic is evaluated against. -// If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) Match() SecurityPolicyRuleMatchOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) SecurityPolicyRuleMatch { return v.Match }).(SecurityPolicyRuleMatchOutput) +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutput() RouterNatLogConfigOutput { + return o } -// 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. -func (o SecurityPolicyRuleTypeOutput) PreconfiguredWafConfig() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRulePreconfiguredWafConfig { - return v.PreconfiguredWafConfig - }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigOutputWithContext(ctx context.Context) RouterNatLogConfigOutput { + return o } -// When set to true, the `action` specified above is not enforced. -// Stackdriver logs for requests that trigger a preview action are annotated as such. -func (o SecurityPolicyRuleTypeOutput) Preview() pulumi.BoolPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *bool { return v.Preview }).(pulumi.BoolPtrOutput) +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { + return o.ToRouterNatLogConfigPtrOutputWithContext(context.Background()) } -// 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. -func (o SecurityPolicyRuleTypeOutput) Priority() pulumi.IntOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) int { return v.Priority }).(pulumi.IntOutput) +func (o RouterNatLogConfigOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatLogConfig) *RouterNatLogConfig { + return &v + }).(RouterNatLogConfigPtrOutput) } -// Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) RateLimitOptions() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRateLimitOptions { return v.RateLimitOptions }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) +// Indicates whether or not to export logs. +func (o RouterNatLogConfigOutput) Enable() pulumi.BoolOutput { + return o.ApplyT(func(v RouterNatLogConfig) bool { return v.Enable }).(pulumi.BoolOutput) } -// Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. -func (o SecurityPolicyRuleTypeOutput) RedirectOptions() SecurityPolicyRuleRedirectOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRedirectOptions { return v.RedirectOptions }).(SecurityPolicyRuleRedirectOptionsPtrOutput) +// Specifies the desired filtering of logs on this NAT. +// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. +func (o RouterNatLogConfigOutput) Filter() pulumi.StringOutput { + return o.ApplyT(func(v RouterNatLogConfig) string { return v.Filter }).(pulumi.StringOutput) } -type SecurityPolicyRuleTypeArrayOutput struct{ *pulumi.OutputState } +type RouterNatLogConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleTypeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() +func (RouterNatLogConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatLogConfig)(nil)).Elem() } -func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { +func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutput() RouterNatLogConfigPtrOutput { return o } -func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { +func (o RouterNatLogConfigPtrOutput) ToRouterNatLogConfigPtrOutputWithContext(ctx context.Context) RouterNatLogConfigPtrOutput { return o } -func (o SecurityPolicyRuleTypeArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleTypeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleType { - return vs[0].([]SecurityPolicyRuleType)[vs[1].(int)] - }).(SecurityPolicyRuleTypeOutput) +func (o RouterNatLogConfigPtrOutput) Elem() RouterNatLogConfigOutput { + return o.ApplyT(func(v *RouterNatLogConfig) RouterNatLogConfig { + if v != nil { + return *v + } + var ret RouterNatLogConfig + return ret + }).(RouterNatLogConfigOutput) } -type SecurityPolicyRuleHeaderAction struct { - // The list of request headers to add or overwrite if they're already present. Structure is documented below. - RequestHeadersToAdds []SecurityPolicyRuleHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` +// Indicates whether or not to export logs. +func (o RouterNatLogConfigPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *RouterNatLogConfig) *bool { + if v == nil { + return nil + } + return &v.Enable + }).(pulumi.BoolPtrOutput) } -// SecurityPolicyRuleHeaderActionInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs and SecurityPolicyRuleHeaderActionOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionInput` via: -// -// SecurityPolicyRuleHeaderActionArgs{...} -type SecurityPolicyRuleHeaderActionInput interface { - pulumi.Input - - ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput - ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionOutput +// Specifies the desired filtering of logs on this NAT. +// Possible values are: `ERRORS_ONLY`, `TRANSLATIONS_ONLY`, `ALL`. +func (o RouterNatLogConfigPtrOutput) Filter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterNatLogConfig) *string { + if v == nil { + return nil + } + return &v.Filter + }).(pulumi.StringPtrOutput) } -type SecurityPolicyRuleHeaderActionArgs struct { - // The list of request headers to add or overwrite if they're already present. Structure is documented below. - RequestHeadersToAdds SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` +type RouterNatRule struct { + // The action to be enforced for traffic that matches this rule. + // Structure is documented below. + Action *RouterNatRuleAction `pulumi:"action"` + // An optional description of this rule. + Description *string `pulumi:"description"` + // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. + // If it evaluates to true, the corresponding action is enforced. + // The following examples are valid match expressions for public NAT: + // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" + // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" + // The following example is a valid match expression for private NAT: + // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" + Match string `pulumi:"match"` + // An integer uniquely identifying a rule in the list. + // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. + RuleNumber int `pulumi:"ruleNumber"` } -func (SecurityPolicyRuleHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() +// RouterNatRuleInput is an input type that accepts RouterNatRuleArgs and RouterNatRuleOutput values. +// You can construct a concrete instance of `RouterNatRuleInput` via: +// +// RouterNatRuleArgs{...} +type RouterNatRuleInput interface { + pulumi.Input + + ToRouterNatRuleOutput() RouterNatRuleOutput + ToRouterNatRuleOutputWithContext(context.Context) RouterNatRuleOutput } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { - return i.ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Background()) +type RouterNatRuleArgs struct { + // The action to be enforced for traffic that matches this rule. + // Structure is documented below. + Action RouterNatRuleActionPtrInput `pulumi:"action"` + // An optional description of this rule. + Description pulumi.StringPtrInput `pulumi:"description"` + // CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. + // If it evaluates to true, the corresponding action is enforced. + // The following examples are valid match expressions for public NAT: + // "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" + // "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" + // The following example is a valid match expression for private NAT: + // "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" + Match pulumi.StringInput `pulumi:"match"` + // An integer uniquely identifying a rule in the list. + // The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. + RuleNumber pulumi.IntInput `pulumi:"ruleNumber"` } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput) +func (RouterNatRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRule)(nil)).Elem() } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +func (i RouterNatRuleArgs) ToRouterNatRuleOutput() RouterNatRuleOutput { + return i.ToRouterNatRuleOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput).ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx) +func (i RouterNatRuleArgs) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleOutput) } -// SecurityPolicyRuleHeaderActionPtrInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs, SecurityPolicyRuleHeaderActionPtr and SecurityPolicyRuleHeaderActionPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionPtrInput` via: -// -// SecurityPolicyRuleHeaderActionArgs{...} -// -// or: +// RouterNatRuleArrayInput is an input type that accepts RouterNatRuleArray and RouterNatRuleArrayOutput values. +// You can construct a concrete instance of `RouterNatRuleArrayInput` via: // -// nil -type SecurityPolicyRuleHeaderActionPtrInput interface { +// RouterNatRuleArray{ RouterNatRuleArgs{...} } +type RouterNatRuleArrayInput interface { pulumi.Input - ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput - ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionPtrOutput + ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput + ToRouterNatRuleArrayOutputWithContext(context.Context) RouterNatRuleArrayOutput } -type securityPolicyRuleHeaderActionPtrType SecurityPolicyRuleHeaderActionArgs - -func SecurityPolicyRuleHeaderActionPtr(v *SecurityPolicyRuleHeaderActionArgs) SecurityPolicyRuleHeaderActionPtrInput { - return (*securityPolicyRuleHeaderActionPtrType)(v) -} +type RouterNatRuleArray []RouterNatRuleInput -func (*securityPolicyRuleHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() +func (RouterNatRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() } -func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +func (i RouterNatRuleArray) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { + return i.ToRouterNatRuleArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionPtrOutput) +func (i RouterNatRuleArray) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleArrayOutput) } -type SecurityPolicyRuleHeaderActionOutput struct{ *pulumi.OutputState } +type RouterNatRuleOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() +func (RouterNatRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRule)(nil)).Elem() } -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { +func (o RouterNatRuleOutput) ToRouterNatRuleOutput() RouterNatRuleOutput { return o } -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { +func (o RouterNatRuleOutput) ToRouterNatRuleOutputWithContext(ctx context.Context) RouterNatRuleOutput { return o } -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return o.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +// The action to be enforced for traffic that matches this rule. +// Structure is documented below. +func (o RouterNatRuleOutput) Action() RouterNatRuleActionPtrOutput { + return o.ApplyT(func(v RouterNatRule) *RouterNatRuleAction { return v.Action }).(RouterNatRuleActionPtrOutput) } -func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleHeaderAction) *SecurityPolicyRuleHeaderAction { - return &v - }).(SecurityPolicyRuleHeaderActionPtrOutput) +// An optional description of this rule. +func (o RouterNatRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterNatRule) *string { return v.Description }).(pulumi.StringPtrOutput) } -// The list of request headers to add or overwrite if they're already present. Structure is documented below. -func (o SecurityPolicyRuleHeaderActionOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) +// CEL expression that specifies the match condition that egress traffic from a VM is evaluated against. +// If it evaluates to true, the corresponding action is enforced. +// The following examples are valid match expressions for public NAT: +// "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.0/16')" +// "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" +// The following example is a valid match expression for private NAT: +// "nexthop.hub == 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/global/hub/hub-1'" +func (o RouterNatRuleOutput) Match() pulumi.StringOutput { + return o.ApplyT(func(v RouterNatRule) string { return v.Match }).(pulumi.StringOutput) } -type SecurityPolicyRuleHeaderActionPtrOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() +// An integer uniquely identifying a rule in the list. +// The rule number must be a positive value between 0 and 65000, and must be unique among rules within a NAT. +func (o RouterNatRuleOutput) RuleNumber() pulumi.IntOutput { + return o.ApplyT(func(v RouterNatRule) int { return v.RuleNumber }).(pulumi.IntOutput) } -func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { - return o -} +type RouterNatRuleArrayOutput struct{ *pulumi.OutputState } -func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { - return o +func (RouterNatRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatRule)(nil)).Elem() } -func (o SecurityPolicyRuleHeaderActionPtrOutput) Elem() SecurityPolicyRuleHeaderActionOutput { - return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) SecurityPolicyRuleHeaderAction { - if v != nil { - return *v - } - var ret SecurityPolicyRuleHeaderAction - return ret - }).(SecurityPolicyRuleHeaderActionOutput) +func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutput() RouterNatRuleArrayOutput { + return o } -// The list of request headers to add or overwrite if they're already present. Structure is documented below. -func (o SecurityPolicyRuleHeaderActionPtrOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { - if v == nil { - return nil - } - return v.RequestHeadersToAdds - }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) +func (o RouterNatRuleArrayOutput) ToRouterNatRuleArrayOutputWithContext(ctx context.Context) RouterNatRuleArrayOutput { + return o } -type SecurityPolicyRuleHeaderActionRequestHeadersToAdd struct { - // The name of the header to set. - HeaderName string `pulumi:"headerName"` - // The value to set the named header to. - HeaderValue *string `pulumi:"headerValue"` +func (o RouterNatRuleArrayOutput) Index(i pulumi.IntInput) RouterNatRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatRule { + return vs[0].([]RouterNatRule)[vs[1].(int)] + }).(RouterNatRuleOutput) } -// SecurityPolicyRuleHeaderActionRequestHeadersToAddInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs and SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddInput` via: -// -// SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} -type SecurityPolicyRuleHeaderActionRequestHeadersToAddInput interface { - pulumi.Input - - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput -} - -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs struct { - // The name of the header to set. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value to set the named header to. - HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` -} - -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) -} - -// SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArray and SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput` via: -// -// SecurityPolicyRuleHeaderActionRequestHeadersToAddArray{ SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} } -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput interface { - pulumi.Input - - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput - ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput -} - -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArray []SecurityPolicyRuleHeaderActionRequestHeadersToAddInput - -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) -} - -type SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return o -} - -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return o -} - -// The name of the header to set. -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) -} - -// The value to set the named header to. -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) -} - -type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return o -} - -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { - return o -} - -func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleHeaderActionRequestHeadersToAdd { - return vs[0].([]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) -} - -type SecurityPolicyRuleMatch struct { - // The configuration options available when specifying versionedExpr. - // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. - // Structure is documented below. - Config *SecurityPolicyRuleMatchConfig `pulumi:"config"` - // 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. - // Structure is documented below. - Expr *SecurityPolicyRuleMatchExpr `pulumi:"expr"` - // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). - // Structure is documented below. - ExprOptions *SecurityPolicyRuleMatchExprOptions `pulumi:"exprOptions"` - // Preconfigured versioned expression. If this field is specified, config must also be specified. - // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - // Possible values are: `SRC_IPS_V1`. - VersionedExpr *string `pulumi:"versionedExpr"` +type RouterNatRuleAction struct { + // A list of URLs of the IP resources used for this NAT rule. + // These IP addresses must be valid static external IP addresses assigned to the project. + // This field is used for public NAT. + SourceNatActiveIps []string `pulumi:"sourceNatActiveIps"` + // A list of URLs of the subnetworks used as source ranges for this NAT Rule. + // These subnetworks must have purpose set to PRIVATE_NAT. + // This field is used for private NAT. + SourceNatActiveRanges []string `pulumi:"sourceNatActiveRanges"` + // A list of URLs of the IP resources to be drained. + // These IPs must be valid static external IPs that have been assigned to the NAT. + // These IPs should be used for updating/patching a NAT rule only. + // This field is used for public NAT. + SourceNatDrainIps []string `pulumi:"sourceNatDrainIps"` + // A list of URLs of subnetworks representing source ranges to be drained. + // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. + // This field is used for private NAT. + SourceNatDrainRanges []string `pulumi:"sourceNatDrainRanges"` } -// SecurityPolicyRuleMatchInput is an input type that accepts SecurityPolicyRuleMatchArgs and SecurityPolicyRuleMatchOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchInput` via: +// RouterNatRuleActionInput is an input type that accepts RouterNatRuleActionArgs and RouterNatRuleActionOutput values. +// You can construct a concrete instance of `RouterNatRuleActionInput` via: // -// SecurityPolicyRuleMatchArgs{...} -type SecurityPolicyRuleMatchInput interface { +// RouterNatRuleActionArgs{...} +type RouterNatRuleActionInput interface { pulumi.Input - ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput - ToSecurityPolicyRuleMatchOutputWithContext(context.Context) SecurityPolicyRuleMatchOutput + ToRouterNatRuleActionOutput() RouterNatRuleActionOutput + ToRouterNatRuleActionOutputWithContext(context.Context) RouterNatRuleActionOutput } -type SecurityPolicyRuleMatchArgs struct { - // The configuration options available when specifying versionedExpr. - // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. - // Structure is documented below. - Config SecurityPolicyRuleMatchConfigPtrInput `pulumi:"config"` - // 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. - // Structure is documented below. - Expr SecurityPolicyRuleMatchExprPtrInput `pulumi:"expr"` - // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). - // Structure is documented below. - ExprOptions SecurityPolicyRuleMatchExprOptionsPtrInput `pulumi:"exprOptions"` - // Preconfigured versioned expression. If this field is specified, config must also be specified. - // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. - // Possible values are: `SRC_IPS_V1`. - VersionedExpr pulumi.StringPtrInput `pulumi:"versionedExpr"` +type RouterNatRuleActionArgs struct { + // A list of URLs of the IP resources used for this NAT rule. + // These IP addresses must be valid static external IP addresses assigned to the project. + // This field is used for public NAT. + SourceNatActiveIps pulumi.StringArrayInput `pulumi:"sourceNatActiveIps"` + // A list of URLs of the subnetworks used as source ranges for this NAT Rule. + // These subnetworks must have purpose set to PRIVATE_NAT. + // This field is used for private NAT. + SourceNatActiveRanges pulumi.StringArrayInput `pulumi:"sourceNatActiveRanges"` + // A list of URLs of the IP resources to be drained. + // These IPs must be valid static external IPs that have been assigned to the NAT. + // These IPs should be used for updating/patching a NAT rule only. + // This field is used for public NAT. + SourceNatDrainIps pulumi.StringArrayInput `pulumi:"sourceNatDrainIps"` + // A list of URLs of subnetworks representing source ranges to be drained. + // This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. + // This field is used for private NAT. + SourceNatDrainRanges pulumi.StringArrayInput `pulumi:"sourceNatDrainRanges"` } -func (SecurityPolicyRuleMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() +func (RouterNatRuleActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { - return i.ToSecurityPolicyRuleMatchOutputWithContext(context.Background()) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { + return i.ToRouterNatRuleActionOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput) } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { - return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { + return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput).ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx) +func (i RouterNatRuleActionArgs) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionOutput).ToRouterNatRuleActionPtrOutputWithContext(ctx) } -// SecurityPolicyRuleMatchPtrInput is an input type that accepts SecurityPolicyRuleMatchArgs, SecurityPolicyRuleMatchPtr and SecurityPolicyRuleMatchPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchPtrInput` via: +// RouterNatRuleActionPtrInput is an input type that accepts RouterNatRuleActionArgs, RouterNatRuleActionPtr and RouterNatRuleActionPtrOutput values. +// You can construct a concrete instance of `RouterNatRuleActionPtrInput` via: // -// SecurityPolicyRuleMatchArgs{...} +// RouterNatRuleActionArgs{...} // // or: // // nil -type SecurityPolicyRuleMatchPtrInput interface { +type RouterNatRuleActionPtrInput interface { pulumi.Input - ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput - ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchPtrOutput + ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput + ToRouterNatRuleActionPtrOutputWithContext(context.Context) RouterNatRuleActionPtrOutput } -type securityPolicyRuleMatchPtrType SecurityPolicyRuleMatchArgs +type routerNatRuleActionPtrType RouterNatRuleActionArgs -func SecurityPolicyRuleMatchPtr(v *SecurityPolicyRuleMatchArgs) SecurityPolicyRuleMatchPtrInput { - return (*securityPolicyRuleMatchPtrType)(v) +func RouterNatRuleActionPtr(v *RouterNatRuleActionArgs) RouterNatRuleActionPtrInput { + return (*routerNatRuleActionPtrType)(v) } -func (*securityPolicyRuleMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() +func (*routerNatRuleActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() } -func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { - return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { + return i.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchPtrOutput) +func (i *routerNatRuleActionPtrType) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatRuleActionPtrOutput) } -type SecurityPolicyRuleMatchOutput struct{ *pulumi.OutputState } +type RouterNatRuleActionOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() +func (RouterNatRuleActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatRuleAction)(nil)).Elem() } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutput() RouterNatRuleActionOutput { return o } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionOutputWithContext(ctx context.Context) RouterNatRuleActionOutput { return o } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { - return o.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { + return o.ToRouterNatRuleActionPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatch { +func (o RouterNatRuleActionOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterNatRuleAction) *RouterNatRuleAction { return &v - }).(SecurityPolicyRuleMatchPtrOutput) + }).(RouterNatRuleActionPtrOutput) } -// The configuration options available when specifying versionedExpr. -// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. -// Structure is documented below. -func (o SecurityPolicyRuleMatchOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { return v.Config }).(SecurityPolicyRuleMatchConfigPtrOutput) +// A list of URLs of the IP resources used for this NAT rule. +// These IP addresses must be valid static external IP addresses assigned to the project. +// This field is used for public NAT. +func (o RouterNatRuleActionOutput) SourceNatActiveIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveIps }).(pulumi.StringArrayOutput) } -// 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. -// Structure is documented below. -func (o SecurityPolicyRuleMatchOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { return v.Expr }).(SecurityPolicyRuleMatchExprPtrOutput) +// A list of URLs of the subnetworks used as source ranges for this NAT Rule. +// These subnetworks must have purpose set to PRIVATE_NAT. +// This field is used for private NAT. +func (o RouterNatRuleActionOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatActiveRanges }).(pulumi.StringArrayOutput) } -// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). -// Structure is documented below. -func (o SecurityPolicyRuleMatchOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { return v.ExprOptions }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +// A list of URLs of the IP resources to be drained. +// These IPs must be valid static external IPs that have been assigned to the NAT. +// These IPs should be used for updating/patching a NAT rule only. +// This field is used for public NAT. +func (o RouterNatRuleActionOutput) SourceNatDrainIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainIps }).(pulumi.StringArrayOutput) } -// Preconfigured versioned expression. If this field is specified, config must also be specified. -// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. -// Possible values are: `SRC_IPS_V1`. -func (o SecurityPolicyRuleMatchOutput) VersionedExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatch) *string { return v.VersionedExpr }).(pulumi.StringPtrOutput) +// A list of URLs of subnetworks representing source ranges to be drained. +// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. +// This field is used for private NAT. +func (o RouterNatRuleActionOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatRuleAction) []string { return v.SourceNatDrainRanges }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleMatchPtrOutput struct{ *pulumi.OutputState } +type RouterNatRuleActionPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() +func (RouterNatRuleActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterNatRuleAction)(nil)).Elem() } -func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { +func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutput() RouterNatRuleActionPtrOutput { return o } -func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { +func (o RouterNatRuleActionPtrOutput) ToRouterNatRuleActionPtrOutputWithContext(ctx context.Context) RouterNatRuleActionPtrOutput { return o } -func (o SecurityPolicyRuleMatchPtrOutput) Elem() SecurityPolicyRuleMatchOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) SecurityPolicyRuleMatch { +func (o RouterNatRuleActionPtrOutput) Elem() RouterNatRuleActionOutput { + return o.ApplyT(func(v *RouterNatRuleAction) RouterNatRuleAction { if v != nil { return *v } - var ret SecurityPolicyRuleMatch + var ret RouterNatRuleAction return ret - }).(SecurityPolicyRuleMatchOutput) + }).(RouterNatRuleActionOutput) } -// The configuration options available when specifying versionedExpr. -// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. -// Structure is documented below. -func (o SecurityPolicyRuleMatchPtrOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { +// A list of URLs of the IP resources used for this NAT rule. +// These IP addresses must be valid static external IP addresses assigned to the project. +// This field is used for public NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatActiveIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { if v == nil { return nil } - return v.Config - }).(SecurityPolicyRuleMatchConfigPtrOutput) + return v.SourceNatActiveIps + }).(pulumi.StringArrayOutput) } -// 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. -// Structure is documented below. -func (o SecurityPolicyRuleMatchPtrOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { +// A list of URLs of the subnetworks used as source ranges for this NAT Rule. +// These subnetworks must have purpose set to PRIVATE_NAT. +// This field is used for private NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatActiveRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { if v == nil { return nil } - return v.Expr - }).(SecurityPolicyRuleMatchExprPtrOutput) + return v.SourceNatActiveRanges + }).(pulumi.StringArrayOutput) } -// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). -// Structure is documented below. -func (o SecurityPolicyRuleMatchPtrOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { +// A list of URLs of the IP resources to be drained. +// These IPs must be valid static external IPs that have been assigned to the NAT. +// These IPs should be used for updating/patching a NAT rule only. +// This field is used for public NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatDrainIps() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { if v == nil { return nil } - return v.ExprOptions - }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) + return v.SourceNatDrainIps + }).(pulumi.StringArrayOutput) } -// Preconfigured versioned expression. If this field is specified, config must also be specified. -// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. -// Possible values are: `SRC_IPS_V1`. -func (o SecurityPolicyRuleMatchPtrOutput) VersionedExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatch) *string { +// A list of URLs of subnetworks representing source ranges to be drained. +// This is only supported on patch/update, and these subnetworks must have previously been used as active ranges in this NAT Rule. +// This field is used for private NAT. +func (o RouterNatRuleActionPtrOutput) SourceNatDrainRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterNatRuleAction) []string { if v == nil { return nil } - return v.VersionedExpr - }).(pulumi.StringPtrOutput) + return v.SourceNatDrainRanges + }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleMatchConfig struct { - // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. - SrcIpRanges []string `pulumi:"srcIpRanges"` +type RouterNatSubnetwork struct { + // Self-link of subnetwork to NAT + Name string `pulumi:"name"` + // List of the secondary ranges of the subnetwork that are allowed + // to use NAT. This can be populated only if + // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in + // sourceIpRangesToNat + SecondaryIpRangeNames []string `pulumi:"secondaryIpRangeNames"` + // List of options for which source IPs in the subnetwork + // should have NAT enabled. Supported values include: + // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, + // `PRIMARY_IP_RANGE`. + SourceIpRangesToNats []string `pulumi:"sourceIpRangesToNats"` } -// SecurityPolicyRuleMatchConfigInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs and SecurityPolicyRuleMatchConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigInput` via: +// RouterNatSubnetworkInput is an input type that accepts RouterNatSubnetworkArgs and RouterNatSubnetworkOutput values. +// You can construct a concrete instance of `RouterNatSubnetworkInput` via: // -// SecurityPolicyRuleMatchConfigArgs{...} -type SecurityPolicyRuleMatchConfigInput interface { +// RouterNatSubnetworkArgs{...} +type RouterNatSubnetworkInput interface { pulumi.Input - ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput - ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigOutput -} - -type SecurityPolicyRuleMatchConfigArgs struct { - // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. - SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` -} - -func (SecurityPolicyRuleMatchConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() + ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput + ToRouterNatSubnetworkOutputWithContext(context.Context) RouterNatSubnetworkOutput } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { - return i.ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Background()) +type RouterNatSubnetworkArgs struct { + // Self-link of subnetwork to NAT + Name pulumi.StringInput `pulumi:"name"` + // List of the secondary ranges of the subnetwork that are allowed + // to use NAT. This can be populated only if + // `LIST_OF_SECONDARY_IP_RANGES` is one of the values in + // sourceIpRangesToNat + SecondaryIpRangeNames pulumi.StringArrayInput `pulumi:"secondaryIpRangeNames"` + // List of options for which source IPs in the subnetwork + // should have NAT enabled. Supported values include: + // `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, + // `PRIMARY_IP_RANGE`. + SourceIpRangesToNats pulumi.StringArrayInput `pulumi:"sourceIpRangesToNats"` } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput) +func (RouterNatSubnetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { - return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { + return i.ToRouterNatSubnetworkOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput).ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx) +func (i RouterNatSubnetworkArgs) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkOutput) } -// SecurityPolicyRuleMatchConfigPtrInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs, SecurityPolicyRuleMatchConfigPtr and SecurityPolicyRuleMatchConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigPtrInput` via: -// -// SecurityPolicyRuleMatchConfigArgs{...} -// -// or: +// RouterNatSubnetworkArrayInput is an input type that accepts RouterNatSubnetworkArray and RouterNatSubnetworkArrayOutput values. +// You can construct a concrete instance of `RouterNatSubnetworkArrayInput` via: // -// nil -type SecurityPolicyRuleMatchConfigPtrInput interface { +// RouterNatSubnetworkArray{ RouterNatSubnetworkArgs{...} } +type RouterNatSubnetworkArrayInput interface { pulumi.Input - ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput - ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigPtrOutput + ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput + ToRouterNatSubnetworkArrayOutputWithContext(context.Context) RouterNatSubnetworkArrayOutput } -type securityPolicyRuleMatchConfigPtrType SecurityPolicyRuleMatchConfigArgs - -func SecurityPolicyRuleMatchConfigPtr(v *SecurityPolicyRuleMatchConfigArgs) SecurityPolicyRuleMatchConfigPtrInput { - return (*securityPolicyRuleMatchConfigPtrType)(v) -} +type RouterNatSubnetworkArray []RouterNatSubnetworkInput -func (*securityPolicyRuleMatchConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() +func (RouterNatSubnetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() } -func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { - return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { + return i.ToRouterNatSubnetworkArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigPtrOutput) +func (i RouterNatSubnetworkArray) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterNatSubnetworkArrayOutput) } -type SecurityPolicyRuleMatchConfigOutput struct{ *pulumi.OutputState } +type RouterNatSubnetworkOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() +func (RouterNatSubnetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterNatSubnetwork)(nil)).Elem() } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { +func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutput() RouterNatSubnetworkOutput { return o } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { +func (o RouterNatSubnetworkOutput) ToRouterNatSubnetworkOutputWithContext(ctx context.Context) RouterNatSubnetworkOutput { return o } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { - return o.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) +// Self-link of subnetwork to NAT +func (o RouterNatSubnetworkOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterNatSubnetwork) string { return v.Name }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchConfig) *SecurityPolicyRuleMatchConfig { - return &v - }).(SecurityPolicyRuleMatchConfigPtrOutput) +// List of the secondary ranges of the subnetwork that are allowed +// to use NAT. This can be populated only if +// `LIST_OF_SECONDARY_IP_RANGES` is one of the values in +// sourceIpRangesToNat +func (o RouterNatSubnetworkOutput) SecondaryIpRangeNames() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SecondaryIpRangeNames }).(pulumi.StringArrayOutput) } -// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. -func (o SecurityPolicyRuleMatchConfigOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchConfig) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) +// List of options for which source IPs in the subnetwork +// should have NAT enabled. Supported values include: +// `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`, +// `PRIMARY_IP_RANGE`. +func (o RouterNatSubnetworkOutput) SourceIpRangesToNats() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterNatSubnetwork) []string { return v.SourceIpRangesToNats }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleMatchConfigPtrOutput struct{ *pulumi.OutputState } +type RouterNatSubnetworkArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() +func (RouterNatSubnetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterNatSubnetwork)(nil)).Elem() } -func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { +func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutput() RouterNatSubnetworkArrayOutput { return o } -func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { +func (o RouterNatSubnetworkArrayOutput) ToRouterNatSubnetworkArrayOutputWithContext(ctx context.Context) RouterNatSubnetworkArrayOutput { return o } -func (o SecurityPolicyRuleMatchConfigPtrOutput) Elem() SecurityPolicyRuleMatchConfigOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) SecurityPolicyRuleMatchConfig { - if v != nil { - return *v - } - var ret SecurityPolicyRuleMatchConfig - return ret - }).(SecurityPolicyRuleMatchConfigOutput) +func (o RouterNatSubnetworkArrayOutput) Index(i pulumi.IntInput) RouterNatSubnetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterNatSubnetwork { + return vs[0].([]RouterNatSubnetwork)[vs[1].(int)] + }).(RouterNatSubnetworkOutput) } -// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. -func (o SecurityPolicyRuleMatchConfigPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) []string { - if v == nil { - return nil - } - return v.SrcIpRanges - }).(pulumi.StringArrayOutput) -} - -type SecurityPolicyRuleMatchExpr struct { - // 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. - Expression string `pulumi:"expression"` +type RouterPeerAdvertisedIpRange struct { + // User-specified description for the IP range. + Description *string `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range string `pulumi:"range"` } -// SecurityPolicyRuleMatchExprInput is an input type that accepts SecurityPolicyRuleMatchExprArgs and SecurityPolicyRuleMatchExprOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprInput` via: +// RouterPeerAdvertisedIpRangeInput is an input type that accepts RouterPeerAdvertisedIpRangeArgs and RouterPeerAdvertisedIpRangeOutput values. +// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeInput` via: // -// SecurityPolicyRuleMatchExprArgs{...} -type SecurityPolicyRuleMatchExprInput interface { +// RouterPeerAdvertisedIpRangeArgs{...} +type RouterPeerAdvertisedIpRangeInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput - ToSecurityPolicyRuleMatchExprOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOutput -} - -type SecurityPolicyRuleMatchExprArgs struct { - // 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. - Expression pulumi.StringInput `pulumi:"expression"` -} - -func (SecurityPolicyRuleMatchExprArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() + ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput + ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeOutput } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { - return i.ToSecurityPolicyRuleMatchExprOutputWithContext(context.Background()) +type RouterPeerAdvertisedIpRangeArgs struct { + // User-specified description for the IP range. + Description pulumi.StringPtrInput `pulumi:"description"` + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range pulumi.StringInput `pulumi:"range"` } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput) +func (RouterPeerAdvertisedIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { - return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { + return i.ToRouterPeerAdvertisedIpRangeOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput).ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx) +func (i RouterPeerAdvertisedIpRangeArgs) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeOutput) } -// SecurityPolicyRuleMatchExprPtrInput is an input type that accepts SecurityPolicyRuleMatchExprArgs, SecurityPolicyRuleMatchExprPtr and SecurityPolicyRuleMatchExprPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprPtrInput` via: -// -// SecurityPolicyRuleMatchExprArgs{...} -// -// or: +// RouterPeerAdvertisedIpRangeArrayInput is an input type that accepts RouterPeerAdvertisedIpRangeArray and RouterPeerAdvertisedIpRangeArrayOutput values. +// You can construct a concrete instance of `RouterPeerAdvertisedIpRangeArrayInput` via: // -// nil -type SecurityPolicyRuleMatchExprPtrInput interface { +// RouterPeerAdvertisedIpRangeArray{ RouterPeerAdvertisedIpRangeArgs{...} } +type RouterPeerAdvertisedIpRangeArrayInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput - ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprPtrOutput + ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput + ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Context) RouterPeerAdvertisedIpRangeArrayOutput } -type securityPolicyRuleMatchExprPtrType SecurityPolicyRuleMatchExprArgs - -func SecurityPolicyRuleMatchExprPtr(v *SecurityPolicyRuleMatchExprArgs) SecurityPolicyRuleMatchExprPtrInput { - return (*securityPolicyRuleMatchExprPtrType)(v) -} +type RouterPeerAdvertisedIpRangeArray []RouterPeerAdvertisedIpRangeInput -func (*securityPolicyRuleMatchExprPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RouterPeerAdvertisedIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { - return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) +func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { + return i.ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprPtrOutput) +func (i RouterPeerAdvertisedIpRangeArray) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerAdvertisedIpRangeArrayOutput) } -type SecurityPolicyRuleMatchExprOutput struct{ *pulumi.OutputState } +type RouterPeerAdvertisedIpRangeOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RouterPeerAdvertisedIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { +func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutput() RouterPeerAdvertisedIpRangeOutput { return o } -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { +func (o RouterPeerAdvertisedIpRangeOutput) ToRouterPeerAdvertisedIpRangeOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeOutput { return o } -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { - return o.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExpr) *SecurityPolicyRuleMatchExpr { - return &v - }).(SecurityPolicyRuleMatchExprPtrOutput) +// User-specified description for the IP range. +func (o RouterPeerAdvertisedIpRangeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterPeerAdvertisedIpRange) *string { return v.Description }).(pulumi.StringPtrOutput) } -// 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. -func (o SecurityPolicyRuleMatchExprOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExpr) string { return v.Expression }).(pulumi.StringOutput) +// The IP range to advertise. The value must be a +// CIDR-formatted string. +func (o RouterPeerAdvertisedIpRangeOutput) Range() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerAdvertisedIpRange) string { return v.Range }).(pulumi.StringOutput) } -type SecurityPolicyRuleMatchExprPtrOutput struct{ *pulumi.OutputState } +type RouterPeerAdvertisedIpRangeArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() +func (RouterPeerAdvertisedIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerAdvertisedIpRange)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { +func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutput() RouterPeerAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { +func (o RouterPeerAdvertisedIpRangeArrayOutput) ToRouterPeerAdvertisedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerAdvertisedIpRangeArrayOutput { return o } -func (o SecurityPolicyRuleMatchExprPtrOutput) Elem() SecurityPolicyRuleMatchExprOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) SecurityPolicyRuleMatchExpr { - if v != nil { - return *v - } - var ret SecurityPolicyRuleMatchExpr - return ret - }).(SecurityPolicyRuleMatchExprOutput) -} - -// 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. -func (o SecurityPolicyRuleMatchExprPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) *string { - if v == nil { - return nil - } - return &v.Expression - }).(pulumi.StringPtrOutput) +func (o RouterPeerAdvertisedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterPeerAdvertisedIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterPeerAdvertisedIpRange { + return vs[0].([]RouterPeerAdvertisedIpRange)[vs[1].(int)] + }).(RouterPeerAdvertisedIpRangeOutput) } -type SecurityPolicyRuleMatchExprOptions struct { - // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. - // Structure is documented below. - RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptions `pulumi:"recaptchaOptions"` +type RouterPeerBfd struct { + // The minimum interval, in milliseconds, between BFD control packets + // received from the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the transmit interval of the other router. If set, this value + // must be between 1000 and 30000. + MinReceiveInterval *int `pulumi:"minReceiveInterval"` + // The minimum interval, in milliseconds, between BFD control packets + // transmitted to the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the corresponding receive interval of the other router. If set, + // this value must be between 1000 and 30000. + MinTransmitInterval *int `pulumi:"minTransmitInterval"` + // The number of consecutive BFD packets that must be missed before + // BFD declares that a peer is unavailable. If set, the value must + // be a value between 5 and 16. + // + // The `md5AuthenticationKey` block supports: + Multiplier *int `pulumi:"multiplier"` + // The BFD session initialization mode for this BGP peer. + // If set to `ACTIVE`, the Cloud Router will initiate the BFD session + // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait + // for the peer router to initiate the BFD session for this BGP peer. + // If set to `DISABLED`, BFD is disabled for this BGP peer. + // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. + SessionInitializationMode string `pulumi:"sessionInitializationMode"` } -// SecurityPolicyRuleMatchExprOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs and SecurityPolicyRuleMatchExprOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsInput` via: +// RouterPeerBfdInput is an input type that accepts RouterPeerBfdArgs and RouterPeerBfdOutput values. +// You can construct a concrete instance of `RouterPeerBfdInput` via: // -// SecurityPolicyRuleMatchExprOptionsArgs{...} -type SecurityPolicyRuleMatchExprOptionsInput interface { +// RouterPeerBfdArgs{...} +type RouterPeerBfdInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput - ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsOutput + ToRouterPeerBfdOutput() RouterPeerBfdOutput + ToRouterPeerBfdOutputWithContext(context.Context) RouterPeerBfdOutput } -type SecurityPolicyRuleMatchExprOptionsArgs struct { - // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. - // Structure is documented below. - RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput `pulumi:"recaptchaOptions"` +type RouterPeerBfdArgs struct { + // The minimum interval, in milliseconds, between BFD control packets + // received from the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the transmit interval of the other router. If set, this value + // must be between 1000 and 30000. + MinReceiveInterval pulumi.IntPtrInput `pulumi:"minReceiveInterval"` + // The minimum interval, in milliseconds, between BFD control packets + // transmitted to the peer router. The actual value is negotiated + // between the two routers and is equal to the greater of this value + // and the corresponding receive interval of the other router. If set, + // this value must be between 1000 and 30000. + MinTransmitInterval pulumi.IntPtrInput `pulumi:"minTransmitInterval"` + // The number of consecutive BFD packets that must be missed before + // BFD declares that a peer is unavailable. If set, the value must + // be a value between 5 and 16. + // + // The `md5AuthenticationKey` block supports: + Multiplier pulumi.IntPtrInput `pulumi:"multiplier"` + // The BFD session initialization mode for this BGP peer. + // If set to `ACTIVE`, the Cloud Router will initiate the BFD session + // for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait + // for the peer router to initiate the BFD session for this BGP peer. + // If set to `DISABLED`, BFD is disabled for this BGP peer. + // Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. + SessionInitializationMode pulumi.StringInput `pulumi:"sessionInitializationMode"` } -func (SecurityPolicyRuleMatchExprOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +func (RouterPeerBfdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Background()) +func (i RouterPeerBfdArgs) ToRouterPeerBfdOutput() RouterPeerBfdOutput { + return i.ToRouterPeerBfdOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput) +func (i RouterPeerBfdArgs) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput) } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { + return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx) +func (i RouterPeerBfdArgs) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdOutput).ToRouterPeerBfdPtrOutputWithContext(ctx) } -// SecurityPolicyRuleMatchExprOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs, SecurityPolicyRuleMatchExprOptionsPtr and SecurityPolicyRuleMatchExprOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsPtrInput` via: +// RouterPeerBfdPtrInput is an input type that accepts RouterPeerBfdArgs, RouterPeerBfdPtr and RouterPeerBfdPtrOutput values. +// You can construct a concrete instance of `RouterPeerBfdPtrInput` via: // -// SecurityPolicyRuleMatchExprOptionsArgs{...} +// RouterPeerBfdArgs{...} // // or: // // nil -type SecurityPolicyRuleMatchExprOptionsPtrInput interface { +type RouterPeerBfdPtrInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput - ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput + ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput + ToRouterPeerBfdPtrOutputWithContext(context.Context) RouterPeerBfdPtrOutput } -type securityPolicyRuleMatchExprOptionsPtrType SecurityPolicyRuleMatchExprOptionsArgs +type routerPeerBfdPtrType RouterPeerBfdArgs -func SecurityPolicyRuleMatchExprOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsArgs) SecurityPolicyRuleMatchExprOptionsPtrInput { - return (*securityPolicyRuleMatchExprOptionsPtrType)(v) +func RouterPeerBfdPtr(v *RouterPeerBfdArgs) RouterPeerBfdPtrInput { + return (*routerPeerBfdPtrType)(v) } -func (*securityPolicyRuleMatchExprOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +func (*routerPeerBfdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() } -func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { + return i.ToRouterPeerBfdPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +func (i *routerPeerBfdPtrType) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerBfdPtrOutput) } -type SecurityPolicyRuleMatchExprOptionsOutput struct{ *pulumi.OutputState } +type RouterPeerBfdOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +func (RouterPeerBfdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerBfd)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { +func (o RouterPeerBfdOutput) ToRouterPeerBfdOutput() RouterPeerBfdOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { +func (o RouterPeerBfdOutput) ToRouterPeerBfdOutputWithContext(ctx context.Context) RouterPeerBfdOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) +func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { + return o.ToRouterPeerBfdPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptions { +func (o RouterPeerBfdOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerBfd) *RouterPeerBfd { return &v - }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) + }).(RouterPeerBfdPtrOutput) } -// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. -// Structure is documented below. -func (o SecurityPolicyRuleMatchExprOptionsOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { - return v.RecaptchaOptions - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +// The minimum interval, in milliseconds, between BFD control packets +// received from the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the transmit interval of the other router. If set, this value +// must be between 1000 and 30000. +func (o RouterPeerBfdOutput) MinReceiveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinReceiveInterval }).(pulumi.IntPtrOutput) } -type SecurityPolicyRuleMatchExprOptionsPtrOutput struct{ *pulumi.OutputState } +// The minimum interval, in milliseconds, between BFD control packets +// transmitted to the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the corresponding receive interval of the other router. If set, +// this value must be between 1000 and 30000. +func (o RouterPeerBfdOutput) MinTransmitInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterPeerBfd) *int { return v.MinTransmitInterval }).(pulumi.IntPtrOutput) +} -func (SecurityPolicyRuleMatchExprOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() +// The number of consecutive BFD packets that must be missed before +// BFD declares that a peer is unavailable. If set, the value must +// be a value between 5 and 16. +// +// The `md5AuthenticationKey` block supports: +func (o RouterPeerBfdOutput) Multiplier() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouterPeerBfd) *int { return v.Multiplier }).(pulumi.IntPtrOutput) } -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { +// The BFD session initialization mode for this BGP peer. +// If set to `ACTIVE`, the Cloud Router will initiate the BFD session +// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait +// for the peer router to initiate the BFD session for this BGP peer. +// If set to `DISABLED`, BFD is disabled for this BGP peer. +// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. +func (o RouterPeerBfdOutput) SessionInitializationMode() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerBfd) string { return v.SessionInitializationMode }).(pulumi.StringOutput) +} + +type RouterPeerBfdPtrOutput struct{ *pulumi.OutputState } + +func (RouterPeerBfdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerBfd)(nil)).Elem() +} + +func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutput() RouterPeerBfdPtrOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { +func (o RouterPeerBfdPtrOutput) ToRouterPeerBfdPtrOutputWithContext(ctx context.Context) RouterPeerBfdPtrOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptions { +func (o RouterPeerBfdPtrOutput) Elem() RouterPeerBfdOutput { + return o.ApplyT(func(v *RouterPeerBfd) RouterPeerBfd { if v != nil { return *v } - var ret SecurityPolicyRuleMatchExprOptions + var ret RouterPeerBfd return ret - }).(SecurityPolicyRuleMatchExprOptionsOutput) + }).(RouterPeerBfdOutput) } -// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. -// Structure is documented below. -func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { +// The minimum interval, in milliseconds, between BFD control packets +// received from the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the transmit interval of the other router. If set, this value +// must be between 1000 and 30000. +func (o RouterPeerBfdPtrOutput) MinReceiveInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *int { if v == nil { return nil } - return &v.RecaptchaOptions - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) + return v.MinReceiveInterval + }).(pulumi.IntPtrOutput) } -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptions struct { - // 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. - ActionTokenSiteKeys []string `pulumi:"actionTokenSiteKeys"` - // 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. - SessionTokenSiteKeys []string `pulumi:"sessionTokenSiteKeys"` +// The minimum interval, in milliseconds, between BFD control packets +// transmitted to the peer router. The actual value is negotiated +// between the two routers and is equal to the greater of this value +// and the corresponding receive interval of the other router. If set, +// this value must be between 1000 and 30000. +func (o RouterPeerBfdPtrOutput) MinTransmitInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *int { + if v == nil { + return nil + } + return v.MinTransmitInterval + }).(pulumi.IntPtrOutput) } -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput` via: +// The number of consecutive BFD packets that must be missed before +// BFD declares that a peer is unavailable. If set, the value must +// be a value between 5 and 16. // -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput interface { - pulumi.Input +// The `md5AuthenticationKey` block supports: +func (o RouterPeerBfdPtrOutput) Multiplier() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *int { + if v == nil { + return nil + } + return v.Multiplier + }).(pulumi.IntPtrOutput) +} - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput +// The BFD session initialization mode for this BGP peer. +// If set to `ACTIVE`, the Cloud Router will initiate the BFD session +// for this BGP peer. If set to `PASSIVE`, the Cloud Router will wait +// for the peer router to initiate the BFD session for this BGP peer. +// If set to `DISABLED`, BFD is disabled for this BGP peer. +// Possible values are: `ACTIVE`, `DISABLED`, `PASSIVE`. +func (o RouterPeerBfdPtrOutput) SessionInitializationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterPeerBfd) *string { + if v == nil { + return nil + } + return &v.SessionInitializationMode + }).(pulumi.StringPtrOutput) } -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs struct { - // 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. - ActionTokenSiteKeys pulumi.StringArrayInput `pulumi:"actionTokenSiteKeys"` - // 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. - SessionTokenSiteKeys pulumi.StringArrayInput `pulumi:"sessionTokenSiteKeys"` +type RouterPeerCustomLearnedIpRange struct { + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range string `pulumi:"range"` } -func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +// RouterPeerCustomLearnedIpRangeInput is an input type that accepts RouterPeerCustomLearnedIpRangeArgs and RouterPeerCustomLearnedIpRangeOutput values. +// You can construct a concrete instance of `RouterPeerCustomLearnedIpRangeInput` via: +// +// RouterPeerCustomLearnedIpRangeArgs{...} +type RouterPeerCustomLearnedIpRangeInput interface { + pulumi.Input + + ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput + ToRouterPeerCustomLearnedIpRangeOutputWithContext(context.Context) RouterPeerCustomLearnedIpRangeOutput } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Background()) +type RouterPeerCustomLearnedIpRangeArgs struct { + // The IP range to advertise. The value must be a + // CIDR-formatted string. + Range pulumi.StringInput `pulumi:"range"` } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +func (RouterPeerCustomLearnedIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerCustomLearnedIpRange)(nil)).Elem() } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) +func (i RouterPeerCustomLearnedIpRangeArgs) ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput { + return i.ToRouterPeerCustomLearnedIpRangeOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx) +func (i RouterPeerCustomLearnedIpRangeArgs) ToRouterPeerCustomLearnedIpRangeOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerCustomLearnedIpRangeOutput) } -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs, SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput` via: +// RouterPeerCustomLearnedIpRangeArrayInput is an input type that accepts RouterPeerCustomLearnedIpRangeArray and RouterPeerCustomLearnedIpRangeArrayOutput values. +// You can construct a concrete instance of `RouterPeerCustomLearnedIpRangeArrayInput` via: // -// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} -// -// or: -// -// nil -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput interface { +// RouterPeerCustomLearnedIpRangeArray{ RouterPeerCustomLearnedIpRangeArgs{...} } +type RouterPeerCustomLearnedIpRangeArrayInput interface { pulumi.Input - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput - ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput + ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput + ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(context.Context) RouterPeerCustomLearnedIpRangeArrayOutput } -type securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs - -func SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput { - return (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType)(v) -} +type RouterPeerCustomLearnedIpRangeArray []RouterPeerCustomLearnedIpRangeInput -func (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +func (RouterPeerCustomLearnedIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerCustomLearnedIpRange)(nil)).Elem() } -func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) +func (i RouterPeerCustomLearnedIpRangeArray) ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput { + return i.ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) +func (i RouterPeerCustomLearnedIpRangeArray) ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerCustomLearnedIpRangeArrayOutput) } -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput struct{ *pulumi.OutputState } +type RouterPeerCustomLearnedIpRangeOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +func (RouterPeerCustomLearnedIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerCustomLearnedIpRange)(nil)).Elem() } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { +func (o RouterPeerCustomLearnedIpRangeOutput) ToRouterPeerCustomLearnedIpRangeOutput() RouterPeerCustomLearnedIpRangeOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { +func (o RouterPeerCustomLearnedIpRangeOutput) ToRouterPeerCustomLearnedIpRangeOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return o.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { - return &v - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) +// The IP range to advertise. The value must be a +// CIDR-formatted string. +func (o RouterPeerCustomLearnedIpRangeOutput) Range() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerCustomLearnedIpRange) string { return v.Range }).(pulumi.StringOutput) } -// 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. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.ActionTokenSiteKeys }).(pulumi.StringArrayOutput) -} +type RouterPeerCustomLearnedIpRangeArrayOutput struct{ *pulumi.OutputState } -// 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. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.SessionTokenSiteKeys }).(pulumi.StringArrayOutput) +func (RouterPeerCustomLearnedIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterPeerCustomLearnedIpRange)(nil)).Elem() } -type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() +func (o RouterPeerCustomLearnedIpRangeArrayOutput) ToRouterPeerCustomLearnedIpRangeArrayOutput() RouterPeerCustomLearnedIpRangeArrayOutput { + return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { +func (o RouterPeerCustomLearnedIpRangeArrayOutput) ToRouterPeerCustomLearnedIpRangeArrayOutputWithContext(ctx context.Context) RouterPeerCustomLearnedIpRangeArrayOutput { return o } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { - return o +func (o RouterPeerCustomLearnedIpRangeArrayOutput) Index(i pulumi.IntInput) RouterPeerCustomLearnedIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterPeerCustomLearnedIpRange { + return vs[0].([]RouterPeerCustomLearnedIpRange)[vs[1].(int)] + }).(RouterPeerCustomLearnedIpRangeOutput) } -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { - if v != nil { - return *v - } - var ret SecurityPolicyRuleMatchExprOptionsRecaptchaOptions - return ret - }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) +type RouterPeerMd5AuthenticationKey struct { + // Value of the key. + Key string `pulumi:"key"` + // Name of this BGP peer. The name must be 1-63 characters long, + // and comply with RFC1035. Specifically, the name must be 1-63 characters + // long and match the regular expression `a-z?` which + // means the first character must be a lowercase letter, and all + // following characters must be a dash, lowercase letter, or digit, + // except the last character, which cannot be a dash. + Name string `pulumi:"name"` } -// 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. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { - if v == nil { - return nil - } - return v.ActionTokenSiteKeys - }).(pulumi.StringArrayOutput) -} - -// 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. -func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { - if v == nil { - return nil - } - return v.SessionTokenSiteKeys - }).(pulumi.StringArrayOutput) -} - -type SecurityPolicyRulePreconfiguredWafConfig struct { - // An exclusion to apply during preconfigured WAF evaluation. - // Structure is documented below. - Exclusions []SecurityPolicyRulePreconfiguredWafConfigExclusion `pulumi:"exclusions"` -} - -// SecurityPolicyRulePreconfiguredWafConfigInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs and SecurityPolicyRulePreconfiguredWafConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigInput` via: +// RouterPeerMd5AuthenticationKeyInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs and RouterPeerMd5AuthenticationKeyOutput values. +// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigInput interface { +// RouterPeerMd5AuthenticationKeyArgs{...} +type RouterPeerMd5AuthenticationKeyInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput - ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput + ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput + ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyOutput } -type SecurityPolicyRulePreconfiguredWafConfigArgs struct { - // An exclusion to apply during preconfigured WAF evaluation. - // Structure is documented below. - Exclusions SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput `pulumi:"exclusions"` +type RouterPeerMd5AuthenticationKeyArgs struct { + // Value of the key. + Key pulumi.StringInput `pulumi:"key"` + // Name of this BGP peer. The name must be 1-63 characters long, + // and comply with RFC1035. Specifically, the name must be 1-63 characters + // long and match the regular expression `a-z?` which + // means the first character must be a lowercase letter, and all + // following characters must be a dash, lowercase letter, or digit, + // except the last character, which cannot be a dash. + Name pulumi.StringInput `pulumi:"name"` } -func (SecurityPolicyRulePreconfiguredWafConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RouterPeerMd5AuthenticationKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Background()) +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { + return i.ToRouterPeerMd5AuthenticationKeyOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput) +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput) } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { + return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput).ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx) +func (i RouterPeerMd5AuthenticationKeyArgs) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyOutput).ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx) } -// SecurityPolicyRulePreconfiguredWafConfigPtrInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs, SecurityPolicyRulePreconfiguredWafConfigPtr and SecurityPolicyRulePreconfiguredWafConfigPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigPtrInput` via: +// RouterPeerMd5AuthenticationKeyPtrInput is an input type that accepts RouterPeerMd5AuthenticationKeyArgs, RouterPeerMd5AuthenticationKeyPtr and RouterPeerMd5AuthenticationKeyPtrOutput values. +// You can construct a concrete instance of `RouterPeerMd5AuthenticationKeyPtrInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigArgs{...} +// RouterPeerMd5AuthenticationKeyArgs{...} // // or: // // nil -type SecurityPolicyRulePreconfiguredWafConfigPtrInput interface { +type RouterPeerMd5AuthenticationKeyPtrInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput - ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput + ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput + ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Context) RouterPeerMd5AuthenticationKeyPtrOutput } -type securityPolicyRulePreconfiguredWafConfigPtrType SecurityPolicyRulePreconfiguredWafConfigArgs +type routerPeerMd5AuthenticationKeyPtrType RouterPeerMd5AuthenticationKeyArgs -func SecurityPolicyRulePreconfiguredWafConfigPtr(v *SecurityPolicyRulePreconfiguredWafConfigArgs) SecurityPolicyRulePreconfiguredWafConfigPtrInput { - return (*securityPolicyRulePreconfiguredWafConfigPtrType)(v) +func RouterPeerMd5AuthenticationKeyPtr(v *RouterPeerMd5AuthenticationKeyArgs) RouterPeerMd5AuthenticationKeyPtrInput { + return (*routerPeerMd5AuthenticationKeyPtrType)(v) } -func (*securityPolicyRulePreconfiguredWafConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (*routerPeerMd5AuthenticationKeyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { + return i.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) +func (i *routerPeerMd5AuthenticationKeyPtrType) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterPeerMd5AuthenticationKeyPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigOutput struct{ *pulumi.OutputState } +type RouterPeerMd5AuthenticationKeyOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +func (RouterPeerMd5AuthenticationKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutput() RouterPeerMd5AuthenticationKeyOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { + return o.ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRulePreconfiguredWafConfig) *SecurityPolicyRulePreconfiguredWafConfig { +func (o RouterPeerMd5AuthenticationKeyOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterPeerMd5AuthenticationKey) *RouterPeerMd5AuthenticationKey { return &v - }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) + }).(RouterPeerMd5AuthenticationKeyPtrOutput) } -// An exclusion to apply during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { - return v.Exclusions - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +// Value of the key. +func (o RouterPeerMd5AuthenticationKeyOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Key }).(pulumi.StringOutput) } -type SecurityPolicyRulePreconfiguredWafConfigPtrOutput struct{ *pulumi.OutputState } +// Name of this BGP peer. The name must be 1-63 characters long, +// and comply with RFC1035. Specifically, the name must be 1-63 characters +// long and match the regular expression `a-z?` which +// means the first character must be a lowercase letter, and all +// following characters must be a dash, lowercase letter, or digit, +// except the last character, which cannot be a dash. +func (o RouterPeerMd5AuthenticationKeyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterPeerMd5AuthenticationKey) string { return v.Name }).(pulumi.StringOutput) +} -func (SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() +type RouterPeerMd5AuthenticationKeyPtrOutput struct{ *pulumi.OutputState } + +func (RouterPeerMd5AuthenticationKeyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterPeerMd5AuthenticationKey)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { +func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutput() RouterPeerMd5AuthenticationKeyPtrOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { +func (o RouterPeerMd5AuthenticationKeyPtrOutput) ToRouterPeerMd5AuthenticationKeyPtrOutputWithContext(ctx context.Context) RouterPeerMd5AuthenticationKeyPtrOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Elem() SecurityPolicyRulePreconfiguredWafConfigOutput { - return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) SecurityPolicyRulePreconfiguredWafConfig { +func (o RouterPeerMd5AuthenticationKeyPtrOutput) Elem() RouterPeerMd5AuthenticationKeyOutput { + return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) RouterPeerMd5AuthenticationKey { if v != nil { return *v } - var ret SecurityPolicyRulePreconfiguredWafConfig + var ret RouterPeerMd5AuthenticationKey return ret - }).(SecurityPolicyRulePreconfiguredWafConfigOutput) + }).(RouterPeerMd5AuthenticationKeyOutput) } -// An exclusion to apply during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { +// Value of the key. +func (o RouterPeerMd5AuthenticationKeyPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { if v == nil { return nil } - return v.Exclusions - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) + return &v.Key + }).(pulumi.StringPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusion struct { - // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestCookies []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky `pulumi:"requestCookies"` - // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestHeaders []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader `pulumi:"requestHeaders"` - // 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. +// Name of this BGP peer. The name must be 1-63 characters long, +// and comply with RFC1035. Specifically, the name must be 1-63 characters +// long and match the regular expression `a-z?` which +// means the first character must be a lowercase letter, and all +// following characters must be a dash, lowercase letter, or digit, +// except the last character, which cannot be a dash. +func (o RouterPeerMd5AuthenticationKeyPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterPeerMd5AuthenticationKey) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +type RouterRoutePolicyTerm struct { + // 'CEL expressions to evaluate to modify a route when this term matches.'\ // Structure is documented below. - RequestQueryParams []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam `pulumi:"requestQueryParams"` - // 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. + Actions []RouterRoutePolicyTermAction `pulumi:"actions"` + // CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. // Structure is documented below. - RequestUris []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri `pulumi:"requestUris"` - // 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. - TargetRuleIds []string `pulumi:"targetRuleIds"` - // Target WAF rule set to apply the preconfigured WAF exclusion. - TargetRuleSet string `pulumi:"targetRuleSet"` + Match *RouterRoutePolicyTermMatch `pulumi:"match"` + // The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + Priority int `pulumi:"priority"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionInput` via: +// RouterRoutePolicyTermInput is an input type that accepts RouterRoutePolicyTermArgs and RouterRoutePolicyTermOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionInput interface { +// RouterRoutePolicyTermArgs{...} +type RouterRoutePolicyTermInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput + ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput + ToRouterRoutePolicyTermOutputWithContext(context.Context) RouterRoutePolicyTermOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArgs struct { - // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestCookies SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput `pulumi:"requestCookies"` - // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. - // Structure is documented below. - RequestHeaders SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput `pulumi:"requestHeaders"` - // 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. +type RouterRoutePolicyTermArgs struct { + // 'CEL expressions to evaluate to modify a route when this term matches.'\ // Structure is documented below. - RequestQueryParams SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput `pulumi:"requestQueryParams"` - // 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. + Actions RouterRoutePolicyTermActionArrayInput `pulumi:"actions"` + // CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. // Structure is documented below. - RequestUris SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput `pulumi:"requestUris"` - // 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. - TargetRuleIds pulumi.StringArrayInput `pulumi:"targetRuleIds"` - // Target WAF rule set to apply the preconfigured WAF exclusion. - TargetRuleSet pulumi.StringInput `pulumi:"targetRuleSet"` + Match RouterRoutePolicyTermMatchPtrInput `pulumi:"match"` + // The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + Priority pulumi.IntInput `pulumi:"priority"` } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RouterRoutePolicyTermArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTerm)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermArgs) ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput { + return i.ToRouterRoutePolicyTermOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +func (i RouterRoutePolicyTermArgs) ToRouterRoutePolicyTermOutputWithContext(ctx context.Context) RouterRoutePolicyTermOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermOutput) } -// SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArray and SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput` via: +// RouterRoutePolicyTermArrayInput is an input type that accepts RouterRoutePolicyTermArray and RouterRoutePolicyTermArrayOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermArrayInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput interface { +// RouterRoutePolicyTermArray{ RouterRoutePolicyTermArgs{...} } +type RouterRoutePolicyTermArrayInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput + ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput + ToRouterRoutePolicyTermArrayOutputWithContext(context.Context) RouterRoutePolicyTermArrayOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArray []SecurityPolicyRulePreconfiguredWafConfigExclusionInput +type RouterRoutePolicyTermArray []RouterRoutePolicyTermInput -func (SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RouterRoutePolicyTermArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTerm)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermArray) ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput { + return i.ToRouterRoutePolicyTermArrayOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) +func (i RouterRoutePolicyTermArray) ToRouterRoutePolicyTermArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermArrayOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionOutput struct{ *pulumi.OutputState } +type RouterRoutePolicyTermOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RouterRoutePolicyTermOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTerm)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { +func (o RouterRoutePolicyTermOutput) ToRouterRoutePolicyTermOutput() RouterRoutePolicyTermOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { +func (o RouterRoutePolicyTermOutput) ToRouterRoutePolicyTermOutputWithContext(ctx context.Context) RouterRoutePolicyTermOutput { return o } -// Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestCookies() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { - return v.RequestCookies - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) -} - -// Request header whose value will be excluded from inspection during preconfigured WAF evaluation. -// Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestHeaders() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { - return v.RequestHeaders - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) -} - -// 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. +// 'CEL expressions to evaluate to modify a route when this term matches.'\ // Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestQueryParams() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { - return v.RequestQueryParams - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) +func (o RouterRoutePolicyTermOutput) Actions() RouterRoutePolicyTermActionArrayOutput { + return o.ApplyT(func(v RouterRoutePolicyTerm) []RouterRoutePolicyTermAction { return v.Actions }).(RouterRoutePolicyTermActionArrayOutput) } -// 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. +// CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. // Structure is documented below. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestUris() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { - return v.RequestUris - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) -} - -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleIds() pulumi.StringArrayOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []string { return v.TargetRuleIds }).(pulumi.StringArrayOutput) +func (o RouterRoutePolicyTermOutput) Match() RouterRoutePolicyTermMatchPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTerm) *RouterRoutePolicyTermMatch { return v.Match }).(RouterRoutePolicyTermMatchPtrOutput) } -// Target WAF rule set to apply the preconfigured WAF exclusion. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleSet() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) string { return v.TargetRuleSet }).(pulumi.StringOutput) +// The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. +func (o RouterRoutePolicyTermOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RouterRoutePolicyTerm) int { return v.Priority }).(pulumi.IntOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput struct{ *pulumi.OutputState } +type RouterRoutePolicyTermArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() +func (RouterRoutePolicyTermArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTerm)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { +func (o RouterRoutePolicyTermArrayOutput) ToRouterRoutePolicyTermArrayOutput() RouterRoutePolicyTermArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { +func (o RouterRoutePolicyTermArrayOutput) ToRouterRoutePolicyTermArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusion { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusion)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +func (o RouterRoutePolicyTermArrayOutput) Index(i pulumi.IntInput) RouterRoutePolicyTermOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterRoutePolicyTerm { + return vs[0].([]RouterRoutePolicyTerm)[vs[1].(int)] + }).(RouterRoutePolicyTermOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky struct { - // 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. - Operator string `pulumi:"operator"` - // 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. - Value *string `pulumi:"value"` +type RouterRoutePolicyTermAction struct { + // Description of the expression + Description *string `pulumi:"description"` + // Textual representation of an expression in Common Expression + // Language syntax. + Expression string `pulumi:"expression"` + // String indicating the location of the expression for error + // reporting, e.g. a file name and a position in the file + // + // *** + Location *string `pulumi:"location"` + // Title for the expression, i.e. a short string describing its + // purpose. + Title *string `pulumi:"title"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput` via: +// RouterRoutePolicyTermActionInput is an input type that accepts RouterRoutePolicyTermActionArgs and RouterRoutePolicyTermActionOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermActionInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput interface { +// RouterRoutePolicyTermActionArgs{...} +type RouterRoutePolicyTermActionInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput + ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput + ToRouterRoutePolicyTermActionOutputWithContext(context.Context) RouterRoutePolicyTermActionOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs struct { - // 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. - Operator pulumi.StringInput `pulumi:"operator"` - // 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. - Value pulumi.StringPtrInput `pulumi:"value"` +type RouterRoutePolicyTermActionArgs struct { + // Description of the expression + Description pulumi.StringPtrInput `pulumi:"description"` + // Textual representation of an expression in Common Expression + // Language syntax. + Expression pulumi.StringInput `pulumi:"expression"` + // String indicating the location of the expression for error + // reporting, e.g. a file name and a position in the file + // + // *** + Location pulumi.StringPtrInput `pulumi:"location"` + // Title for the expression, i.e. a short string describing its + // purpose. + Title pulumi.StringPtrInput `pulumi:"title"` } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RouterRoutePolicyTermActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermAction)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermActionArgs) ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput { + return i.ToRouterRoutePolicyTermActionOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +func (i RouterRoutePolicyTermActionArgs) ToRouterRoutePolicyTermActionOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermActionOutput) } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput` via: +// RouterRoutePolicyTermActionArrayInput is an input type that accepts RouterRoutePolicyTermActionArray and RouterRoutePolicyTermActionArrayOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermActionArrayInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput interface { +// RouterRoutePolicyTermActionArray{ RouterRoutePolicyTermActionArgs{...} } +type RouterRoutePolicyTermActionArrayInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput + ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput + ToRouterRoutePolicyTermActionArrayOutputWithContext(context.Context) RouterRoutePolicyTermActionArrayOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput +type RouterRoutePolicyTermActionArray []RouterRoutePolicyTermActionInput -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RouterRoutePolicyTermActionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTermAction)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermActionArray) ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput { + return i.ToRouterRoutePolicyTermActionArrayOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) +func (i RouterRoutePolicyTermActionArray) ToRouterRoutePolicyTermActionArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermActionArrayOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput struct{ *pulumi.OutputState } +type RouterRoutePolicyTermActionOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +func (RouterRoutePolicyTermActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermAction)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { +func (o RouterRoutePolicyTermActionOutput) ToRouterRoutePolicyTermActionOutput() RouterRoutePolicyTermActionOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { +func (o RouterRoutePolicyTermActionOutput) ToRouterRoutePolicyTermActionOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionOutput { return o } -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) string { return v.Operator }).(pulumi.StringOutput) +// Description of the expression +func (o RouterRoutePolicyTermActionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Description }).(pulumi.StringPtrOutput) } -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) *string { return v.Value }).(pulumi.StringPtrOutput) +// Textual representation of an expression in Common Expression +// Language syntax. +func (o RouterRoutePolicyTermActionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) string { return v.Expression }).(pulumi.StringOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput struct{ *pulumi.OutputState } +// String indicating the location of the expression for error +// reporting, e.g. a file name and a position in the file +// +// *** +func (o RouterRoutePolicyTermActionOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Location }).(pulumi.StringPtrOutput) +} -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() +// Title for the expression, i.e. a short string describing its +// purpose. +func (o RouterRoutePolicyTermActionOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermAction) *string { return v.Title }).(pulumi.StringPtrOutput) } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { +type RouterRoutePolicyTermActionArrayOutput struct{ *pulumi.OutputState } + +func (RouterRoutePolicyTermActionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterRoutePolicyTermAction)(nil)).Elem() +} + +func (o RouterRoutePolicyTermActionArrayOutput) ToRouterRoutePolicyTermActionArrayOutput() RouterRoutePolicyTermActionArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { +func (o RouterRoutePolicyTermActionArrayOutput) ToRouterRoutePolicyTermActionArrayOutputWithContext(ctx context.Context) RouterRoutePolicyTermActionArrayOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) +func (o RouterRoutePolicyTermActionArrayOutput) Index(i pulumi.IntInput) RouterRoutePolicyTermActionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterRoutePolicyTermAction { + return vs[0].([]RouterRoutePolicyTermAction)[vs[1].(int)] + }).(RouterRoutePolicyTermActionOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader struct { - // 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. - Operator string `pulumi:"operator"` - // 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. - Value *string `pulumi:"value"` +type RouterRoutePolicyTermMatch struct { + // Description of the expression + Description *string `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression string `pulumi:"expression"` + // String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + Location *string `pulumi:"location"` + // Title for the expression, i.e. a short string describing its purpose. + Title *string `pulumi:"title"` } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput` via: +// RouterRoutePolicyTermMatchInput is an input type that accepts RouterRoutePolicyTermMatchArgs and RouterRoutePolicyTermMatchOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermMatchInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput interface { +// RouterRoutePolicyTermMatchArgs{...} +type RouterRoutePolicyTermMatchInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput + ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput + ToRouterRoutePolicyTermMatchOutputWithContext(context.Context) RouterRoutePolicyTermMatchOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs struct { - // 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. - Operator pulumi.StringInput `pulumi:"operator"` - // 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. - Value pulumi.StringPtrInput `pulumi:"value"` +type RouterRoutePolicyTermMatchArgs struct { + // Description of the expression + Description pulumi.StringPtrInput `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression pulumi.StringInput `pulumi:"expression"` + // String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + Location pulumi.StringPtrInput `pulumi:"location"` + // Title for the expression, i.e. a short string describing its purpose. + Title pulumi.StringPtrInput `pulumi:"title"` } -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func (RouterRoutePolicyTermMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermMatch)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Background()) +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput { + return i.ToRouterRoutePolicyTermMatchOutputWithContext(context.Background()) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchOutput) } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput` via: +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return i.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) +} + +func (i RouterRoutePolicyTermMatchArgs) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchOutput).ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx) +} + +// RouterRoutePolicyTermMatchPtrInput is an input type that accepts RouterRoutePolicyTermMatchArgs, RouterRoutePolicyTermMatchPtr and RouterRoutePolicyTermMatchPtrOutput values. +// You can construct a concrete instance of `RouterRoutePolicyTermMatchPtrInput` via: // -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput interface { +// RouterRoutePolicyTermMatchArgs{...} +// +// or: +// +// nil +type RouterRoutePolicyTermMatchPtrInput interface { pulumi.Input - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput + ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput + ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Context) RouterRoutePolicyTermMatchPtrOutput } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput +type routerRoutePolicyTermMatchPtrType RouterRoutePolicyTermMatchArgs -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +func RouterRoutePolicyTermMatchPtr(v *RouterRoutePolicyTermMatchArgs) RouterRoutePolicyTermMatchPtrInput { + return (*routerRoutePolicyTermMatchPtrType)(v) } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Background()) +func (*routerRoutePolicyTermMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouterRoutePolicyTermMatch)(nil)).Elem() } -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) +func (i *routerRoutePolicyTermMatchPtrType) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return i.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput struct{ *pulumi.OutputState } +func (i *routerRoutePolicyTermMatchPtrType) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyTermMatchPtrOutput) +} -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +type RouterRoutePolicyTermMatchOutput struct{ *pulumi.OutputState } + +func (RouterRoutePolicyTermMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterRoutePolicyTermMatch)(nil)).Elem() } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchOutput() RouterRoutePolicyTermMatchOutput { return o } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchOutput { return o } -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) string { return v.Operator }).(pulumi.StringOutput) +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return o.ToRouterRoutePolicyTermMatchPtrOutputWithContext(context.Background()) } -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) *string { return v.Value }).(pulumi.StringPtrOutput) +func (o RouterRoutePolicyTermMatchOutput) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v RouterRoutePolicyTermMatch) *RouterRoutePolicyTermMatch { + return &v + }).(RouterRoutePolicyTermMatchPtrOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput struct{ *pulumi.OutputState } +// Description of the expression +func (o RouterRoutePolicyTermMatchOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Description }).(pulumi.StringPtrOutput) +} -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() +// Textual representation of an expression in Common Expression Language syntax. +func (o RouterRoutePolicyTermMatchOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) string { return v.Expression }).(pulumi.StringOutput) } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return o +// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file +func (o RouterRoutePolicyTermMatchOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Location }).(pulumi.StringPtrOutput) } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { - return o +// Title for the expression, i.e. a short string describing its purpose. +func (o RouterRoutePolicyTermMatchOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouterRoutePolicyTermMatch) *string { return v.Title }).(pulumi.StringPtrOutput) } -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) +type RouterRoutePolicyTermMatchPtrOutput struct{ *pulumi.OutputState } + +func (RouterRoutePolicyTermMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterRoutePolicyTermMatch)(nil)).Elem() } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam struct { - // 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. - Operator string `pulumi:"operator"` - // 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. - Value *string `pulumi:"value"` +func (o RouterRoutePolicyTermMatchPtrOutput) ToRouterRoutePolicyTermMatchPtrOutput() RouterRoutePolicyTermMatchPtrOutput { + return o } -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput` via: -// -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput interface { - pulumi.Input +func (o RouterRoutePolicyTermMatchPtrOutput) ToRouterRoutePolicyTermMatchPtrOutputWithContext(ctx context.Context) RouterRoutePolicyTermMatchPtrOutput { + return o +} - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput +func (o RouterRoutePolicyTermMatchPtrOutput) Elem() RouterRoutePolicyTermMatchOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) RouterRoutePolicyTermMatch { + if v != nil { + return *v + } + var ret RouterRoutePolicyTermMatch + return ret + }).(RouterRoutePolicyTermMatchOutput) } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs struct { - // 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. - Operator pulumi.StringInput `pulumi:"operator"` - // 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. - Value pulumi.StringPtrInput `pulumi:"value"` -} - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) -} - -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput` via: -// -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput interface { - pulumi.Input - - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return o -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return o -} - -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) string { return v.Operator }).(pulumi.StringOutput) -} - -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) *string { return v.Value }).(pulumi.StringPtrOutput) -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return o -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { - return o -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri struct { - // 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. - Operator string `pulumi:"operator"` - // 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. - Value *string `pulumi:"value"` -} - -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput` via: -// -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput interface { - pulumi.Input - - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs struct { - // 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. - Operator pulumi.StringInput `pulumi:"operator"` - // 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. - Value pulumi.StringPtrInput `pulumi:"value"` -} - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) -} - -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput` via: -// -// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} } -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput interface { - pulumi.Input - - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput - ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return o -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return o -} - -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Operator() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) string { return v.Operator }).(pulumi.StringOutput) -} - -// 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. -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Value() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) *string { return v.Value }).(pulumi.StringPtrOutput) -} - -type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return o -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { - return o -} - -func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { - return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)[vs[1].(int)] - }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) -} - -type SecurityPolicyRuleRateLimitOptions struct { - // Can only be specified if the action for the rule is "rateBasedBan". - // 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. - BanDurationSec *int `pulumi:"banDurationSec"` - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. - // Structure is documented below. - BanThreshold *SecurityPolicyRuleRateLimitOptionsBanThreshold `pulumi:"banThreshold"` - // Action to take for requests that are under the configured rate limit threshold. - // Valid option is "allow" only. - ConformAction *string `pulumi:"conformAction"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * 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. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * 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. - // * 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. - // * 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. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * 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. - // * REGION_CODE: The country/region from which the request originates. - // * 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. - // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKey *string `pulumi:"enforceOnKey"` - // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. - // You can specify up to 3 enforceOnKeyConfigs. - // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. - // Structure is documented below. - EnforceOnKeyConfigs []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `pulumi:"enforceOnKeyConfigs"` - // 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. - EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` - // 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. - ExceedAction *string `pulumi:"exceedAction"` - // 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. - // Structure is documented below. - ExceedRedirectOptions *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions `pulumi:"exceedRedirectOptions"` - // Threshold at which to begin ratelimiting. - // Structure is documented below. - RateLimitThreshold *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold `pulumi:"rateLimitThreshold"` -} - -// SecurityPolicyRuleRateLimitOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs and SecurityPolicyRuleRateLimitOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsInput` via: -// -// SecurityPolicyRuleRateLimitOptionsArgs{...} -type SecurityPolicyRuleRateLimitOptionsInput interface { - pulumi.Input - - ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput - ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsOutput -} - -type SecurityPolicyRuleRateLimitOptionsArgs struct { - // Can only be specified if the action for the rule is "rateBasedBan". - // 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. - BanDurationSec pulumi.IntPtrInput `pulumi:"banDurationSec"` - // Can only be specified if the action for the rule is "rateBasedBan". - // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. - // Structure is documented below. - BanThreshold SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput `pulumi:"banThreshold"` - // Action to take for requests that are under the configured rate limit threshold. - // Valid option is "allow" only. - ConformAction pulumi.StringPtrInput `pulumi:"conformAction"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * 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. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * 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. - // * 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. - // * 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. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * 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. - // * REGION_CODE: The country/region from which the request originates. - // * 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. - // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKey pulumi.StringPtrInput `pulumi:"enforceOnKey"` - // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. - // You can specify up to 3 enforceOnKeyConfigs. - // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. - // Structure is documented below. - EnforceOnKeyConfigs SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput `pulumi:"enforceOnKeyConfigs"` - // 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. - EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` - // 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. - ExceedAction pulumi.StringPtrInput `pulumi:"exceedAction"` - // 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. - // Structure is documented below. - ExceedRedirectOptions SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput `pulumi:"exceedRedirectOptions"` - // Threshold at which to begin ratelimiting. - // Structure is documented below. - RateLimitThreshold SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput `pulumi:"rateLimitThreshold"` -} - -func (SecurityPolicyRuleRateLimitOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() -} - -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput) -} - -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) -} - -func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx) -} - -// SecurityPolicyRuleRateLimitOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs, SecurityPolicyRuleRateLimitOptionsPtr and SecurityPolicyRuleRateLimitOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsPtrInput` via: -// -// SecurityPolicyRuleRateLimitOptionsArgs{...} -// -// or: -// -// nil -type SecurityPolicyRuleRateLimitOptionsPtrInput interface { - pulumi.Input - - ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput - ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput -} - -type securityPolicyRuleRateLimitOptionsPtrType SecurityPolicyRuleRateLimitOptionsArgs - -func SecurityPolicyRuleRateLimitOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsArgs) SecurityPolicyRuleRateLimitOptionsPtrInput { - return (*securityPolicyRuleRateLimitOptionsPtrType)(v) -} - -func (*securityPolicyRuleRateLimitOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() -} - -func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) -} - -func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsPtrOutput) -} - -type SecurityPolicyRuleRateLimitOptionsOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleRateLimitOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() -} - -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { - return o -} - -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { - return o -} - -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptions { - return &v - }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) -} - -// Can only be specified if the action for the rule is "rateBasedBan". -// 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. -func (o SecurityPolicyRuleRateLimitOptionsOutput) BanDurationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *int { return v.BanDurationSec }).(pulumi.IntPtrOutput) -} - -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { - return v.BanThreshold - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) -} - -// Action to take for requests that are under the configured rate limit threshold. -// Valid option is "allow" only. -func (o SecurityPolicyRuleRateLimitOptionsOutput) ConformAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ConformAction }).(pulumi.StringPtrOutput) -} - -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - 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. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - 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. -// - 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. -// - 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. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - 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. -// - REGION_CODE: The country/region from which the request originates. -// - 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. -// - 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKey }).(pulumi.StringPtrOutput) -} - -// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. -// You can specify up to 3 enforceOnKeyConfigs. -// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - return v.EnforceOnKeyConfigs - }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) -} - -// 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. -func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) -} - -// 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. -func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ExceedAction }).(pulumi.StringPtrOutput) -} - -// 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. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { - return v.ExceedRedirectOptions - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) -} - -// Threshold at which to begin ratelimiting. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - return v.RateLimitThreshold - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) -} - -type SecurityPolicyRuleRateLimitOptionsPtrOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleRateLimitOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() -} - -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o -} - -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { - return o -} - -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) SecurityPolicyRuleRateLimitOptions { - if v != nil { - return *v - } - var ret SecurityPolicyRuleRateLimitOptions - return ret - }).(SecurityPolicyRuleRateLimitOptionsOutput) -} - -// Can only be specified if the action for the rule is "rateBasedBan". -// 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. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanDurationSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *int { - if v == nil { - return nil - } - return v.BanDurationSec - }).(pulumi.IntPtrOutput) -} - -// Can only be specified if the action for the rule is "rateBasedBan". -// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { +// Description of the expression +func (o RouterRoutePolicyTermMatchPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { if v == nil { return nil } - return v.BanThreshold - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) -} - -// Action to take for requests that are under the configured rate limit threshold. -// Valid option is "allow" only. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ConformAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { - if v == nil { - return nil - } - return v.ConformAction + return v.Description }).(pulumi.StringPtrOutput) } -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - 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. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - 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. -// - 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. -// - 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. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - 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. -// - REGION_CODE: The country/region from which the request originates. -// - 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. -// - 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { +// Textual representation of an expression in Common Expression Language syntax. +func (o RouterRoutePolicyTermMatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { if v == nil { return nil } - return v.EnforceOnKey + return &v.Expression }).(pulumi.StringPtrOutput) } -// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. -// You can specify up to 3 enforceOnKeyConfigs. -// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - if v == nil { - return nil - } - return v.EnforceOnKeyConfigs - }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) -} - -// 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. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { +// String indicating the location of the expression for error reporting, e.g. a file name and a position in the file +func (o RouterRoutePolicyTermMatchPtrOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { if v == nil { return nil } - return v.EnforceOnKeyName + return v.Location }).(pulumi.StringPtrOutput) } -// 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedAction() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { +// Title for the expression, i.e. a short string describing its purpose. +func (o RouterRoutePolicyTermMatchPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicyTermMatch) *string { if v == nil { return nil } - return v.ExceedAction + return v.Title }).(pulumi.StringPtrOutput) } -// 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. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { - if v == nil { - return nil - } - return v.ExceedRedirectOptions - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) -} - -// Threshold at which to begin ratelimiting. -// Structure is documented below. -func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { - if v == nil { - return nil - } - return v.RateLimitThreshold - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) -} - -type SecurityPolicyRuleRateLimitOptionsBanThreshold struct { - // Number of HTTP(S) requests for calculating the threshold. - Count *int `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec *int `pulumi:"intervalSec"` +type RouterStatusBestRoute struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description string `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange string `pulumi:"destRange"` + // The name of the router. + Name string `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network string `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway string `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb string `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance string `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` + // Network IP address of an instance that should handle matching packets. + NextHopIp string `pulumi:"nextHopIp"` + // URL to a Network that should handle matching packets. + NextHopNetwork string `pulumi:"nextHopNetwork"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority int `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project string `pulumi:"project"` + SelfLink string `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags []string `pulumi:"tags"` } -// SecurityPolicyRuleRateLimitOptionsBanThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs and SecurityPolicyRuleRateLimitOptionsBanThresholdOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdInput` via: +// RouterStatusBestRouteInput is an input type that accepts RouterStatusBestRouteArgs and RouterStatusBestRouteOutput values. +// You can construct a concrete instance of `RouterStatusBestRouteInput` via: // -// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} -type SecurityPolicyRuleRateLimitOptionsBanThresholdInput interface { +// RouterStatusBestRouteArgs{...} +type RouterStatusBestRouteInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput - ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput -} - -type SecurityPolicyRuleRateLimitOptionsBanThresholdArgs struct { - // Number of HTTP(S) requests for calculating the threshold. - Count pulumi.IntPtrInput `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` -} - -func (SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() + ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput + ToRouterStatusBestRouteOutputWithContext(context.Context) RouterStatusBestRouteOutput } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Background()) +type RouterStatusBestRouteArgs struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description pulumi.StringInput `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange pulumi.StringInput `pulumi:"destRange"` + // The name of the router. + Name pulumi.StringInput `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network pulumi.StringInput `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` + // Network IP address of an instance that should handle matching packets. + NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` + // URL to a Network that should handle matching packets. + NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority pulumi.IntInput `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project pulumi.StringInput `pulumi:"project"` + SelfLink pulumi.StringInput `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags pulumi.StringArrayInput `pulumi:"tags"` } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) +func (RouterStatusBestRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { + return i.ToRouterStatusBestRouteOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx) +func (i RouterStatusBestRouteArgs) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteOutput) } -// SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs, SecurityPolicyRuleRateLimitOptionsBanThresholdPtr and SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput` via: -// -// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} -// -// or: +// RouterStatusBestRouteArrayInput is an input type that accepts RouterStatusBestRouteArray and RouterStatusBestRouteArrayOutput values. +// You can construct a concrete instance of `RouterStatusBestRouteArrayInput` via: // -// nil -type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput interface { +// RouterStatusBestRouteArray{ RouterStatusBestRouteArgs{...} } +type RouterStatusBestRouteArrayInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput - ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput + ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput + ToRouterStatusBestRouteArrayOutputWithContext(context.Context) RouterStatusBestRouteArrayOutput } -type securityPolicyRuleRateLimitOptionsBanThresholdPtrType SecurityPolicyRuleRateLimitOptionsBanThresholdArgs - -func SecurityPolicyRuleRateLimitOptionsBanThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput { - return (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType)(v) -} +type RouterStatusBestRouteArray []RouterStatusBestRouteInput -func (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() +func (RouterStatusBestRouteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() } -func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) +func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { + return i.ToRouterStatusBestRouteArrayOutputWithContext(context.Background()) } -func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) +func (i RouterStatusBestRouteArray) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRouteArrayOutput) } -type SecurityPolicyRuleRateLimitOptionsBanThresholdOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() -} +type RouterStatusBestRouteOutput struct{ *pulumi.OutputState } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return o +func (RouterStatusBestRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoute)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { +func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutput() RouterStatusBestRouteOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) -} - -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsBanThreshold) *SecurityPolicyRuleRateLimitOptionsBanThreshold { - return &v - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) -} - -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) -} - -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) -} - -type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput struct{ *pulumi.OutputState } - -func (SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() -} - -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { +func (o RouterStatusBestRouteOutput) ToRouterStatusBestRouteOutputWithContext(ctx context.Context) RouterStatusBestRouteOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { - return o +// An optional description of this resource. Provide this property +// when you create the resource. +func (o RouterStatusBestRouteOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Description }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) SecurityPolicyRuleRateLimitOptionsBanThreshold { - if v != nil { - return *v - } - var ret SecurityPolicyRuleRateLimitOptionsBanThreshold - return ret - }).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) +// The destination range of outgoing packets that this route applies to. +// Only IPv4 is supported. +func (o RouterStatusBestRouteOutput) DestRange() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.DestRange }).(pulumi.StringOutput) } -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { - if v == nil { - return nil - } - return v.Count - }).(pulumi.IntPtrOutput) +// The name of the router. +func (o RouterStatusBestRouteOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Name }).(pulumi.StringOutput) } -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { - if v == nil { - return nil - } - return v.IntervalSec - }).(pulumi.IntPtrOutput) +// The network name or resource link to the parent +// network of this subnetwork. +func (o RouterStatusBestRouteOutput) Network() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Network }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { - // 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. - EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * 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. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * 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. - // * 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. - // * 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. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * 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. - // * REGION_CODE: The country/region from which the request originates. - // * 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. - // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKeyType *string `pulumi:"enforceOnKeyType"` +// URL to a gateway that should handle matching packets. +// Currently, you can only specify the internet gateway, using a full or +// partial valid URL: +// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' +// * 'projects/project/global/gateways/default-internet-gateway' +// * 'global/gateways/default-internet-gateway' +// * The string 'default-internet-gateway'. +func (o RouterStatusBestRouteOutput) NextHopGateway() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopGateway }).(pulumi.StringOutput) } -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput` via: +// The IP address or URL to a forwarding rule of type +// loadBalancingScheme=INTERNAL that should handle matching +// packets. // -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput interface { - pulumi.Input +// With the GA provider you can only specify the forwarding +// rule as a partial or full URL. For example, the following +// are all valid values: +// * 10.128.0.56 +// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule +// * regions/region/forwardingRules/forwardingRule +// +// When the beta provider, you can also specify the IP address +// of a forwarding rule from the same VPC or any peered VPC. +// +// Note that this can only be used when the destinationRange is +// a public (non-RFC 1918) IP CIDR range. +func (o RouterStatusBestRouteOutput) NextHopIlb() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIlb }).(pulumi.StringOutput) +} - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput +// URL to an instance that should handle matching packets. +// You can specify this as a full or partial URL. For example: +// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' +// * 'projects/project/zones/zone/instances/instance' +// * 'zones/zone/instances/instance' +// * Just the instance name, with the zone in 'next_hop_instance_zone'. +func (o RouterStatusBestRouteOutput) NextHopInstance() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstance }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs struct { - // 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. - EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` - // Determines the key to enforce the rateLimitThreshold on. Possible values are: - // * 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. - // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - // * 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. - // * 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. - // * 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. - // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - // * 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. - // * REGION_CODE: The country/region from which the request originates. - // * 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. - // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. - EnforceOnKeyType pulumi.StringPtrInput `pulumi:"enforceOnKeyType"` +// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. +func (o RouterStatusBestRouteOutput) NextHopInstanceZone() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) } -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +// Network IP address of an instance that should handle matching packets. +func (o RouterStatusBestRouteOutput) NextHopIp() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopIp }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Background()) +// URL to a Network that should handle matching packets. +func (o RouterStatusBestRouteOutput) NextHopNetwork() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopNetwork }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +// URL to a VpnTunnel that should handle matching packets. +func (o RouterStatusBestRouteOutput) NextHopVpnTunnel() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) } -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput` via: +// The priority of this route. Priority is used to break ties in cases +// where there is more than one matching route of equal prefix length. // -// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{ SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput interface { - pulumi.Input - - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput - ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput +// In the case of two routes with equal prefix length, the one with the +// lowest-numbered priority value wins. +// +// Default value is 1000. Valid range is 0 through 65535. +func (o RouterStatusBestRouteOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RouterStatusBestRoute) int { return v.Priority }).(pulumi.IntOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput - -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +// The ID of the project in which the resource +// belongs. If it is not provided, the provider project is used. +func (o RouterStatusBestRouteOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.Project }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Background()) +func (o RouterStatusBestRouteOutput) SelfLink() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoute) string { return v.SelfLink }).(pulumi.StringOutput) } -func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +// A list of instance tags to which this route applies. +func (o RouterStatusBestRouteOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterStatusBestRoute) []string { return v.Tags }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput struct{ *pulumi.OutputState } +type RouterStatusBestRouteArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +func (RouterStatusBestRouteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoute)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { +func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutput() RouterStatusBestRouteArrayOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { +func (o RouterStatusBestRouteArrayOutput) ToRouterStatusBestRouteArrayOutputWithContext(ctx context.Context) RouterStatusBestRouteArrayOutput { return o } -// 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. -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyName() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +func (o RouterStatusBestRouteArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRouteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoute { + return vs[0].([]RouterStatusBestRoute)[vs[1].(int)] + }).(RouterStatusBestRouteOutput) } -// Determines the key to enforce the rateLimitThreshold on. Possible values are: -// - 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. -// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. -// - 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. -// - 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. -// - 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. -// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. -// - 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. -// - REGION_CODE: The country/region from which the request originates. -// - 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. -// - 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyType() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyType }).(pulumi.StringPtrOutput) +type RouterStatusBestRoutesForRouter struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description string `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange string `pulumi:"destRange"` + // The name of the router. + Name string `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network string `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway string `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb string `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance string `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone string `pulumi:"nextHopInstanceZone"` + // Network IP address of an instance that should handle matching packets. + NextHopIp string `pulumi:"nextHopIp"` + // URL to a Network that should handle matching packets. + NextHopNetwork string `pulumi:"nextHopNetwork"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel string `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority int `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project string `pulumi:"project"` + SelfLink string `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags []string `pulumi:"tags"` } -type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput struct{ *pulumi.OutputState } +// RouterStatusBestRoutesForRouterInput is an input type that accepts RouterStatusBestRoutesForRouterArgs and RouterStatusBestRoutesForRouterOutput values. +// You can construct a concrete instance of `RouterStatusBestRoutesForRouterInput` via: +// +// RouterStatusBestRoutesForRouterArgs{...} +type RouterStatusBestRoutesForRouterInput interface { + pulumi.Input -func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() + ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput + ToRouterStatusBestRoutesForRouterOutputWithContext(context.Context) RouterStatusBestRoutesForRouterOutput } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o +type RouterStatusBestRoutesForRouterArgs struct { + // An optional description of this resource. Provide this property + // when you create the resource. + Description pulumi.StringInput `pulumi:"description"` + // The destination range of outgoing packets that this route applies to. + // Only IPv4 is supported. + DestRange pulumi.StringInput `pulumi:"destRange"` + // The name of the router. + Name pulumi.StringInput `pulumi:"name"` + // The network name or resource link to the parent + // network of this subnetwork. + Network pulumi.StringInput `pulumi:"network"` + // URL to a gateway that should handle matching packets. + // Currently, you can only specify the internet gateway, using a full or + // partial valid URL: + // * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' + // * 'projects/project/global/gateways/default-internet-gateway' + // * 'global/gateways/default-internet-gateway' + // * The string 'default-internet-gateway'. + NextHopGateway pulumi.StringInput `pulumi:"nextHopGateway"` + // The IP address or URL to a forwarding rule of type + // loadBalancingScheme=INTERNAL that should handle matching + // packets. + // + // With the GA provider you can only specify the forwarding + // rule as a partial or full URL. For example, the following + // are all valid values: + // * 10.128.0.56 + // * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule + // * regions/region/forwardingRules/forwardingRule + // + // When the beta provider, you can also specify the IP address + // of a forwarding rule from the same VPC or any peered VPC. + // + // Note that this can only be used when the destinationRange is + // a public (non-RFC 1918) IP CIDR range. + NextHopIlb pulumi.StringInput `pulumi:"nextHopIlb"` + // URL to an instance that should handle matching packets. + // You can specify this as a full or partial URL. For example: + // * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' + // * 'projects/project/zones/zone/instances/instance' + // * 'zones/zone/instances/instance' + // * Just the instance name, with the zone in 'next_hop_instance_zone'. + NextHopInstance pulumi.StringInput `pulumi:"nextHopInstance"` + // The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. + NextHopInstanceZone pulumi.StringInput `pulumi:"nextHopInstanceZone"` + // Network IP address of an instance that should handle matching packets. + NextHopIp pulumi.StringInput `pulumi:"nextHopIp"` + // URL to a Network that should handle matching packets. + NextHopNetwork pulumi.StringInput `pulumi:"nextHopNetwork"` + // URL to a VpnTunnel that should handle matching packets. + NextHopVpnTunnel pulumi.StringInput `pulumi:"nextHopVpnTunnel"` + // The priority of this route. Priority is used to break ties in cases + // where there is more than one matching route of equal prefix length. + // + // In the case of two routes with equal prefix length, the one with the + // lowest-numbered priority value wins. + // + // Default value is 1000. Valid range is 0 through 65535. + Priority pulumi.IntInput `pulumi:"priority"` + // The ID of the project in which the resource + // belongs. If it is not provided, the provider project is used. + Project pulumi.StringInput `pulumi:"project"` + SelfLink pulumi.StringInput `pulumi:"selfLink"` + // A list of instance tags to which this route applies. + Tags pulumi.StringArrayInput `pulumi:"tags"` } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { - return o +func (RouterStatusBestRoutesForRouterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { - return vs[0].([]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)[vs[1].(int)] - }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { + return i.ToRouterStatusBestRoutesForRouterOutputWithContext(context.Background()) } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions struct { - // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. - Target *string `pulumi:"target"` - // Type of the redirect action. - Type *string `pulumi:"type"` +func (i RouterStatusBestRoutesForRouterArgs) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterOutput) } -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput` via: +// RouterStatusBestRoutesForRouterArrayInput is an input type that accepts RouterStatusBestRoutesForRouterArray and RouterStatusBestRoutesForRouterArrayOutput values. +// You can construct a concrete instance of `RouterStatusBestRoutesForRouterArrayInput` via: // -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput interface { +// RouterStatusBestRoutesForRouterArray{ RouterStatusBestRoutesForRouterArgs{...} } +type RouterStatusBestRoutesForRouterArrayInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput + ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput + ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Context) RouterStatusBestRoutesForRouterArrayOutput } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs struct { - // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. - Target pulumi.StringPtrInput `pulumi:"target"` - // Type of the redirect action. - Type pulumi.StringPtrInput `pulumi:"type"` +type RouterStatusBestRoutesForRouterArray []RouterStatusBestRoutesForRouterInput + +func (RouterStatusBestRoutesForRouterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() } -func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { + return i.ToRouterStatusBestRoutesForRouterArrayOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Background()) +func (i RouterStatusBestRoutesForRouterArray) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterStatusBestRoutesForRouterArrayOutput) } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) +type RouterStatusBestRoutesForRouterOutput struct{ *pulumi.OutputState } + +func (RouterStatusBestRoutesForRouterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouterStatusBestRoutesForRouter)(nil)).Elem() } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutput() RouterStatusBestRoutesForRouterOutput { + return o } -func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx) +func (o RouterStatusBestRoutesForRouterOutput) ToRouterStatusBestRoutesForRouterOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterOutput { + return o } -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs, SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput` via: -// -// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} -// -// or: -// -// nil -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput interface { - pulumi.Input +// An optional description of this resource. Provide this property +// when you create the resource. +func (o RouterStatusBestRoutesForRouterOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Description }).(pulumi.StringOutput) +} - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput - ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput +// The destination range of outgoing packets that this route applies to. +// Only IPv4 is supported. +func (o RouterStatusBestRoutesForRouterOutput) DestRange() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.DestRange }).(pulumi.StringOutput) } -type securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs +// The name of the router. +func (o RouterStatusBestRoutesForRouterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Name }).(pulumi.StringOutput) +} -func SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput { - return (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType)(v) +// The network name or resource link to the parent +// network of this subnetwork. +func (o RouterStatusBestRoutesForRouterOutput) Network() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Network }).(pulumi.StringOutput) } -func (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +// URL to a gateway that should handle matching packets. +// Currently, you can only specify the internet gateway, using a full or +// partial valid URL: +// * 'https://www.googleapis.com/compute/v1/projects/project/global/gateways/default-internet-gateway' +// * 'projects/project/global/gateways/default-internet-gateway' +// * 'global/gateways/default-internet-gateway' +// * The string 'default-internet-gateway'. +func (o RouterStatusBestRoutesForRouterOutput) NextHopGateway() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopGateway }).(pulumi.StringOutput) } -func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +// The IP address or URL to a forwarding rule of type +// loadBalancingScheme=INTERNAL that should handle matching +// packets. +// +// With the GA provider you can only specify the forwarding +// rule as a partial or full URL. For example, the following +// are all valid values: +// * 10.128.0.56 +// * https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule +// * regions/region/forwardingRules/forwardingRule +// +// When the beta provider, you can also specify the IP address +// of a forwarding rule from the same VPC or any peered VPC. +// +// Note that this can only be used when the destinationRange is +// a public (non-RFC 1918) IP CIDR range. +func (o RouterStatusBestRoutesForRouterOutput) NextHopIlb() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIlb }).(pulumi.StringOutput) } -func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +// URL to an instance that should handle matching packets. +// You can specify this as a full or partial URL. For example: +// * 'https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance' +// * 'projects/project/zones/zone/instances/instance' +// * 'zones/zone/instances/instance' +// * Just the instance name, with the zone in 'next_hop_instance_zone'. +func (o RouterStatusBestRoutesForRouterOutput) NextHopInstance() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstance }).(pulumi.StringOutput) } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput struct{ *pulumi.OutputState } +// The zone of the instance specified in next_hop_instance. Omit if nextHopInstance is specified as a URL. +func (o RouterStatusBestRoutesForRouterOutput) NextHopInstanceZone() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopInstanceZone }).(pulumi.StringOutput) +} -func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +// Network IP address of an instance that should handle matching packets. +func (o RouterStatusBestRoutesForRouterOutput) NextHopIp() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopIp }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return o +// URL to a Network that should handle matching packets. +func (o RouterStatusBestRoutesForRouterOutput) NextHopNetwork() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopNetwork }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return o +// URL to a VpnTunnel that should handle matching packets. +func (o RouterStatusBestRoutesForRouterOutput) NextHopVpnTunnel() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.NextHopVpnTunnel }).(pulumi.StringOutput) } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) +// The priority of this route. Priority is used to break ties in cases +// where there is more than one matching route of equal prefix length. +// +// In the case of two routes with equal prefix length, the one with the +// lowest-numbered priority value wins. +// +// Default value is 1000. Valid range is 0 through 65535. +func (o RouterStatusBestRoutesForRouterOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) int { return v.Priority }).(pulumi.IntOutput) } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { - return &v - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) +// The ID of the project in which the resource +// belongs. If it is not provided, the provider project is used. +func (o RouterStatusBestRoutesForRouterOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.Project }).(pulumi.StringOutput) } -// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) +func (o RouterStatusBestRoutesForRouterOutput) SelfLink() pulumi.StringOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) string { return v.SelfLink }).(pulumi.StringOutput) } -// Type of the redirect action. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Type }).(pulumi.StringPtrOutput) +// A list of instance tags to which this route applies. +func (o RouterStatusBestRoutesForRouterOutput) Tags() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouterStatusBestRoutesForRouter) []string { return v.Tags }).(pulumi.StringArrayOutput) } -type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput struct{ *pulumi.OutputState } +type RouterStatusBestRoutesForRouterArrayOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() +func (RouterStatusBestRoutesForRouterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouterStatusBestRoutesForRouter)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { +func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutput() RouterStatusBestRoutesForRouterArrayOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { +func (o RouterStatusBestRoutesForRouterArrayOutput) ToRouterStatusBestRoutesForRouterArrayOutputWithContext(ctx context.Context) RouterStatusBestRoutesForRouterArrayOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { - if v != nil { - return *v - } - var ret SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions - return ret - }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) -} - -// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { - if v == nil { - return nil - } - return v.Target - }).(pulumi.StringPtrOutput) -} - -// Type of the redirect action. -func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { - if v == nil { - return nil - } - return v.Type - }).(pulumi.StringPtrOutput) +func (o RouterStatusBestRoutesForRouterArrayOutput) Index(i pulumi.IntInput) RouterStatusBestRoutesForRouterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouterStatusBestRoutesForRouter { + return vs[0].([]RouterStatusBestRoutesForRouter)[vs[1].(int)] + }).(RouterStatusBestRoutesForRouterOutput) } -type SecurityPolicyRuleRateLimitOptionsRateLimitThreshold struct { - // Number of HTTP(S) requests for calculating the threshold. - Count *int `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec *int `pulumi:"intervalSec"` +type SecurityPolicyAdaptiveProtectionConfig struct { + // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. + // + // The `layer7DdosDefenseConfig` block supports: + AutoDeployConfig *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig `pulumi:"autoDeployConfig"` + // 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. + Layer7DdosDefenseConfig *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig `pulumi:"layer7DdosDefenseConfig"` } -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput` via: +// SecurityPolicyAdaptiveProtectionConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs and SecurityPolicyAdaptiveProtectionConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigInput` via: // -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput interface { +// SecurityPolicyAdaptiveProtectionConfigArgs{...} +type SecurityPolicyAdaptiveProtectionConfigInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput + ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput + ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigOutput } -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs struct { - // Number of HTTP(S) requests for calculating the threshold. - Count pulumi.IntPtrInput `pulumi:"count"` - // Interval over which the threshold is computed. - IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` +type SecurityPolicyAdaptiveProtectionConfigArgs struct { + // Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. + // + // The `layer7DdosDefenseConfig` block supports: + AutoDeployConfig SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput `pulumi:"autoDeployConfig"` + // 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. + Layer7DdosDefenseConfig SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput `pulumi:"layer7DdosDefenseConfig"` } -func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput) } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx) +func (i SecurityPolicyAdaptiveProtectionConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx) } -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs, SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput` via: +// SecurityPolicyAdaptiveProtectionConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigArgs, SecurityPolicyAdaptiveProtectionConfigPtr and SecurityPolicyAdaptiveProtectionConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigPtrInput` via: // -// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} +// SecurityPolicyAdaptiveProtectionConfigArgs{...} // // or: // // nil -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput interface { +type SecurityPolicyAdaptiveProtectionConfigPtrInput interface { pulumi.Input - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput - ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput } -type securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs +type securityPolicyAdaptiveProtectionConfigPtrType SecurityPolicyAdaptiveProtectionConfigArgs -func SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput { - return (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType)(v) +func SecurityPolicyAdaptiveProtectionConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigArgs) SecurityPolicyAdaptiveProtectionConfigPtrInput { + return (*securityPolicyAdaptiveProtectionConfigPtrType)(v) } -func (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (*securityPolicyAdaptiveProtectionConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) +func (i *securityPolicyAdaptiveProtectionConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) } -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutput() SecurityPolicyAdaptiveProtectionConfigOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return o.ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { +func (o SecurityPolicyAdaptiveProtectionConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfig { return &v - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) + }).(SecurityPolicyAdaptiveProtectionConfigPtrOutput) } -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) +// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. +// +// The `layer7DdosDefenseConfig` block supports: +func (o SecurityPolicyAdaptiveProtectionConfigOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { + return v.AutoDeployConfig + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) +// 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. +func (o SecurityPolicyAdaptiveProtectionConfigOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { + return v.Layer7DdosDefenseConfig + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigPtrOutput { return o } -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) SecurityPolicyAdaptiveProtectionConfig { if v != nil { return *v } - var ret SecurityPolicyRuleRateLimitOptionsRateLimitThreshold + var ret SecurityPolicyAdaptiveProtectionConfig return ret - }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) + }).(SecurityPolicyAdaptiveProtectionConfigOutput) } -// Number of HTTP(S) requests for calculating the threshold. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Count() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { +// Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. +// +// The `layer7DdosDefenseConfig` block supports: +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) AutoDeployConfig() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { if v == nil { return nil } - return v.Count - }).(pulumi.IntPtrOutput) + return v.AutoDeployConfig + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -// Interval over which the threshold is computed. -func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { +// 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. +func (o SecurityPolicyAdaptiveProtectionConfigPtrOutput) Layer7DdosDefenseConfig() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { if v == nil { return nil } - return v.IntervalSec - }).(pulumi.IntPtrOutput) + return v.Layer7DdosDefenseConfig + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -type SecurityPolicyRuleRedirectOptions struct { - // External redirection target when `EXTERNAL_302` is set in `type`. - Target *string `pulumi:"target"` - // Type of redirect action. - // - // * `EXTERNAL_302`: Redirect to an external address, configured in `target`. - // * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. - Type string `pulumi:"type"` +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig struct { + // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. + ConfidenceThreshold *float64 `pulumi:"confidenceThreshold"` + // 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. + ExpirationSec *int `pulumi:"expirationSec"` + // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. + ImpactedBaselineThreshold *float64 `pulumi:"impactedBaselineThreshold"` + // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. + LoadThreshold *float64 `pulumi:"loadThreshold"` } -// SecurityPolicyRuleRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs and SecurityPolicyRuleRedirectOptionsOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsInput` via: +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput` via: // -// SecurityPolicyRuleRedirectOptionsArgs{...} -type SecurityPolicyRuleRedirectOptionsInput interface { +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigInput interface { pulumi.Input - ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput - ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput } -type SecurityPolicyRuleRedirectOptionsArgs struct { - // External redirection target when `EXTERNAL_302` is set in `type`. - Target pulumi.StringPtrInput `pulumi:"target"` - // Type of redirect action. - // - // * `EXTERNAL_302`: Redirect to an external address, configured in `target`. - // * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. - Type pulumi.StringInput `pulumi:"type"` +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs struct { + // Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. + ConfidenceThreshold pulumi.Float64PtrInput `pulumi:"confidenceThreshold"` + // 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. + ExpirationSec pulumi.IntPtrInput `pulumi:"expirationSec"` + // Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. + ImpactedBaselineThreshold pulumi.Float64PtrInput `pulumi:"impactedBaselineThreshold"` + // Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. + LoadThreshold pulumi.Float64PtrInput `pulumi:"loadThreshold"` } -func (SecurityPolicyRuleRedirectOptionsArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { - return i.ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) } -func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput).ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx) +func (i SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx) } -// SecurityPolicyRuleRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs, SecurityPolicyRuleRedirectOptionsPtr and SecurityPolicyRuleRedirectOptionsPtrOutput values. -// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsPtrInput` via: +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs, SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr and SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput` via: // -// SecurityPolicyRuleRedirectOptionsArgs{...} +// SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs{...} // // or: // // nil -type SecurityPolicyRuleRedirectOptionsPtrInput interface { +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput interface { pulumi.Input - ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput - ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput } -type securityPolicyRuleRedirectOptionsPtrType SecurityPolicyRuleRedirectOptionsArgs +type securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs -func SecurityPolicyRuleRedirectOptionsPtr(v *SecurityPolicyRuleRedirectOptionsArgs) SecurityPolicyRuleRedirectOptionsPtrInput { - return (*securityPolicyRuleRedirectOptionsPtrType)(v) +func SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrInput { + return (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType)(v) } -func (*securityPolicyRuleRedirectOptionsPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() +func (*securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() } -func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { - return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) } -func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsPtrOutput) +func (i *securityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -type SecurityPolicyRuleRedirectOptionsOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput struct{ *pulumi.OutputState } -func (SecurityPolicyRuleRedirectOptionsOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { - return o.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(context.Background()) } -func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRedirectOptions) *SecurityPolicyRuleRedirectOptions { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { return &v - }).(SecurityPolicyRuleRedirectOptionsPtrOutput) + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) } -// External redirection target when `EXTERNAL_302` is set in `type`. -func (o SecurityPolicyRuleRedirectOptionsOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) +// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.ConfidenceThreshold }).(pulumi.Float64PtrOutput) } -// Type of redirect action. -// -// * `EXTERNAL_302`: Redirect to an external address, configured in `target`. -// * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. -func (o SecurityPolicyRuleRedirectOptionsOutput) Type() pulumi.StringOutput { - return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) string { return v.Type }).(pulumi.StringOutput) +// 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. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ExpirationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { return v.ExpirationSec }).(pulumi.IntPtrOutput) } -type SecurityPolicyRuleRedirectOptionsPtrOutput struct{ *pulumi.OutputState } +// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { + return v.ImpactedBaselineThreshold + }).(pulumi.Float64PtrOutput) +} -func (SecurityPolicyRuleRedirectOptionsPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() +// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) LoadThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { return v.LoadThreshold }).(pulumi.Float64PtrOutput) } -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { +type SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig)(nil)).Elem() +} + +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput { return o } -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRedirectOptionsOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) SecurityPolicyRuleRedirectOptions { +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig { if v != nil { return *v } - var ret SecurityPolicyRuleRedirectOptions + var ret SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig return ret - }).(SecurityPolicyRuleRedirectOptionsOutput) + }).(SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigOutput) } -// External redirection target when `EXTERNAL_302` is set in `type`. -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { +// Rules are only automatically deployed for alerts on potential attacks with confidence scores greater than this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ConfidenceThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { if v == nil { return nil } - return v.Target - }).(pulumi.StringPtrOutput) + return v.ConfidenceThreshold + }).(pulumi.Float64PtrOutput) } -// Type of redirect action. -// -// * `EXTERNAL_302`: Redirect to an external address, configured in `target`. -// * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. -func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { +// 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. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ExpirationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *int { if v == nil { return nil } - return &v.Type - }).(pulumi.StringPtrOutput) + return v.ExpirationSec + }).(pulumi.IntPtrOutput) } -type SecurityScanConfigAuthentication struct { - // Describes authentication configuration that uses a custom account. - // Structure is documented below. - CustomAccount *SecurityScanConfigAuthenticationCustomAccount `pulumi:"customAccount"` - // Describes authentication configuration that uses a Google account. - // Structure is documented below. - GoogleAccount *SecurityScanConfigAuthenticationGoogleAccount `pulumi:"googleAccount"` +// Rules are only automatically deployed when the estimated impact to baseline traffic from the suggested mitigation is below this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) ImpactedBaselineThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { + if v == nil { + return nil + } + return v.ImpactedBaselineThreshold + }).(pulumi.Float64PtrOutput) } -// SecurityScanConfigAuthenticationInput is an input type that accepts SecurityScanConfigAuthenticationArgs and SecurityScanConfigAuthenticationOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationInput` via: +// Identifies new attackers only when the load to the backend service that is under attack exceeds this threshold. +func (o SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigPtrOutput) LoadThreshold() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig) *float64 { + if v == nil { + return nil + } + return v.LoadThreshold + }).(pulumi.Float64PtrOutput) +} + +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig struct { + // If set to true, enables CAAP for L7 DDoS detection. + Enable *bool `pulumi:"enable"` + // Rule visibility. Supported values include: "STANDARD", "PREMIUM". + RuleVisibility *string `pulumi:"ruleVisibility"` +} + +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput` via: // -// SecurityScanConfigAuthenticationArgs{...} -type SecurityScanConfigAuthenticationInput interface { +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput - ToSecurityScanConfigAuthenticationOutputWithContext(context.Context) SecurityScanConfigAuthenticationOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput } -type SecurityScanConfigAuthenticationArgs struct { - // Describes authentication configuration that uses a custom account. - // Structure is documented below. - CustomAccount SecurityScanConfigAuthenticationCustomAccountPtrInput `pulumi:"customAccount"` - // Describes authentication configuration that uses a Google account. - // Structure is documented below. - GoogleAccount SecurityScanConfigAuthenticationGoogleAccountPtrInput `pulumi:"googleAccount"` +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs struct { + // If set to true, enables CAAP for L7 DDoS detection. + Enable pulumi.BoolPtrInput `pulumi:"enable"` + // Rule visibility. Supported values include: "STANDARD", "PREMIUM". + RuleVisibility pulumi.StringPtrInput `pulumi:"ruleVisibility"` } -func (SecurityScanConfigAuthenticationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { - return i.ToSecurityScanConfigAuthenticationOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { - return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput).ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx) +func (i SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput).ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx) } -// SecurityScanConfigAuthenticationPtrInput is an input type that accepts SecurityScanConfigAuthenticationArgs, SecurityScanConfigAuthenticationPtr and SecurityScanConfigAuthenticationPtrOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationPtrInput` via: +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput is an input type that accepts SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs, SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr and SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput` via: // -// SecurityScanConfigAuthenticationArgs{...} +// SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs{...} // // or: // // nil -type SecurityScanConfigAuthenticationPtrInput interface { +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput - ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput + ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput } -type securityScanConfigAuthenticationPtrType SecurityScanConfigAuthenticationArgs +type securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs -func SecurityScanConfigAuthenticationPtr(v *SecurityScanConfigAuthenticationArgs) SecurityScanConfigAuthenticationPtrInput { - return (*securityScanConfigAuthenticationPtrType)(v) +func SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtr(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigArgs) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrInput { + return (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType)(v) } -func (*securityScanConfigAuthenticationPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() +func (*securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { - return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return i.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } -func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationPtrOutput) +func (i *securityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrType) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -type SecurityScanConfigAuthenticationOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return o } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { return o } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { - return o.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(context.Background()) } -func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthentication) *SecurityScanConfigAuthentication { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { return &v - }).(SecurityScanConfigAuthenticationPtrOutput) + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) } -// Describes authentication configuration that uses a custom account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { - return v.CustomAccount - }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +// If set to true, enables CAAP for L7 DDoS detection. +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { return v.Enable }).(pulumi.BoolPtrOutput) } -// Describes authentication configuration that uses a Google account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { - return v.GoogleAccount - }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) +// Rule visibility. Supported values include: "STANDARD", "PREMIUM". +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) RuleVisibility() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { return v.RuleVisibility }).(pulumi.StringPtrOutput) } -type SecurityScanConfigAuthenticationPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() +func (SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) ToSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationPtrOutput) Elem() SecurityScanConfigAuthenticationOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthentication) SecurityScanConfigAuthentication { +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Elem() SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig { if v != nil { return *v } - var ret SecurityScanConfigAuthentication + var ret SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig return ret - }).(SecurityScanConfigAuthenticationOutput) + }).(SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigOutput) } -// Describes authentication configuration that uses a custom account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationPtrOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { +// If set to true, enables CAAP for L7 DDoS detection. +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) Enable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *bool { if v == nil { return nil } - return v.CustomAccount - }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) + return v.Enable + }).(pulumi.BoolPtrOutput) } -// Describes authentication configuration that uses a Google account. -// Structure is documented below. -func (o SecurityScanConfigAuthenticationPtrOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { +// Rule visibility. Supported values include: "STANDARD", "PREMIUM". +func (o SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigPtrOutput) RuleVisibility() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig) *string { if v == nil { return nil } - return v.GoogleAccount - }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) + return v.RuleVisibility + }).(pulumi.StringPtrOutput) } -type SecurityScanConfigAuthenticationCustomAccount struct { - // The login form URL of the website. - LoginUrl string `pulumi:"loginUrl"` - // The password of the custom account. The credential is stored encrypted - // in GCP. - // **Note**: This property is sensitive and will not be displayed in the plan. - Password string `pulumi:"password"` - // The user name of the custom account. - Username string `pulumi:"username"` +type SecurityPolicyAdvancedOptionsConfig struct { + // Custom configuration to apply the JSON parsing. Only applicable when + // `jsonParsing` is set to `STANDARD`. Structure is documented below. + JsonCustomConfig *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig `pulumi:"jsonCustomConfig"` + // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. + // * `DISABLED` - Don't parse JSON payloads in POST bodies. + // * `STANDARD` - Parse JSON payloads in POST bodies. + // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. + JsonParsing *string `pulumi:"jsonParsing"` + // Log level to use. Defaults to `NORMAL`. + // * `NORMAL` - Normal log level. + // * `VERBOSE` - Verbose log level. + LogLevel *string `pulumi:"logLevel"` + // An optional list of case-insensitive request header names to use for resolving the callers client IP address. + UserIpRequestHeaders []string `pulumi:"userIpRequestHeaders"` } -// SecurityScanConfigAuthenticationCustomAccountInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs and SecurityScanConfigAuthenticationCustomAccountOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountInput` via: +// SecurityPolicyAdvancedOptionsConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs and SecurityPolicyAdvancedOptionsConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigInput` via: // -// SecurityScanConfigAuthenticationCustomAccountArgs{...} -type SecurityScanConfigAuthenticationCustomAccountInput interface { +// SecurityPolicyAdvancedOptionsConfigArgs{...} +type SecurityPolicyAdvancedOptionsConfigInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput - ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountOutput + ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput + ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigOutput } -type SecurityScanConfigAuthenticationCustomAccountArgs struct { - // The login form URL of the website. - LoginUrl pulumi.StringInput `pulumi:"loginUrl"` - // The password of the custom account. The credential is stored encrypted - // in GCP. - // **Note**: This property is sensitive and will not be displayed in the plan. - Password pulumi.StringInput `pulumi:"password"` - // The user name of the custom account. - Username pulumi.StringInput `pulumi:"username"` +type SecurityPolicyAdvancedOptionsConfigArgs struct { + // Custom configuration to apply the JSON parsing. Only applicable when + // `jsonParsing` is set to `STANDARD`. Structure is documented below. + JsonCustomConfig SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput `pulumi:"jsonCustomConfig"` + // Whether or not to JSON parse the payload body. Defaults to `DISABLED`. + // * `DISABLED` - Don't parse JSON payloads in POST bodies. + // * `STANDARD` - Parse JSON payloads in POST bodies. + // * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. + JsonParsing pulumi.StringPtrInput `pulumi:"jsonParsing"` + // Log level to use. Defaults to `NORMAL`. + // * `NORMAL` - Normal log level. + // * `VERBOSE` - Verbose log level. + LogLevel pulumi.StringPtrInput `pulumi:"logLevel"` + // An optional list of case-insensitive request header names to use for resolving the callers client IP address. + UserIpRequestHeaders pulumi.StringArrayInput `pulumi:"userIpRequestHeaders"` } -func (SecurityScanConfigAuthenticationCustomAccountArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { - return i.ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput) } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput).ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx) +func (i SecurityPolicyAdvancedOptionsConfigArgs) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigOutput).ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx) } -// SecurityScanConfigAuthenticationCustomAccountPtrInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs, SecurityScanConfigAuthenticationCustomAccountPtr and SecurityScanConfigAuthenticationCustomAccountPtrOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountPtrInput` via: +// SecurityPolicyAdvancedOptionsConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigArgs, SecurityPolicyAdvancedOptionsConfigPtr and SecurityPolicyAdvancedOptionsConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigPtrInput` via: // -// SecurityScanConfigAuthenticationCustomAccountArgs{...} +// SecurityPolicyAdvancedOptionsConfigArgs{...} // // or: // // nil -type SecurityScanConfigAuthenticationCustomAccountPtrInput interface { +type SecurityPolicyAdvancedOptionsConfigPtrInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput - ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput + ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput + ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput } -type securityScanConfigAuthenticationCustomAccountPtrType SecurityScanConfigAuthenticationCustomAccountArgs +type securityPolicyAdvancedOptionsConfigPtrType SecurityPolicyAdvancedOptionsConfigArgs -func SecurityScanConfigAuthenticationCustomAccountPtr(v *SecurityScanConfigAuthenticationCustomAccountArgs) SecurityScanConfigAuthenticationCustomAccountPtrInput { - return (*securityScanConfigAuthenticationCustomAccountPtrType)(v) +func SecurityPolicyAdvancedOptionsConfigPtr(v *SecurityPolicyAdvancedOptionsConfigArgs) SecurityPolicyAdvancedOptionsConfigPtrInput { + return (*securityPolicyAdvancedOptionsConfigPtrType)(v) } -func (*securityScanConfigAuthenticationCustomAccountPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +func (*securityPolicyAdvancedOptionsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } -func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) +func (i *securityPolicyAdvancedOptionsConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigPtrOutput) } -type SecurityScanConfigAuthenticationCustomAccountOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdvancedOptionsConfigOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationCustomAccountOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutput() SecurityPolicyAdvancedOptionsConfigOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { + return o.ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(context.Background()) } -func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthenticationCustomAccount) *SecurityScanConfigAuthenticationCustomAccount { +func (o SecurityPolicyAdvancedOptionsConfigOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfig { return &v - }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) + }).(SecurityPolicyAdvancedOptionsConfigPtrOutput) } -// The login form URL of the website. -func (o SecurityScanConfigAuthenticationCustomAccountOutput) LoginUrl() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.LoginUrl }).(pulumi.StringOutput) +// Custom configuration to apply the JSON parsing. Only applicable when +// `jsonParsing` is set to `STANDARD`. Structure is documented below. +func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { + return v.JsonCustomConfig + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) } -// The password of the custom account. The credential is stored encrypted -// in GCP. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SecurityScanConfigAuthenticationCustomAccountOutput) Password() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Password }).(pulumi.StringOutput) +// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. +// * `DISABLED` - Don't parse JSON payloads in POST bodies. +// * `STANDARD` - Parse JSON payloads in POST bodies. +// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. +func (o SecurityPolicyAdvancedOptionsConfigOutput) JsonParsing() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.JsonParsing }).(pulumi.StringPtrOutput) } -// The user name of the custom account. -func (o SecurityScanConfigAuthenticationCustomAccountOutput) Username() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Username }).(pulumi.StringOutput) +// Log level to use. Defaults to `NORMAL`. +// * `NORMAL` - Normal log level. +// * `VERBOSE` - Verbose log level. +func (o SecurityPolicyAdvancedOptionsConfigOutput) LogLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) *string { return v.LogLevel }).(pulumi.StringPtrOutput) } -type SecurityScanConfigAuthenticationCustomAccountPtrOutput struct{ *pulumi.OutputState } +// An optional list of case-insensitive request header names to use for resolving the callers client IP address. +func (o SecurityPolicyAdvancedOptionsConfigOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfig) []string { return v.UserIpRequestHeaders }).(pulumi.StringArrayOutput) +} -func (SecurityScanConfigAuthenticationCustomAccountPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() +type SecurityPolicyAdvancedOptionsConfigPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyAdvancedOptionsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Elem() SecurityScanConfigAuthenticationCustomAccountOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) SecurityScanConfigAuthenticationCustomAccount { +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) SecurityPolicyAdvancedOptionsConfig { if v != nil { return *v } - var ret SecurityScanConfigAuthenticationCustomAccount + var ret SecurityPolicyAdvancedOptionsConfig return ret - }).(SecurityScanConfigAuthenticationCustomAccountOutput) + }).(SecurityPolicyAdvancedOptionsConfigOutput) } -// The login form URL of the website. -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) LoginUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { +// Custom configuration to apply the JSON parsing. Only applicable when +// `jsonParsing` is set to `STANDARD`. Structure is documented below. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonCustomConfig() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { if v == nil { return nil } - return &v.LoginUrl - }).(pulumi.StringPtrOutput) + return v.JsonCustomConfig + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) } -// The password of the custom account. The credential is stored encrypted -// in GCP. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { +// Whether or not to JSON parse the payload body. Defaults to `DISABLED`. +// * `DISABLED` - Don't parse JSON payloads in POST bodies. +// * `STANDARD` - Parse JSON payloads in POST bodies. +// * `STANDARD_WITH_GRAPHQL` - Parse JSON and GraphQL payloads in POST bodies. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) JsonParsing() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { if v == nil { return nil } - return &v.Password + return v.JsonParsing }).(pulumi.StringPtrOutput) } -// The user name of the custom account. -func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Username() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { +// Log level to use. Defaults to `NORMAL`. +// * `NORMAL` - Normal log level. +// * `VERBOSE` - Verbose log level. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) LogLevel() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) *string { if v == nil { return nil } - return &v.Username + return v.LogLevel }).(pulumi.StringPtrOutput) } -type SecurityScanConfigAuthenticationGoogleAccount struct { - // The password of the Google account. The credential is stored encrypted - // in GCP. - // **Note**: This property is sensitive and will not be displayed in the plan. - Password string `pulumi:"password"` - // The user name of the Google account. - Username string `pulumi:"username"` +// An optional list of case-insensitive request header names to use for resolving the callers client IP address. +func (o SecurityPolicyAdvancedOptionsConfigPtrOutput) UserIpRequestHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfig) []string { + if v == nil { + return nil + } + return v.UserIpRequestHeaders + }).(pulumi.StringArrayOutput) } -// SecurityScanConfigAuthenticationGoogleAccountInput is an input type that accepts SecurityScanConfigAuthenticationGoogleAccountArgs and SecurityScanConfigAuthenticationGoogleAccountOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationGoogleAccountInput` via: +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfig struct { + // A list of custom Content-Type header values to apply the JSON parsing. The + // format of the Content-Type header values is defined in + // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header + // value, only the type/subtype needs to be specified, and the parameters should be excluded. + ContentTypes []string `pulumi:"contentTypes"` +} + +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput` via: // -// SecurityScanConfigAuthenticationGoogleAccountArgs{...} -type SecurityScanConfigAuthenticationGoogleAccountInput interface { +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationGoogleAccountOutput() SecurityScanConfigAuthenticationGoogleAccountOutput - ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(context.Context) SecurityScanConfigAuthenticationGoogleAccountOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput } -type SecurityScanConfigAuthenticationGoogleAccountArgs struct { - // The password of the Google account. The credential is stored encrypted - // in GCP. - // **Note**: This property is sensitive and will not be displayed in the plan. - Password pulumi.StringInput `pulumi:"password"` - // The user name of the Google account. - Username pulumi.StringInput `pulumi:"username"` +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs struct { + // A list of custom Content-Type header values to apply the JSON parsing. The + // format of the Content-Type header values is defined in + // [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header + // value, only the type/subtype needs to be specified, and the parameters should be excluded. + ContentTypes pulumi.StringArrayInput `pulumi:"contentTypes"` } -func (SecurityScanConfigAuthenticationGoogleAccountArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountOutput() SecurityScanConfigAuthenticationGoogleAccountOutput { - return i.ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationGoogleAccountOutput) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) } -func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return i.ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Background()) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) } -func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationGoogleAccountOutput).ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx) +func (i SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput).ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx) } -// SecurityScanConfigAuthenticationGoogleAccountPtrInput is an input type that accepts SecurityScanConfigAuthenticationGoogleAccountArgs, SecurityScanConfigAuthenticationGoogleAccountPtr and SecurityScanConfigAuthenticationGoogleAccountPtrOutput values. -// You can construct a concrete instance of `SecurityScanConfigAuthenticationGoogleAccountPtrInput` via: +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput is an input type that accepts SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs, SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr and SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput` via: // -// SecurityScanConfigAuthenticationGoogleAccountArgs{...} +// SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs{...} // // or: // // nil -type SecurityScanConfigAuthenticationGoogleAccountPtrInput interface { +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput interface { pulumi.Input - ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput - ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput + ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput } -type securityScanConfigAuthenticationGoogleAccountPtrType SecurityScanConfigAuthenticationGoogleAccountArgs +type securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs -func SecurityScanConfigAuthenticationGoogleAccountPtr(v *SecurityScanConfigAuthenticationGoogleAccountArgs) SecurityScanConfigAuthenticationGoogleAccountPtrInput { - return (*securityScanConfigAuthenticationGoogleAccountPtrType)(v) +func SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtr(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfigArgs) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrInput { + return (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType)(v) } -func (*securityScanConfigAuthenticationGoogleAccountPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() +func (*securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (i *securityScanConfigAuthenticationGoogleAccountPtrType) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return i.ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Background()) +func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return i.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) } -func (i *securityScanConfigAuthenticationGoogleAccountPtrType) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) +func (i *securityPolicyAdvancedOptionsConfigJsonCustomConfigPtrType) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) } -type SecurityScanConfigAuthenticationGoogleAccountOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationGoogleAccountOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountOutput() SecurityScanConfigAuthenticationGoogleAccountOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { return o } -func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { return o } -func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return o.ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Background()) +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(context.Background()) } -func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthenticationGoogleAccount) *SecurityScanConfigAuthenticationGoogleAccount { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { return &v - }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) -} - -// The password of the Google account. The credential is stored encrypted -// in GCP. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SecurityScanConfigAuthenticationGoogleAccountOutput) Password() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationGoogleAccount) string { return v.Password }).(pulumi.StringOutput) + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) } -// The user name of the Google account. -func (o SecurityScanConfigAuthenticationGoogleAccountOutput) Username() pulumi.StringOutput { - return o.ApplyT(func(v SecurityScanConfigAuthenticationGoogleAccount) string { return v.Username }).(pulumi.StringOutput) +// A list of custom Content-Type header values to apply the JSON parsing. The +// format of the Content-Type header values is defined in +// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header +// value, only the type/subtype needs to be specified, and the parameters should be excluded. +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) ContentTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { return v.ContentTypes }).(pulumi.StringArrayOutput) } -type SecurityScanConfigAuthenticationGoogleAccountPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigAuthenticationGoogleAccountPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() +func (SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyAdvancedOptionsConfigJsonCustomConfig)(nil)).Elem() } -func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ToSecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput { return o } -func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) Elem() SecurityScanConfigAuthenticationGoogleAccountOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationGoogleAccount) SecurityScanConfigAuthenticationGoogleAccount { +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) Elem() SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) SecurityPolicyAdvancedOptionsConfigJsonCustomConfig { if v != nil { return *v } - var ret SecurityScanConfigAuthenticationGoogleAccount + var ret SecurityPolicyAdvancedOptionsConfigJsonCustomConfig return ret - }).(SecurityScanConfigAuthenticationGoogleAccountOutput) -} - -// The password of the Google account. The credential is stored encrypted -// in GCP. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) Password() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationGoogleAccount) *string { - if v == nil { - return nil - } - return &v.Password - }).(pulumi.StringPtrOutput) + }).(SecurityPolicyAdvancedOptionsConfigJsonCustomConfigOutput) } -// The user name of the Google account. -func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) Username() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigAuthenticationGoogleAccount) *string { +// A list of custom Content-Type header values to apply the JSON parsing. The +// format of the Content-Type header values is defined in +// [RFC 1341](https://www.ietf.org/rfc/rfc1341.txt). When configuring a custom Content-Type header +// value, only the type/subtype needs to be specified, and the parameters should be excluded. +func (o SecurityPolicyAdvancedOptionsConfigJsonCustomConfigPtrOutput) ContentTypes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyAdvancedOptionsConfigJsonCustomConfig) []string { if v == nil { return nil } - return &v.Username - }).(pulumi.StringPtrOutput) + return v.ContentTypes + }).(pulumi.StringArrayOutput) } -type SecurityScanConfigSchedule struct { - // The duration of time between executions in days - IntervalDurationDays int `pulumi:"intervalDurationDays"` - // A timestamp indicates when the next run will be scheduled. The value is refreshed - // by the server after each run. If unspecified, it will default to current server time, - // which means the scan will be scheduled to start immediately. - ScheduleTime *string `pulumi:"scheduleTime"` +type SecurityPolicyRecaptchaOptionsConfig struct { + // 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. + RedirectSiteKey string `pulumi:"redirectSiteKey"` } -// SecurityScanConfigScheduleInput is an input type that accepts SecurityScanConfigScheduleArgs and SecurityScanConfigScheduleOutput values. -// You can construct a concrete instance of `SecurityScanConfigScheduleInput` via: +// SecurityPolicyRecaptchaOptionsConfigInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs and SecurityPolicyRecaptchaOptionsConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigInput` via: // -// SecurityScanConfigScheduleArgs{...} -type SecurityScanConfigScheduleInput interface { +// SecurityPolicyRecaptchaOptionsConfigArgs{...} +type SecurityPolicyRecaptchaOptionsConfigInput interface { pulumi.Input - ToSecurityScanConfigScheduleOutput() SecurityScanConfigScheduleOutput - ToSecurityScanConfigScheduleOutputWithContext(context.Context) SecurityScanConfigScheduleOutput + ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput + ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigOutput } -type SecurityScanConfigScheduleArgs struct { - // The duration of time between executions in days - IntervalDurationDays pulumi.IntInput `pulumi:"intervalDurationDays"` - // A timestamp indicates when the next run will be scheduled. The value is refreshed - // by the server after each run. If unspecified, it will default to current server time, - // which means the scan will be scheduled to start immediately. - ScheduleTime pulumi.StringPtrInput `pulumi:"scheduleTime"` +type SecurityPolicyRecaptchaOptionsConfigArgs struct { + // 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. + RedirectSiteKey pulumi.StringInput `pulumi:"redirectSiteKey"` } -func (SecurityScanConfigScheduleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigSchedule)(nil)).Elem() +func (SecurityPolicyRecaptchaOptionsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } -func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigScheduleOutput() SecurityScanConfigScheduleOutput { - return i.ToSecurityScanConfigScheduleOutputWithContext(context.Background()) +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { + return i.ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(context.Background()) } -func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigScheduleOutputWithContext(ctx context.Context) SecurityScanConfigScheduleOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigScheduleOutput) +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput) } -func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { - return i.ToSecurityScanConfigSchedulePtrOutputWithContext(context.Background()) +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) } -func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigScheduleOutput).ToSecurityScanConfigSchedulePtrOutputWithContext(ctx) +func (i SecurityPolicyRecaptchaOptionsConfigArgs) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigOutput).ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx) } -// SecurityScanConfigSchedulePtrInput is an input type that accepts SecurityScanConfigScheduleArgs, SecurityScanConfigSchedulePtr and SecurityScanConfigSchedulePtrOutput values. -// You can construct a concrete instance of `SecurityScanConfigSchedulePtrInput` via: +// SecurityPolicyRecaptchaOptionsConfigPtrInput is an input type that accepts SecurityPolicyRecaptchaOptionsConfigArgs, SecurityPolicyRecaptchaOptionsConfigPtr and SecurityPolicyRecaptchaOptionsConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRecaptchaOptionsConfigPtrInput` via: // -// SecurityScanConfigScheduleArgs{...} +// SecurityPolicyRecaptchaOptionsConfigArgs{...} // // or: // // nil -type SecurityScanConfigSchedulePtrInput interface { +type SecurityPolicyRecaptchaOptionsConfigPtrInput interface { pulumi.Input - ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput - ToSecurityScanConfigSchedulePtrOutputWithContext(context.Context) SecurityScanConfigSchedulePtrOutput + ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput + ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput } -type securityScanConfigSchedulePtrType SecurityScanConfigScheduleArgs +type securityPolicyRecaptchaOptionsConfigPtrType SecurityPolicyRecaptchaOptionsConfigArgs -func SecurityScanConfigSchedulePtr(v *SecurityScanConfigScheduleArgs) SecurityScanConfigSchedulePtrInput { - return (*securityScanConfigSchedulePtrType)(v) +func SecurityPolicyRecaptchaOptionsConfigPtr(v *SecurityPolicyRecaptchaOptionsConfigArgs) SecurityPolicyRecaptchaOptionsConfigPtrInput { + return (*securityPolicyRecaptchaOptionsConfigPtrType)(v) } -func (*securityScanConfigSchedulePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigSchedule)(nil)).Elem() +func (*securityPolicyRecaptchaOptionsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } -func (i *securityScanConfigSchedulePtrType) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { - return i.ToSecurityScanConfigSchedulePtrOutputWithContext(context.Background()) +func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return i.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) } -func (i *securityScanConfigSchedulePtrType) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigSchedulePtrOutput) +func (i *securityPolicyRecaptchaOptionsConfigPtrType) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) } -type SecurityScanConfigScheduleOutput struct{ *pulumi.OutputState } +type SecurityPolicyRecaptchaOptionsConfigOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigScheduleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SecurityScanConfigSchedule)(nil)).Elem() +func (SecurityPolicyRecaptchaOptionsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } -func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigScheduleOutput() SecurityScanConfigScheduleOutput { +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutput() SecurityPolicyRecaptchaOptionsConfigOutput { return o } -func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigScheduleOutputWithContext(ctx context.Context) SecurityScanConfigScheduleOutput { +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigOutput { return o } -func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { - return o.ToSecurityScanConfigSchedulePtrOutputWithContext(context.Background()) -} - -func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigSchedule) *SecurityScanConfigSchedule { - return &v - }).(SecurityScanConfigSchedulePtrOutput) +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return o.ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(context.Background()) } -// The duration of time between executions in days -func (o SecurityScanConfigScheduleOutput) IntervalDurationDays() pulumi.IntOutput { - return o.ApplyT(func(v SecurityScanConfigSchedule) int { return v.IntervalDurationDays }).(pulumi.IntOutput) +func (o SecurityPolicyRecaptchaOptionsConfigOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRecaptchaOptionsConfig) *SecurityPolicyRecaptchaOptionsConfig { + return &v + }).(SecurityPolicyRecaptchaOptionsConfigPtrOutput) } -// A timestamp indicates when the next run will be scheduled. The value is refreshed -// by the server after each run. If unspecified, it will default to current server time, -// which means the scan will be scheduled to start immediately. -func (o SecurityScanConfigScheduleOutput) ScheduleTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v SecurityScanConfigSchedule) *string { return v.ScheduleTime }).(pulumi.StringPtrOutput) +// 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. +func (o SecurityPolicyRecaptchaOptionsConfigOutput) RedirectSiteKey() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRecaptchaOptionsConfig) string { return v.RedirectSiteKey }).(pulumi.StringOutput) } -type SecurityScanConfigSchedulePtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRecaptchaOptionsConfigPtrOutput struct{ *pulumi.OutputState } -func (SecurityScanConfigSchedulePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SecurityScanConfigSchedule)(nil)).Elem() +func (SecurityPolicyRecaptchaOptionsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRecaptchaOptionsConfig)(nil)).Elem() } -func (o SecurityScanConfigSchedulePtrOutput) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutput() SecurityPolicyRecaptchaOptionsConfigPtrOutput { return o } -func (o SecurityScanConfigSchedulePtrOutput) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) ToSecurityPolicyRecaptchaOptionsConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRecaptchaOptionsConfigPtrOutput { return o } -func (o SecurityScanConfigSchedulePtrOutput) Elem() SecurityScanConfigScheduleOutput { - return o.ApplyT(func(v *SecurityScanConfigSchedule) SecurityScanConfigSchedule { +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) Elem() SecurityPolicyRecaptchaOptionsConfigOutput { + return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) SecurityPolicyRecaptchaOptionsConfig { if v != nil { return *v } - var ret SecurityScanConfigSchedule + var ret SecurityPolicyRecaptchaOptionsConfig return ret - }).(SecurityScanConfigScheduleOutput) -} - -// The duration of time between executions in days -func (o SecurityScanConfigSchedulePtrOutput) IntervalDurationDays() pulumi.IntPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigSchedule) *int { - if v == nil { - return nil - } - return &v.IntervalDurationDays - }).(pulumi.IntPtrOutput) + }).(SecurityPolicyRecaptchaOptionsConfigOutput) } -// A timestamp indicates when the next run will be scheduled. The value is refreshed -// by the server after each run. If unspecified, it will default to current server time, -// which means the scan will be scheduled to start immediately. -func (o SecurityScanConfigSchedulePtrOutput) ScheduleTime() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SecurityScanConfigSchedule) *string { +// 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. +func (o SecurityPolicyRecaptchaOptionsConfigPtrOutput) RedirectSiteKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRecaptchaOptionsConfig) *string { if v == nil { return nil } - return v.ScheduleTime + return &v.RedirectSiteKey }).(pulumi.StringPtrOutput) } -type ServiceAttachmentConnectedEndpoint struct { - // (Output) - // The URL of the consumer forwarding rule. - Endpoint *string `pulumi:"endpoint"` - // (Output) - // The status of the connection from the consumer forwarding rule to - // this service attachment. - Status *string `pulumi:"status"` +type SecurityPolicyRuleType struct { + // Action to take when `match` matches the request. Valid values: + Action string `pulumi:"action"` + // An optional description of this rule. Max size is 64. + Description *string `pulumi:"description"` + // Additional actions that are performed on headers. Structure is documented below. + HeaderAction *SecurityPolicyRuleHeaderAction `pulumi:"headerAction"` + // A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. + Match SecurityPolicyRuleMatch `pulumi:"match"` + // 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. + PreconfiguredWafConfig *SecurityPolicyRulePreconfiguredWafConfig `pulumi:"preconfiguredWafConfig"` + // When set to true, the `action` specified above is not enforced. + // Stackdriver logs for requests that trigger a preview action are annotated as such. + Preview *bool `pulumi:"preview"` + // 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. + Priority int `pulumi:"priority"` + // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. + RateLimitOptions *SecurityPolicyRuleRateLimitOptions `pulumi:"rateLimitOptions"` + // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. + RedirectOptions *SecurityPolicyRuleRedirectOptions `pulumi:"redirectOptions"` } -// ServiceAttachmentConnectedEndpointInput is an input type that accepts ServiceAttachmentConnectedEndpointArgs and ServiceAttachmentConnectedEndpointOutput values. -// You can construct a concrete instance of `ServiceAttachmentConnectedEndpointInput` via: +// SecurityPolicyRuleTypeInput is an input type that accepts SecurityPolicyRuleTypeArgs and SecurityPolicyRuleTypeOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleTypeInput` via: // -// ServiceAttachmentConnectedEndpointArgs{...} -type ServiceAttachmentConnectedEndpointInput interface { +// SecurityPolicyRuleTypeArgs{...} +type SecurityPolicyRuleTypeInput interface { pulumi.Input - ToServiceAttachmentConnectedEndpointOutput() ServiceAttachmentConnectedEndpointOutput - ToServiceAttachmentConnectedEndpointOutputWithContext(context.Context) ServiceAttachmentConnectedEndpointOutput + ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput + ToSecurityPolicyRuleTypeOutputWithContext(context.Context) SecurityPolicyRuleTypeOutput } -type ServiceAttachmentConnectedEndpointArgs struct { - // (Output) - // The URL of the consumer forwarding rule. - Endpoint pulumi.StringPtrInput `pulumi:"endpoint"` - // (Output) - // The status of the connection from the consumer forwarding rule to - // this service attachment. - Status pulumi.StringPtrInput `pulumi:"status"` +type SecurityPolicyRuleTypeArgs struct { + // Action to take when `match` matches the request. Valid values: + Action pulumi.StringInput `pulumi:"action"` + // An optional description of this rule. Max size is 64. + Description pulumi.StringPtrInput `pulumi:"description"` + // Additional actions that are performed on headers. Structure is documented below. + HeaderAction SecurityPolicyRuleHeaderActionPtrInput `pulumi:"headerAction"` + // A match condition that incoming traffic is evaluated against. + // If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. + Match SecurityPolicyRuleMatchInput `pulumi:"match"` + // 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. + PreconfiguredWafConfig SecurityPolicyRulePreconfiguredWafConfigPtrInput `pulumi:"preconfiguredWafConfig"` + // When set to true, the `action` specified above is not enforced. + // Stackdriver logs for requests that trigger a preview action are annotated as such. + Preview pulumi.BoolPtrInput `pulumi:"preview"` + // 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. + Priority pulumi.IntInput `pulumi:"priority"` + // Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. + RateLimitOptions SecurityPolicyRuleRateLimitOptionsPtrInput `pulumi:"rateLimitOptions"` + // Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. + RedirectOptions SecurityPolicyRuleRedirectOptionsPtrInput `pulumi:"redirectOptions"` } -func (ServiceAttachmentConnectedEndpointArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceAttachmentConnectedEndpoint)(nil)).Elem() +func (SecurityPolicyRuleTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() } -func (i ServiceAttachmentConnectedEndpointArgs) ToServiceAttachmentConnectedEndpointOutput() ServiceAttachmentConnectedEndpointOutput { - return i.ToServiceAttachmentConnectedEndpointOutputWithContext(context.Background()) +func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { + return i.ToSecurityPolicyRuleTypeOutputWithContext(context.Background()) } -func (i ServiceAttachmentConnectedEndpointArgs) ToServiceAttachmentConnectedEndpointOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConnectedEndpointOutput) +func (i SecurityPolicyRuleTypeArgs) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeOutput) } -// ServiceAttachmentConnectedEndpointArrayInput is an input type that accepts ServiceAttachmentConnectedEndpointArray and ServiceAttachmentConnectedEndpointArrayOutput values. -// You can construct a concrete instance of `ServiceAttachmentConnectedEndpointArrayInput` via: +// SecurityPolicyRuleTypeArrayInput is an input type that accepts SecurityPolicyRuleTypeArray and SecurityPolicyRuleTypeArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleTypeArrayInput` via: // -// ServiceAttachmentConnectedEndpointArray{ ServiceAttachmentConnectedEndpointArgs{...} } -type ServiceAttachmentConnectedEndpointArrayInput interface { +// SecurityPolicyRuleTypeArray{ SecurityPolicyRuleTypeArgs{...} } +type SecurityPolicyRuleTypeArrayInput interface { pulumi.Input - ToServiceAttachmentConnectedEndpointArrayOutput() ServiceAttachmentConnectedEndpointArrayOutput - ToServiceAttachmentConnectedEndpointArrayOutputWithContext(context.Context) ServiceAttachmentConnectedEndpointArrayOutput + ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput + ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Context) SecurityPolicyRuleTypeArrayOutput } -type ServiceAttachmentConnectedEndpointArray []ServiceAttachmentConnectedEndpointInput +type SecurityPolicyRuleTypeArray []SecurityPolicyRuleTypeInput -func (ServiceAttachmentConnectedEndpointArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceAttachmentConnectedEndpoint)(nil)).Elem() +func (SecurityPolicyRuleTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() } -func (i ServiceAttachmentConnectedEndpointArray) ToServiceAttachmentConnectedEndpointArrayOutput() ServiceAttachmentConnectedEndpointArrayOutput { - return i.ToServiceAttachmentConnectedEndpointArrayOutputWithContext(context.Background()) +func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { + return i.ToSecurityPolicyRuleTypeArrayOutputWithContext(context.Background()) } -func (i ServiceAttachmentConnectedEndpointArray) ToServiceAttachmentConnectedEndpointArrayOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConnectedEndpointArrayOutput) +func (i SecurityPolicyRuleTypeArray) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleTypeArrayOutput) } -type ServiceAttachmentConnectedEndpointOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleTypeOutput struct{ *pulumi.OutputState } -func (ServiceAttachmentConnectedEndpointOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceAttachmentConnectedEndpoint)(nil)).Elem() +func (SecurityPolicyRuleTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleType)(nil)).Elem() } -func (o ServiceAttachmentConnectedEndpointOutput) ToServiceAttachmentConnectedEndpointOutput() ServiceAttachmentConnectedEndpointOutput { +func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutput() SecurityPolicyRuleTypeOutput { return o } -func (o ServiceAttachmentConnectedEndpointOutput) ToServiceAttachmentConnectedEndpointOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointOutput { +func (o SecurityPolicyRuleTypeOutput) ToSecurityPolicyRuleTypeOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeOutput { return o } -// (Output) -// The URL of the consumer forwarding rule. -func (o ServiceAttachmentConnectedEndpointOutput) Endpoint() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAttachmentConnectedEndpoint) *string { return v.Endpoint }).(pulumi.StringPtrOutput) +// Action to take when `match` matches the request. Valid values: +func (o SecurityPolicyRuleTypeOutput) Action() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) string { return v.Action }).(pulumi.StringOutput) } -// (Output) -// The status of the connection from the consumer forwarding rule to -// this service attachment. -func (o ServiceAttachmentConnectedEndpointOutput) Status() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAttachmentConnectedEndpoint) *string { return v.Status }).(pulumi.StringPtrOutput) +// An optional description of this rule. Max size is 64. +func (o SecurityPolicyRuleTypeOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *string { return v.Description }).(pulumi.StringPtrOutput) } -type ServiceAttachmentConnectedEndpointArrayOutput struct{ *pulumi.OutputState } +// Additional actions that are performed on headers. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) HeaderAction() SecurityPolicyRuleHeaderActionPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleHeaderAction { return v.HeaderAction }).(SecurityPolicyRuleHeaderActionPtrOutput) +} -func (ServiceAttachmentConnectedEndpointArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceAttachmentConnectedEndpoint)(nil)).Elem() +// A match condition that incoming traffic is evaluated against. +// If it evaluates to true, the corresponding `action` is enforced. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) Match() SecurityPolicyRuleMatchOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) SecurityPolicyRuleMatch { return v.Match }).(SecurityPolicyRuleMatchOutput) } -func (o ServiceAttachmentConnectedEndpointArrayOutput) ToServiceAttachmentConnectedEndpointArrayOutput() ServiceAttachmentConnectedEndpointArrayOutput { - return o +// 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. +func (o SecurityPolicyRuleTypeOutput) PreconfiguredWafConfig() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRulePreconfiguredWafConfig { + return v.PreconfiguredWafConfig + }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) } -func (o ServiceAttachmentConnectedEndpointArrayOutput) ToServiceAttachmentConnectedEndpointArrayOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointArrayOutput { - return o +// When set to true, the `action` specified above is not enforced. +// Stackdriver logs for requests that trigger a preview action are annotated as such. +func (o SecurityPolicyRuleTypeOutput) Preview() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *bool { return v.Preview }).(pulumi.BoolPtrOutput) } -func (o ServiceAttachmentConnectedEndpointArrayOutput) Index(i pulumi.IntInput) ServiceAttachmentConnectedEndpointOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAttachmentConnectedEndpoint { - return vs[0].([]ServiceAttachmentConnectedEndpoint)[vs[1].(int)] - }).(ServiceAttachmentConnectedEndpointOutput) +// 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. +func (o SecurityPolicyRuleTypeOutput) Priority() pulumi.IntOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) int { return v.Priority }).(pulumi.IntOutput) } -type ServiceAttachmentConsumerAcceptList struct { - // The number of consumer forwarding rules the consumer project can - // create. - ConnectionLimit int `pulumi:"connectionLimit"` - // The network that is allowed to connect to this service attachment. - // Only one of projectIdOrNum and networkUrl may be set. - NetworkUrl *string `pulumi:"networkUrl"` - // A project that is allowed to connect to this service attachment. - // Only one of projectIdOrNum and networkUrl may be set. - ProjectIdOrNum *string `pulumi:"projectIdOrNum"` +// Must be specified if the `action` is `rateBasedBan` or `throttle`. Cannot be specified for other actions. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) RateLimitOptions() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRateLimitOptions { return v.RateLimitOptions }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) } -// ServiceAttachmentConsumerAcceptListInput is an input type that accepts ServiceAttachmentConsumerAcceptListArgs and ServiceAttachmentConsumerAcceptListOutput values. -// You can construct a concrete instance of `ServiceAttachmentConsumerAcceptListInput` via: -// -// ServiceAttachmentConsumerAcceptListArgs{...} -type ServiceAttachmentConsumerAcceptListInput interface { - pulumi.Input +// Can be specified if the `action` is `redirect`. Cannot be specified for other actions. Structure is documented below. +func (o SecurityPolicyRuleTypeOutput) RedirectOptions() SecurityPolicyRuleRedirectOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleType) *SecurityPolicyRuleRedirectOptions { return v.RedirectOptions }).(SecurityPolicyRuleRedirectOptionsPtrOutput) +} - ToServiceAttachmentConsumerAcceptListOutput() ServiceAttachmentConsumerAcceptListOutput - ToServiceAttachmentConsumerAcceptListOutputWithContext(context.Context) ServiceAttachmentConsumerAcceptListOutput +type SecurityPolicyRuleTypeArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleType)(nil)).Elem() } -type ServiceAttachmentConsumerAcceptListArgs struct { - // The number of consumer forwarding rules the consumer project can - // create. - ConnectionLimit pulumi.IntInput `pulumi:"connectionLimit"` - // The network that is allowed to connect to this service attachment. - // Only one of projectIdOrNum and networkUrl may be set. - NetworkUrl pulumi.StringPtrInput `pulumi:"networkUrl"` - // A project that is allowed to connect to this service attachment. - // Only one of projectIdOrNum and networkUrl may be set. - ProjectIdOrNum pulumi.StringPtrInput `pulumi:"projectIdOrNum"` +func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutput() SecurityPolicyRuleTypeArrayOutput { + return o } -func (ServiceAttachmentConsumerAcceptListArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceAttachmentConsumerAcceptList)(nil)).Elem() +func (o SecurityPolicyRuleTypeArrayOutput) ToSecurityPolicyRuleTypeArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleTypeArrayOutput { + return o } -func (i ServiceAttachmentConsumerAcceptListArgs) ToServiceAttachmentConsumerAcceptListOutput() ServiceAttachmentConsumerAcceptListOutput { - return i.ToServiceAttachmentConsumerAcceptListOutputWithContext(context.Background()) +func (o SecurityPolicyRuleTypeArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleType { + return vs[0].([]SecurityPolicyRuleType)[vs[1].(int)] + }).(SecurityPolicyRuleTypeOutput) } -func (i ServiceAttachmentConsumerAcceptListArgs) ToServiceAttachmentConsumerAcceptListOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConsumerAcceptListOutput) +type SecurityPolicyRuleHeaderAction struct { + // The list of request headers to add or overwrite if they're already present. Structure is documented below. + RequestHeadersToAdds []SecurityPolicyRuleHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` } -// ServiceAttachmentConsumerAcceptListArrayInput is an input type that accepts ServiceAttachmentConsumerAcceptListArray and ServiceAttachmentConsumerAcceptListArrayOutput values. -// You can construct a concrete instance of `ServiceAttachmentConsumerAcceptListArrayInput` via: +// SecurityPolicyRuleHeaderActionInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs and SecurityPolicyRuleHeaderActionOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionInput` via: // -// ServiceAttachmentConsumerAcceptListArray{ ServiceAttachmentConsumerAcceptListArgs{...} } -type ServiceAttachmentConsumerAcceptListArrayInput interface { +// SecurityPolicyRuleHeaderActionArgs{...} +type SecurityPolicyRuleHeaderActionInput interface { pulumi.Input - ToServiceAttachmentConsumerAcceptListArrayOutput() ServiceAttachmentConsumerAcceptListArrayOutput - ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(context.Context) ServiceAttachmentConsumerAcceptListArrayOutput + ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput + ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionOutput } -type ServiceAttachmentConsumerAcceptListArray []ServiceAttachmentConsumerAcceptListInput +type SecurityPolicyRuleHeaderActionArgs struct { + // The list of request headers to add or overwrite if they're already present. Structure is documented below. + RequestHeadersToAdds SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` +} -func (ServiceAttachmentConsumerAcceptListArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceAttachmentConsumerAcceptList)(nil)).Elem() +func (SecurityPolicyRuleHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() } -func (i ServiceAttachmentConsumerAcceptListArray) ToServiceAttachmentConsumerAcceptListArrayOutput() ServiceAttachmentConsumerAcceptListArrayOutput { - return i.ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(context.Background()) +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { + return i.ToSecurityPolicyRuleHeaderActionOutputWithContext(context.Background()) } -func (i ServiceAttachmentConsumerAcceptListArray) ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConsumerAcceptListArrayOutput) +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput) } -type ServiceAttachmentConsumerAcceptListOutput struct{ *pulumi.OutputState } +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) +} -func (ServiceAttachmentConsumerAcceptListOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ServiceAttachmentConsumerAcceptList)(nil)).Elem() +func (i SecurityPolicyRuleHeaderActionArgs) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionOutput).ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx) } -func (o ServiceAttachmentConsumerAcceptListOutput) ToServiceAttachmentConsumerAcceptListOutput() ServiceAttachmentConsumerAcceptListOutput { - return o +// SecurityPolicyRuleHeaderActionPtrInput is an input type that accepts SecurityPolicyRuleHeaderActionArgs, SecurityPolicyRuleHeaderActionPtr and SecurityPolicyRuleHeaderActionPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionPtrInput` via: +// +// SecurityPolicyRuleHeaderActionArgs{...} +// +// or: +// +// nil +type SecurityPolicyRuleHeaderActionPtrInput interface { + pulumi.Input + + ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput + ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionPtrOutput } -func (o ServiceAttachmentConsumerAcceptListOutput) ToServiceAttachmentConsumerAcceptListOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListOutput { - return o +type securityPolicyRuleHeaderActionPtrType SecurityPolicyRuleHeaderActionArgs + +func SecurityPolicyRuleHeaderActionPtr(v *SecurityPolicyRuleHeaderActionArgs) SecurityPolicyRuleHeaderActionPtrInput { + return (*securityPolicyRuleHeaderActionPtrType)(v) } -// The number of consumer forwarding rules the consumer project can -// create. -func (o ServiceAttachmentConsumerAcceptListOutput) ConnectionLimit() pulumi.IntOutput { - return o.ApplyT(func(v ServiceAttachmentConsumerAcceptList) int { return v.ConnectionLimit }).(pulumi.IntOutput) +func (*securityPolicyRuleHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() } -// The network that is allowed to connect to this service attachment. -// Only one of projectIdOrNum and networkUrl may be set. -func (o ServiceAttachmentConsumerAcceptListOutput) NetworkUrl() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAttachmentConsumerAcceptList) *string { return v.NetworkUrl }).(pulumi.StringPtrOutput) +func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return i.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) } -// A project that is allowed to connect to this service attachment. -// Only one of projectIdOrNum and networkUrl may be set. -func (o ServiceAttachmentConsumerAcceptListOutput) ProjectIdOrNum() pulumi.StringPtrOutput { - return o.ApplyT(func(v ServiceAttachmentConsumerAcceptList) *string { return v.ProjectIdOrNum }).(pulumi.StringPtrOutput) +func (i *securityPolicyRuleHeaderActionPtrType) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionPtrOutput) } -type ServiceAttachmentConsumerAcceptListArrayOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleHeaderActionOutput struct{ *pulumi.OutputState } -func (ServiceAttachmentConsumerAcceptListArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ServiceAttachmentConsumerAcceptList)(nil)).Elem() +func (SecurityPolicyRuleHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderAction)(nil)).Elem() } -func (o ServiceAttachmentConsumerAcceptListArrayOutput) ToServiceAttachmentConsumerAcceptListArrayOutput() ServiceAttachmentConsumerAcceptListArrayOutput { +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutput() SecurityPolicyRuleHeaderActionOutput { return o } -func (o ServiceAttachmentConsumerAcceptListArrayOutput) ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListArrayOutput { +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionOutput { return o } -func (o ServiceAttachmentConsumerAcceptListArrayOutput) Index(i pulumi.IntInput) ServiceAttachmentConsumerAcceptListOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAttachmentConsumerAcceptList { - return vs[0].([]ServiceAttachmentConsumerAcceptList)[vs[1].(int)] - }).(ServiceAttachmentConsumerAcceptListOutput) +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return o.ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(context.Background()) } -type SnapshotIamBindingCondition struct { - Description *string `pulumi:"description"` - Expression string `pulumi:"expression"` - Title string `pulumi:"title"` +func (o SecurityPolicyRuleHeaderActionOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleHeaderAction) *SecurityPolicyRuleHeaderAction { + return &v + }).(SecurityPolicyRuleHeaderActionPtrOutput) } -// SnapshotIamBindingConditionInput is an input type that accepts SnapshotIamBindingConditionArgs and SnapshotIamBindingConditionOutput values. -// You can construct a concrete instance of `SnapshotIamBindingConditionInput` via: -// -// SnapshotIamBindingConditionArgs{...} -type SnapshotIamBindingConditionInput interface { - pulumi.Input - - ToSnapshotIamBindingConditionOutput() SnapshotIamBindingConditionOutput - ToSnapshotIamBindingConditionOutputWithContext(context.Context) SnapshotIamBindingConditionOutput +// The list of request headers to add or overwrite if they're already present. Structure is documented below. +func (o SecurityPolicyRuleHeaderActionOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) } -type SnapshotIamBindingConditionArgs struct { - Description pulumi.StringPtrInput `pulumi:"description"` - Expression pulumi.StringInput `pulumi:"expression"` - Title pulumi.StringInput `pulumi:"title"` +type SecurityPolicyRuleHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleHeaderAction)(nil)).Elem() } -func (SnapshotIamBindingConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotIamBindingCondition)(nil)).Elem() +func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutput() SecurityPolicyRuleHeaderActionPtrOutput { + return o } -func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionOutput() SnapshotIamBindingConditionOutput { - return i.ToSnapshotIamBindingConditionOutputWithContext(context.Background()) +func (o SecurityPolicyRuleHeaderActionPtrOutput) ToSecurityPolicyRuleHeaderActionPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionPtrOutput { + return o } -func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionOutputWithContext(ctx context.Context) SnapshotIamBindingConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamBindingConditionOutput) +func (o SecurityPolicyRuleHeaderActionPtrOutput) Elem() SecurityPolicyRuleHeaderActionOutput { + return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) SecurityPolicyRuleHeaderAction { + if v != nil { + return *v + } + var ret SecurityPolicyRuleHeaderAction + return ret + }).(SecurityPolicyRuleHeaderActionOutput) } -func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { - return i.ToSnapshotIamBindingConditionPtrOutputWithContext(context.Background()) +// The list of request headers to add or overwrite if they're already present. Structure is documented below. +func (o SecurityPolicyRuleHeaderActionPtrOutput) RequestHeadersToAdds() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleHeaderAction) []SecurityPolicyRuleHeaderActionRequestHeadersToAdd { + if v == nil { + return nil + } + return v.RequestHeadersToAdds + }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) } -func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamBindingConditionOutput).ToSnapshotIamBindingConditionPtrOutputWithContext(ctx) +type SecurityPolicyRuleHeaderActionRequestHeadersToAdd struct { + // The name of the header to set. + HeaderName string `pulumi:"headerName"` + // The value to set the named header to. + HeaderValue *string `pulumi:"headerValue"` } -// SnapshotIamBindingConditionPtrInput is an input type that accepts SnapshotIamBindingConditionArgs, SnapshotIamBindingConditionPtr and SnapshotIamBindingConditionPtrOutput values. -// You can construct a concrete instance of `SnapshotIamBindingConditionPtrInput` via: -// -// SnapshotIamBindingConditionArgs{...} -// -// or: +// SecurityPolicyRuleHeaderActionRequestHeadersToAddInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs and SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddInput` via: // -// nil -type SnapshotIamBindingConditionPtrInput interface { +// SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} +type SecurityPolicyRuleHeaderActionRequestHeadersToAddInput interface { pulumi.Input - ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput - ToSnapshotIamBindingConditionPtrOutputWithContext(context.Context) SnapshotIamBindingConditionPtrOutput + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput } -type snapshotIamBindingConditionPtrType SnapshotIamBindingConditionArgs - -func SnapshotIamBindingConditionPtr(v *SnapshotIamBindingConditionArgs) SnapshotIamBindingConditionPtrInput { - return (*snapshotIamBindingConditionPtrType)(v) +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs struct { + // The name of the header to set. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value to set the named header to. + HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` } -func (*snapshotIamBindingConditionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotIamBindingCondition)(nil)).Elem() +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i *snapshotIamBindingConditionPtrType) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { - return i.ToSnapshotIamBindingConditionPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) } -func (i *snapshotIamBindingConditionPtrType) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamBindingConditionPtrOutput) +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) } -type SnapshotIamBindingConditionOutput struct{ *pulumi.OutputState } - -func (SnapshotIamBindingConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotIamBindingCondition)(nil)).Elem() -} +// SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput is an input type that accepts SecurityPolicyRuleHeaderActionRequestHeadersToAddArray and SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput` via: +// +// SecurityPolicyRuleHeaderActionRequestHeadersToAddArray{ SecurityPolicyRuleHeaderActionRequestHeadersToAddArgs{...} } +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayInput interface { + pulumi.Input -func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionOutput() SnapshotIamBindingConditionOutput { - return o + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput + ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput } -func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionOutputWithContext(ctx context.Context) SnapshotIamBindingConditionOutput { - return o -} +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArray []SecurityPolicyRuleHeaderActionRequestHeadersToAddInput -func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { - return o.ToSnapshotIamBindingConditionPtrOutputWithContext(context.Background()) +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotIamBindingCondition) *SnapshotIamBindingCondition { - return &v - }).(SnapshotIamBindingConditionPtrOutput) +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return i.ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) } -func (o SnapshotIamBindingConditionOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotIamBindingCondition) *string { return v.Description }).(pulumi.StringPtrOutput) +func (i SecurityPolicyRuleHeaderActionRequestHeadersToAddArray) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) } -func (o SnapshotIamBindingConditionOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v SnapshotIamBindingCondition) string { return v.Expression }).(pulumi.StringOutput) -} +type SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } -func (o SnapshotIamBindingConditionOutput) Title() pulumi.StringOutput { - return o.ApplyT(func(v SnapshotIamBindingCondition) string { return v.Title }).(pulumi.StringOutput) +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -type SnapshotIamBindingConditionPtrOutput struct{ *pulumi.OutputState } - -func (SnapshotIamBindingConditionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotIamBindingCondition)(nil)).Elem() +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return o } -func (o SnapshotIamBindingConditionPtrOutput) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { return o } -func (o SnapshotIamBindingConditionPtrOutput) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { - return o +// The name of the header to set. +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) } -func (o SnapshotIamBindingConditionPtrOutput) Elem() SnapshotIamBindingConditionOutput { - return o.ApplyT(func(v *SnapshotIamBindingCondition) SnapshotIamBindingCondition { - if v != nil { - return *v - } - var ret SnapshotIamBindingCondition - return ret - }).(SnapshotIamBindingConditionOutput) +// The value to set the named header to. +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleHeaderActionRequestHeadersToAdd) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) } -func (o SnapshotIamBindingConditionPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotIamBindingCondition) *string { - if v == nil { - return nil - } - return v.Description - }).(pulumi.StringPtrOutput) +type SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o SnapshotIamBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotIamBindingCondition) *string { - if v == nil { - return nil - } - return &v.Expression - }).(pulumi.StringPtrOutput) +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput() SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o } -func (o SnapshotIamBindingConditionPtrOutput) Title() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotIamBindingCondition) *string { - if v == nil { - return nil - } - return &v.Title - }).(pulumi.StringPtrOutput) +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) ToSecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput { + return o } -type SnapshotIamMemberCondition struct { - Description *string `pulumi:"description"` - Expression string `pulumi:"expression"` - Title string `pulumi:"title"` +func (o SecurityPolicyRuleHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleHeaderActionRequestHeadersToAdd { + return vs[0].([]SecurityPolicyRuleHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(SecurityPolicyRuleHeaderActionRequestHeadersToAddOutput) } -// SnapshotIamMemberConditionInput is an input type that accepts SnapshotIamMemberConditionArgs and SnapshotIamMemberConditionOutput values. -// You can construct a concrete instance of `SnapshotIamMemberConditionInput` via: +type SecurityPolicyRuleMatch struct { + // The configuration options available when specifying versionedExpr. + // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + // Structure is documented below. + Config *SecurityPolicyRuleMatchConfig `pulumi:"config"` + // 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. + // Structure is documented below. + Expr *SecurityPolicyRuleMatchExpr `pulumi:"expr"` + // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). + // Structure is documented below. + ExprOptions *SecurityPolicyRuleMatchExprOptions `pulumi:"exprOptions"` + // Preconfigured versioned expression. If this field is specified, config must also be specified. + // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + // Possible values are: `SRC_IPS_V1`. + VersionedExpr *string `pulumi:"versionedExpr"` +} + +// SecurityPolicyRuleMatchInput is an input type that accepts SecurityPolicyRuleMatchArgs and SecurityPolicyRuleMatchOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchInput` via: // -// SnapshotIamMemberConditionArgs{...} -type SnapshotIamMemberConditionInput interface { +// SecurityPolicyRuleMatchArgs{...} +type SecurityPolicyRuleMatchInput interface { pulumi.Input - ToSnapshotIamMemberConditionOutput() SnapshotIamMemberConditionOutput - ToSnapshotIamMemberConditionOutputWithContext(context.Context) SnapshotIamMemberConditionOutput + ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput + ToSecurityPolicyRuleMatchOutputWithContext(context.Context) SecurityPolicyRuleMatchOutput } -type SnapshotIamMemberConditionArgs struct { - Description pulumi.StringPtrInput `pulumi:"description"` - Expression pulumi.StringInput `pulumi:"expression"` - Title pulumi.StringInput `pulumi:"title"` +type SecurityPolicyRuleMatchArgs struct { + // The configuration options available when specifying versionedExpr. + // This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. + // Structure is documented below. + Config SecurityPolicyRuleMatchConfigPtrInput `pulumi:"config"` + // 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. + // Structure is documented below. + Expr SecurityPolicyRuleMatchExprPtrInput `pulumi:"expr"` + // The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). + // Structure is documented below. + ExprOptions SecurityPolicyRuleMatchExprOptionsPtrInput `pulumi:"exprOptions"` + // Preconfigured versioned expression. If this field is specified, config must also be specified. + // Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. + // Possible values are: `SRC_IPS_V1`. + VersionedExpr pulumi.StringPtrInput `pulumi:"versionedExpr"` } -func (SnapshotIamMemberConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotIamMemberCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() } -func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionOutput() SnapshotIamMemberConditionOutput { - return i.ToSnapshotIamMemberConditionOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { + return i.ToSecurityPolicyRuleMatchOutputWithContext(context.Background()) } -func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionOutputWithContext(ctx context.Context) SnapshotIamMemberConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamMemberConditionOutput) +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput) } -func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { - return i.ToSnapshotIamMemberConditionPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { + return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) } -func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamMemberConditionOutput).ToSnapshotIamMemberConditionPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleMatchArgs) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchOutput).ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx) } -// SnapshotIamMemberConditionPtrInput is an input type that accepts SnapshotIamMemberConditionArgs, SnapshotIamMemberConditionPtr and SnapshotIamMemberConditionPtrOutput values. -// You can construct a concrete instance of `SnapshotIamMemberConditionPtrInput` via: +// SecurityPolicyRuleMatchPtrInput is an input type that accepts SecurityPolicyRuleMatchArgs, SecurityPolicyRuleMatchPtr and SecurityPolicyRuleMatchPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchPtrInput` via: // -// SnapshotIamMemberConditionArgs{...} +// SecurityPolicyRuleMatchArgs{...} // // or: // // nil -type SnapshotIamMemberConditionPtrInput interface { +type SecurityPolicyRuleMatchPtrInput interface { pulumi.Input - ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput - ToSnapshotIamMemberConditionPtrOutputWithContext(context.Context) SnapshotIamMemberConditionPtrOutput + ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput + ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchPtrOutput } -type snapshotIamMemberConditionPtrType SnapshotIamMemberConditionArgs +type securityPolicyRuleMatchPtrType SecurityPolicyRuleMatchArgs -func SnapshotIamMemberConditionPtr(v *SnapshotIamMemberConditionArgs) SnapshotIamMemberConditionPtrInput { - return (*snapshotIamMemberConditionPtrType)(v) +func SecurityPolicyRuleMatchPtr(v *SecurityPolicyRuleMatchArgs) SecurityPolicyRuleMatchPtrInput { + return (*securityPolicyRuleMatchPtrType)(v) } -func (*snapshotIamMemberConditionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotIamMemberCondition)(nil)).Elem() +func (*securityPolicyRuleMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() } -func (i *snapshotIamMemberConditionPtrType) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { - return i.ToSnapshotIamMemberConditionPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { + return i.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) } -func (i *snapshotIamMemberConditionPtrType) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamMemberConditionPtrOutput) +func (i *securityPolicyRuleMatchPtrType) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchPtrOutput) } -type SnapshotIamMemberConditionOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchOutput struct{ *pulumi.OutputState } -func (SnapshotIamMemberConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotIamMemberCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatch)(nil)).Elem() } -func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionOutput() SnapshotIamMemberConditionOutput { +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutput() SecurityPolicyRuleMatchOutput { return o } -func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionOutputWithContext(ctx context.Context) SnapshotIamMemberConditionOutput { +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchOutput { return o } -func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { - return o.ToSnapshotIamMemberConditionPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { + return o.ToSecurityPolicyRuleMatchPtrOutputWithContext(context.Background()) } -func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotIamMemberCondition) *SnapshotIamMemberCondition { +func (o SecurityPolicyRuleMatchOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatch { return &v - }).(SnapshotIamMemberConditionPtrOutput) + }).(SecurityPolicyRuleMatchPtrOutput) } -func (o SnapshotIamMemberConditionOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotIamMemberCondition) *string { return v.Description }).(pulumi.StringPtrOutput) +// The configuration options available when specifying versionedExpr. +// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +// Structure is documented below. +func (o SecurityPolicyRuleMatchOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { return v.Config }).(SecurityPolicyRuleMatchConfigPtrOutput) } -func (o SnapshotIamMemberConditionOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v SnapshotIamMemberCondition) string { return v.Expression }).(pulumi.StringOutput) +// 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. +// Structure is documented below. +func (o SecurityPolicyRuleMatchOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { return v.Expr }).(SecurityPolicyRuleMatchExprPtrOutput) } -func (o SnapshotIamMemberConditionOutput) Title() pulumi.StringOutput { - return o.ApplyT(func(v SnapshotIamMemberCondition) string { return v.Title }).(pulumi.StringOutput) +// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). +// Structure is documented below. +func (o SecurityPolicyRuleMatchOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { return v.ExprOptions }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) } -type SnapshotIamMemberConditionPtrOutput struct{ *pulumi.OutputState } +// Preconfigured versioned expression. If this field is specified, config must also be specified. +// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. +// Possible values are: `SRC_IPS_V1`. +func (o SecurityPolicyRuleMatchOutput) VersionedExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatch) *string { return v.VersionedExpr }).(pulumi.StringPtrOutput) +} -func (SnapshotIamMemberConditionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotIamMemberCondition)(nil)).Elem() +type SecurityPolicyRuleMatchPtrOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatch)(nil)).Elem() } -func (o SnapshotIamMemberConditionPtrOutput) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { +func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutput() SecurityPolicyRuleMatchPtrOutput { return o } -func (o SnapshotIamMemberConditionPtrOutput) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { +func (o SecurityPolicyRuleMatchPtrOutput) ToSecurityPolicyRuleMatchPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchPtrOutput { return o } -func (o SnapshotIamMemberConditionPtrOutput) Elem() SnapshotIamMemberConditionOutput { - return o.ApplyT(func(v *SnapshotIamMemberCondition) SnapshotIamMemberCondition { +func (o SecurityPolicyRuleMatchPtrOutput) Elem() SecurityPolicyRuleMatchOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) SecurityPolicyRuleMatch { if v != nil { return *v } - var ret SnapshotIamMemberCondition + var ret SecurityPolicyRuleMatch return ret - }).(SnapshotIamMemberConditionOutput) + }).(SecurityPolicyRuleMatchOutput) } -func (o SnapshotIamMemberConditionPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotIamMemberCondition) *string { +// The configuration options available when specifying versionedExpr. +// This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified. +// Structure is documented below. +func (o SecurityPolicyRuleMatchPtrOutput) Config() SecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchConfig { if v == nil { return nil } - return v.Description - }).(pulumi.StringPtrOutput) + return v.Config + }).(SecurityPolicyRuleMatchConfigPtrOutput) } -func (o SnapshotIamMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotIamMemberCondition) *string { +// 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. +// Structure is documented below. +func (o SecurityPolicyRuleMatchPtrOutput) Expr() SecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExpr { if v == nil { return nil } - return &v.Expression - }).(pulumi.StringPtrOutput) + return v.Expr + }).(SecurityPolicyRuleMatchExprPtrOutput) } -func (o SnapshotIamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotIamMemberCondition) *string { +// The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr'). +// Structure is documented below. +func (o SecurityPolicyRuleMatchPtrOutput) ExprOptions() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *SecurityPolicyRuleMatchExprOptions { if v == nil { return nil } - return &v.Title + return v.ExprOptions + }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) +} + +// Preconfigured versioned expression. If this field is specified, config must also be specified. +// Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config. +// Possible values are: `SRC_IPS_V1`. +func (o SecurityPolicyRuleMatchPtrOutput) VersionedExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatch) *string { + if v == nil { + return nil + } + return v.VersionedExpr }).(pulumi.StringPtrOutput) } -type SnapshotSnapshotEncryptionKey struct { - // The name of the encryption key that is stored in Google Cloud KMS. - KmsKeySelfLink *string `pulumi:"kmsKeySelfLink"` - // The service account used for the encryption request for the given KMS key. - // If absent, the Compute Engine Service Agent service account is used. - KmsKeyServiceAccount *string `pulumi:"kmsKeyServiceAccount"` - // Specifies a 256-bit customer-supplied encryption key, encoded in - // RFC 4648 base64 to either encrypt or decrypt this resource. - // **Note**: This property is sensitive and will not be displayed in the plan. - RawKey *string `pulumi:"rawKey"` - // (Output) - // The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied - // encryption key that protects this resource. - Sha256 *string `pulumi:"sha256"` +type SecurityPolicyRuleMatchConfig struct { + // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + SrcIpRanges []string `pulumi:"srcIpRanges"` } -// SnapshotSnapshotEncryptionKeyInput is an input type that accepts SnapshotSnapshotEncryptionKeyArgs and SnapshotSnapshotEncryptionKeyOutput values. -// You can construct a concrete instance of `SnapshotSnapshotEncryptionKeyInput` via: +// SecurityPolicyRuleMatchConfigInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs and SecurityPolicyRuleMatchConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigInput` via: // -// SnapshotSnapshotEncryptionKeyArgs{...} -type SnapshotSnapshotEncryptionKeyInput interface { +// SecurityPolicyRuleMatchConfigArgs{...} +type SecurityPolicyRuleMatchConfigInput interface { pulumi.Input - ToSnapshotSnapshotEncryptionKeyOutput() SnapshotSnapshotEncryptionKeyOutput - ToSnapshotSnapshotEncryptionKeyOutputWithContext(context.Context) SnapshotSnapshotEncryptionKeyOutput + ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput + ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigOutput } -type SnapshotSnapshotEncryptionKeyArgs struct { - // The name of the encryption key that is stored in Google Cloud KMS. - KmsKeySelfLink pulumi.StringPtrInput `pulumi:"kmsKeySelfLink"` - // The service account used for the encryption request for the given KMS key. - // If absent, the Compute Engine Service Agent service account is used. - KmsKeyServiceAccount pulumi.StringPtrInput `pulumi:"kmsKeyServiceAccount"` - // Specifies a 256-bit customer-supplied encryption key, encoded in - // RFC 4648 base64 to either encrypt or decrypt this resource. - // **Note**: This property is sensitive and will not be displayed in the plan. - RawKey pulumi.StringPtrInput `pulumi:"rawKey"` - // (Output) - // The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied - // encryption key that protects this resource. - Sha256 pulumi.StringPtrInput `pulumi:"sha256"` +type SecurityPolicyRuleMatchConfigArgs struct { + // CIDR IP address range. Maximum number of srcIpRanges allowed is 10. + SrcIpRanges pulumi.StringArrayInput `pulumi:"srcIpRanges"` } -func (SnapshotSnapshotEncryptionKeyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotSnapshotEncryptionKey)(nil)).Elem() +func (SecurityPolicyRuleMatchConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyOutput() SnapshotSnapshotEncryptionKeyOutput { - return i.ToSnapshotSnapshotEncryptionKeyOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { + return i.ToSecurityPolicyRuleMatchConfigOutputWithContext(context.Background()) } -func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotSnapshotEncryptionKeyOutput) +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput) } -func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { - return i.ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { + return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) } -func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotSnapshotEncryptionKeyOutput).ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleMatchConfigArgs) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigOutput).ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx) } -// SnapshotSnapshotEncryptionKeyPtrInput is an input type that accepts SnapshotSnapshotEncryptionKeyArgs, SnapshotSnapshotEncryptionKeyPtr and SnapshotSnapshotEncryptionKeyPtrOutput values. -// You can construct a concrete instance of `SnapshotSnapshotEncryptionKeyPtrInput` via: +// SecurityPolicyRuleMatchConfigPtrInput is an input type that accepts SecurityPolicyRuleMatchConfigArgs, SecurityPolicyRuleMatchConfigPtr and SecurityPolicyRuleMatchConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchConfigPtrInput` via: // -// SnapshotSnapshotEncryptionKeyArgs{...} +// SecurityPolicyRuleMatchConfigArgs{...} // // or: // // nil -type SnapshotSnapshotEncryptionKeyPtrInput interface { +type SecurityPolicyRuleMatchConfigPtrInput interface { pulumi.Input - ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput - ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Context) SnapshotSnapshotEncryptionKeyPtrOutput + ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput + ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchConfigPtrOutput } -type snapshotSnapshotEncryptionKeyPtrType SnapshotSnapshotEncryptionKeyArgs +type securityPolicyRuleMatchConfigPtrType SecurityPolicyRuleMatchConfigArgs -func SnapshotSnapshotEncryptionKeyPtr(v *SnapshotSnapshotEncryptionKeyArgs) SnapshotSnapshotEncryptionKeyPtrInput { - return (*snapshotSnapshotEncryptionKeyPtrType)(v) +func SecurityPolicyRuleMatchConfigPtr(v *SecurityPolicyRuleMatchConfigArgs) SecurityPolicyRuleMatchConfigPtrInput { + return (*securityPolicyRuleMatchConfigPtrType)(v) } -func (*snapshotSnapshotEncryptionKeyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotSnapshotEncryptionKey)(nil)).Elem() +func (*securityPolicyRuleMatchConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (i *snapshotSnapshotEncryptionKeyPtrType) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { - return i.ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { + return i.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) } -func (i *snapshotSnapshotEncryptionKeyPtrType) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotSnapshotEncryptionKeyPtrOutput) +func (i *securityPolicyRuleMatchConfigPtrType) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchConfigPtrOutput) } -type SnapshotSnapshotEncryptionKeyOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchConfigOutput struct{ *pulumi.OutputState } -func (SnapshotSnapshotEncryptionKeyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotSnapshotEncryptionKey)(nil)).Elem() +func (SecurityPolicyRuleMatchConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyOutput() SnapshotSnapshotEncryptionKeyOutput { +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutput() SecurityPolicyRuleMatchConfigOutput { return o } -func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyOutput { +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigOutput { return o } -func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { - return o.ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { + return o.ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(context.Background()) } -func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotSnapshotEncryptionKey) *SnapshotSnapshotEncryptionKey { +func (o SecurityPolicyRuleMatchConfigOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchConfig) *SecurityPolicyRuleMatchConfig { return &v - }).(SnapshotSnapshotEncryptionKeyPtrOutput) -} - -// The name of the encryption key that is stored in Google Cloud KMS. -func (o SnapshotSnapshotEncryptionKeyOutput) KmsKeySelfLink() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.KmsKeySelfLink }).(pulumi.StringPtrOutput) -} - -// The service account used for the encryption request for the given KMS key. -// If absent, the Compute Engine Service Agent service account is used. -func (o SnapshotSnapshotEncryptionKeyOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.KmsKeyServiceAccount }).(pulumi.StringPtrOutput) -} - -// Specifies a 256-bit customer-supplied encryption key, encoded in -// RFC 4648 base64 to either encrypt or decrypt this resource. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SnapshotSnapshotEncryptionKeyOutput) RawKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.RawKey }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRuleMatchConfigPtrOutput) } -// (Output) -// The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied -// encryption key that protects this resource. -func (o SnapshotSnapshotEncryptionKeyOutput) Sha256() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.Sha256 }).(pulumi.StringPtrOutput) +// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. +func (o SecurityPolicyRuleMatchConfigOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchConfig) []string { return v.SrcIpRanges }).(pulumi.StringArrayOutput) } -type SnapshotSnapshotEncryptionKeyPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchConfigPtrOutput struct{ *pulumi.OutputState } -func (SnapshotSnapshotEncryptionKeyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotSnapshotEncryptionKey)(nil)).Elem() +func (SecurityPolicyRuleMatchConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchConfig)(nil)).Elem() } -func (o SnapshotSnapshotEncryptionKeyPtrOutput) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { +func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutput() SecurityPolicyRuleMatchConfigPtrOutput { return o } -func (o SnapshotSnapshotEncryptionKeyPtrOutput) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { +func (o SecurityPolicyRuleMatchConfigPtrOutput) ToSecurityPolicyRuleMatchConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchConfigPtrOutput { return o } -func (o SnapshotSnapshotEncryptionKeyPtrOutput) Elem() SnapshotSnapshotEncryptionKeyOutput { - return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) SnapshotSnapshotEncryptionKey { +func (o SecurityPolicyRuleMatchConfigPtrOutput) Elem() SecurityPolicyRuleMatchConfigOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) SecurityPolicyRuleMatchConfig { if v != nil { return *v } - var ret SnapshotSnapshotEncryptionKey + var ret SecurityPolicyRuleMatchConfig return ret - }).(SnapshotSnapshotEncryptionKeyOutput) -} - -// The name of the encryption key that is stored in Google Cloud KMS. -func (o SnapshotSnapshotEncryptionKeyPtrOutput) KmsKeySelfLink() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { - if v == nil { - return nil - } - return v.KmsKeySelfLink - }).(pulumi.StringPtrOutput) -} - -// The service account used for the encryption request for the given KMS key. -// If absent, the Compute Engine Service Agent service account is used. -func (o SnapshotSnapshotEncryptionKeyPtrOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { - if v == nil { - return nil - } - return v.KmsKeyServiceAccount - }).(pulumi.StringPtrOutput) -} - -// Specifies a 256-bit customer-supplied encryption key, encoded in -// RFC 4648 base64 to either encrypt or decrypt this resource. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SnapshotSnapshotEncryptionKeyPtrOutput) RawKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { - if v == nil { - return nil - } - return v.RawKey - }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRuleMatchConfigOutput) } -// (Output) -// The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied -// encryption key that protects this resource. -func (o SnapshotSnapshotEncryptionKeyPtrOutput) Sha256() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { +// CIDR IP address range. Maximum number of srcIpRanges allowed is 10. +func (o SecurityPolicyRuleMatchConfigPtrOutput) SrcIpRanges() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchConfig) []string { if v == nil { return nil } - return v.Sha256 - }).(pulumi.StringPtrOutput) + return v.SrcIpRanges + }).(pulumi.StringArrayOutput) } -type SnapshotSourceDiskEncryptionKey struct { - // The service account used for the encryption request for the given KMS key. - // If absent, the Compute Engine Service Agent service account is used. - KmsKeyServiceAccount *string `pulumi:"kmsKeyServiceAccount"` - // Specifies a 256-bit customer-supplied encryption key, encoded in - // RFC 4648 base64 to either encrypt or decrypt this resource. - // **Note**: This property is sensitive and will not be displayed in the plan. - RawKey *string `pulumi:"rawKey"` +type SecurityPolicyRuleMatchExpr struct { + // 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. + Expression string `pulumi:"expression"` } -// SnapshotSourceDiskEncryptionKeyInput is an input type that accepts SnapshotSourceDiskEncryptionKeyArgs and SnapshotSourceDiskEncryptionKeyOutput values. -// You can construct a concrete instance of `SnapshotSourceDiskEncryptionKeyInput` via: +// SecurityPolicyRuleMatchExprInput is an input type that accepts SecurityPolicyRuleMatchExprArgs and SecurityPolicyRuleMatchExprOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprInput` via: // -// SnapshotSourceDiskEncryptionKeyArgs{...} -type SnapshotSourceDiskEncryptionKeyInput interface { +// SecurityPolicyRuleMatchExprArgs{...} +type SecurityPolicyRuleMatchExprInput interface { pulumi.Input - ToSnapshotSourceDiskEncryptionKeyOutput() SnapshotSourceDiskEncryptionKeyOutput - ToSnapshotSourceDiskEncryptionKeyOutputWithContext(context.Context) SnapshotSourceDiskEncryptionKeyOutput + ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput + ToSecurityPolicyRuleMatchExprOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOutput } -type SnapshotSourceDiskEncryptionKeyArgs struct { - // The service account used for the encryption request for the given KMS key. - // If absent, the Compute Engine Service Agent service account is used. - KmsKeyServiceAccount pulumi.StringPtrInput `pulumi:"kmsKeyServiceAccount"` - // Specifies a 256-bit customer-supplied encryption key, encoded in - // RFC 4648 base64 to either encrypt or decrypt this resource. - // **Note**: This property is sensitive and will not be displayed in the plan. - RawKey pulumi.StringPtrInput `pulumi:"rawKey"` +type SecurityPolicyRuleMatchExprArgs struct { + // 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. + Expression pulumi.StringInput `pulumi:"expression"` } -func (SnapshotSourceDiskEncryptionKeyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotSourceDiskEncryptionKey)(nil)).Elem() +func (SecurityPolicyRuleMatchExprArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyOutput() SnapshotSourceDiskEncryptionKeyOutput { - return i.ToSnapshotSourceDiskEncryptionKeyOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { + return i.ToSecurityPolicyRuleMatchExprOutputWithContext(context.Background()) } -func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotSourceDiskEncryptionKeyOutput) +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput) } -func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { - return i.ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { + return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) } -func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotSourceDiskEncryptionKeyOutput).ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleMatchExprArgs) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOutput).ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx) } -// SnapshotSourceDiskEncryptionKeyPtrInput is an input type that accepts SnapshotSourceDiskEncryptionKeyArgs, SnapshotSourceDiskEncryptionKeyPtr and SnapshotSourceDiskEncryptionKeyPtrOutput values. -// You can construct a concrete instance of `SnapshotSourceDiskEncryptionKeyPtrInput` via: +// SecurityPolicyRuleMatchExprPtrInput is an input type that accepts SecurityPolicyRuleMatchExprArgs, SecurityPolicyRuleMatchExprPtr and SecurityPolicyRuleMatchExprPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprPtrInput` via: // -// SnapshotSourceDiskEncryptionKeyArgs{...} +// SecurityPolicyRuleMatchExprArgs{...} // // or: // // nil -type SnapshotSourceDiskEncryptionKeyPtrInput interface { +type SecurityPolicyRuleMatchExprPtrInput interface { pulumi.Input - ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput - ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput + ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput + ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprPtrOutput } -type snapshotSourceDiskEncryptionKeyPtrType SnapshotSourceDiskEncryptionKeyArgs +type securityPolicyRuleMatchExprPtrType SecurityPolicyRuleMatchExprArgs -func SnapshotSourceDiskEncryptionKeyPtr(v *SnapshotSourceDiskEncryptionKeyArgs) SnapshotSourceDiskEncryptionKeyPtrInput { - return (*snapshotSourceDiskEncryptionKeyPtrType)(v) +func SecurityPolicyRuleMatchExprPtr(v *SecurityPolicyRuleMatchExprArgs) SecurityPolicyRuleMatchExprPtrInput { + return (*securityPolicyRuleMatchExprPtrType)(v) } -func (*snapshotSourceDiskEncryptionKeyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotSourceDiskEncryptionKey)(nil)).Elem() +func (*securityPolicyRuleMatchExprPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (i *snapshotSourceDiskEncryptionKeyPtrType) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { - return i.ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { + return i.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) } -func (i *snapshotSourceDiskEncryptionKeyPtrType) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SnapshotSourceDiskEncryptionKeyPtrOutput) +func (i *securityPolicyRuleMatchExprPtrType) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprPtrOutput) } -type SnapshotSourceDiskEncryptionKeyOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchExprOutput struct{ *pulumi.OutputState } -func (SnapshotSourceDiskEncryptionKeyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SnapshotSourceDiskEncryptionKey)(nil)).Elem() +func (SecurityPolicyRuleMatchExprOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyOutput() SnapshotSourceDiskEncryptionKeyOutput { +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutput() SecurityPolicyRuleMatchExprOutput { return o } -func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyOutput { +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOutput { return o } -func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { - return o.ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { + return o.ToSecurityPolicyRuleMatchExprPtrOutputWithContext(context.Background()) } -func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotSourceDiskEncryptionKey) *SnapshotSourceDiskEncryptionKey { +func (o SecurityPolicyRuleMatchExprOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExpr) *SecurityPolicyRuleMatchExpr { return &v - }).(SnapshotSourceDiskEncryptionKeyPtrOutput) -} - -// The service account used for the encryption request for the given KMS key. -// If absent, the Compute Engine Service Agent service account is used. -func (o SnapshotSourceDiskEncryptionKeyOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotSourceDiskEncryptionKey) *string { return v.KmsKeyServiceAccount }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRuleMatchExprPtrOutput) } -// Specifies a 256-bit customer-supplied encryption key, encoded in -// RFC 4648 base64 to either encrypt or decrypt this resource. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SnapshotSourceDiskEncryptionKeyOutput) RawKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v SnapshotSourceDiskEncryptionKey) *string { return v.RawKey }).(pulumi.StringPtrOutput) +// 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. +func (o SecurityPolicyRuleMatchExprOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExpr) string { return v.Expression }).(pulumi.StringOutput) } -type SnapshotSourceDiskEncryptionKeyPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchExprPtrOutput struct{ *pulumi.OutputState } -func (SnapshotSourceDiskEncryptionKeyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SnapshotSourceDiskEncryptionKey)(nil)).Elem() +func (SecurityPolicyRuleMatchExprPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExpr)(nil)).Elem() } -func (o SnapshotSourceDiskEncryptionKeyPtrOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { +func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutput() SecurityPolicyRuleMatchExprPtrOutput { return o } -func (o SnapshotSourceDiskEncryptionKeyPtrOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { +func (o SecurityPolicyRuleMatchExprPtrOutput) ToSecurityPolicyRuleMatchExprPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprPtrOutput { return o } -func (o SnapshotSourceDiskEncryptionKeyPtrOutput) Elem() SnapshotSourceDiskEncryptionKeyOutput { - return o.ApplyT(func(v *SnapshotSourceDiskEncryptionKey) SnapshotSourceDiskEncryptionKey { +func (o SecurityPolicyRuleMatchExprPtrOutput) Elem() SecurityPolicyRuleMatchExprOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) SecurityPolicyRuleMatchExpr { if v != nil { return *v } - var ret SnapshotSourceDiskEncryptionKey + var ret SecurityPolicyRuleMatchExpr return ret - }).(SnapshotSourceDiskEncryptionKeyOutput) -} - -// The service account used for the encryption request for the given KMS key. -// If absent, the Compute Engine Service Agent service account is used. -func (o SnapshotSourceDiskEncryptionKeyPtrOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotSourceDiskEncryptionKey) *string { - if v == nil { - return nil - } - return v.KmsKeyServiceAccount - }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRuleMatchExprOutput) } -// Specifies a 256-bit customer-supplied encryption key, encoded in -// RFC 4648 base64 to either encrypt or decrypt this resource. -// **Note**: This property is sensitive and will not be displayed in the plan. -func (o SnapshotSourceDiskEncryptionKeyPtrOutput) RawKey() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SnapshotSourceDiskEncryptionKey) *string { +// 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. +func (o SecurityPolicyRuleMatchExprPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExpr) *string { if v == nil { return nil } - return v.RawKey + return &v.Expression }).(pulumi.StringPtrOutput) } -type SubnetworkIAMBindingCondition struct { - // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. - // - // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the - // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will - // consider it to be an entirely different resource and will treat it as such. - Description *string `pulumi:"description"` - // Textual representation of an expression in Common Expression Language syntax. - Expression string `pulumi:"expression"` - // A title for the expression, i.e. a short string describing its purpose. - Title string `pulumi:"title"` +type SecurityPolicyRuleMatchExprOptions struct { + // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. + // Structure is documented below. + RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptions `pulumi:"recaptchaOptions"` } -// SubnetworkIAMBindingConditionInput is an input type that accepts SubnetworkIAMBindingConditionArgs and SubnetworkIAMBindingConditionOutput values. -// You can construct a concrete instance of `SubnetworkIAMBindingConditionInput` via: +// SecurityPolicyRuleMatchExprOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs and SecurityPolicyRuleMatchExprOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsInput` via: // -// SubnetworkIAMBindingConditionArgs{...} -type SubnetworkIAMBindingConditionInput interface { +// SecurityPolicyRuleMatchExprOptionsArgs{...} +type SecurityPolicyRuleMatchExprOptionsInput interface { pulumi.Input - ToSubnetworkIAMBindingConditionOutput() SubnetworkIAMBindingConditionOutput - ToSubnetworkIAMBindingConditionOutputWithContext(context.Context) SubnetworkIAMBindingConditionOutput + ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput + ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsOutput } -type SubnetworkIAMBindingConditionArgs struct { - // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. - // - // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the - // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will - // consider it to be an entirely different resource and will treat it as such. - Description pulumi.StringPtrInput `pulumi:"description"` - // Textual representation of an expression in Common Expression Language syntax. - Expression pulumi.StringInput `pulumi:"expression"` - // A title for the expression, i.e. a short string describing its purpose. - Title pulumi.StringInput `pulumi:"title"` +type SecurityPolicyRuleMatchExprOptionsArgs struct { + // reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. + // Structure is documented below. + RecaptchaOptions SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput `pulumi:"recaptchaOptions"` } -func (SubnetworkIAMBindingConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkIAMBindingCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchExprOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() } -func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionOutput() SubnetworkIAMBindingConditionOutput { - return i.ToSubnetworkIAMBindingConditionOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(context.Background()) } -func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMBindingConditionOutput) +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput) } -func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { - return i.ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) } -func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMBindingConditionOutput).ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleMatchExprOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx) } -// SubnetworkIAMBindingConditionPtrInput is an input type that accepts SubnetworkIAMBindingConditionArgs, SubnetworkIAMBindingConditionPtr and SubnetworkIAMBindingConditionPtrOutput values. -// You can construct a concrete instance of `SubnetworkIAMBindingConditionPtrInput` via: +// SecurityPolicyRuleMatchExprOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsArgs, SecurityPolicyRuleMatchExprOptionsPtr and SecurityPolicyRuleMatchExprOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsPtrInput` via: // -// SubnetworkIAMBindingConditionArgs{...} +// SecurityPolicyRuleMatchExprOptionsArgs{...} // // or: // // nil -type SubnetworkIAMBindingConditionPtrInput interface { +type SecurityPolicyRuleMatchExprOptionsPtrInput interface { pulumi.Input - ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput - ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Context) SubnetworkIAMBindingConditionPtrOutput + ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput + ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput } -type subnetworkIAMBindingConditionPtrType SubnetworkIAMBindingConditionArgs +type securityPolicyRuleMatchExprOptionsPtrType SecurityPolicyRuleMatchExprOptionsArgs -func SubnetworkIAMBindingConditionPtr(v *SubnetworkIAMBindingConditionArgs) SubnetworkIAMBindingConditionPtrInput { - return (*subnetworkIAMBindingConditionPtrType)(v) +func SecurityPolicyRuleMatchExprOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsArgs) SecurityPolicyRuleMatchExprOptionsPtrInput { + return (*securityPolicyRuleMatchExprOptionsPtrType)(v) } -func (*subnetworkIAMBindingConditionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetworkIAMBindingCondition)(nil)).Elem() +func (*securityPolicyRuleMatchExprOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() } -func (i *subnetworkIAMBindingConditionPtrType) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { - return i.ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) } -func (i *subnetworkIAMBindingConditionPtrType) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMBindingConditionPtrOutput) +func (i *securityPolicyRuleMatchExprOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsPtrOutput) } -type SubnetworkIAMBindingConditionOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchExprOptionsOutput struct{ *pulumi.OutputState } -func (SubnetworkIAMBindingConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkIAMBindingCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchExprOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptions)(nil)).Elem() } -func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionOutput() SubnetworkIAMBindingConditionOutput { +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutput() SecurityPolicyRuleMatchExprOptionsOutput { return o } -func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionOutput { +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsOutput { return o } -func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { - return o.ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(context.Background()) } -func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetworkIAMBindingCondition) *SubnetworkIAMBindingCondition { +func (o SecurityPolicyRuleMatchExprOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptions { return &v - }).(SubnetworkIAMBindingConditionPtrOutput) -} - -// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. -// -// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the -// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will -// consider it to be an entirely different resource and will treat it as such. -func (o SubnetworkIAMBindingConditionOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetworkIAMBindingCondition) *string { return v.Description }).(pulumi.StringPtrOutput) -} - -// Textual representation of an expression in Common Expression Language syntax. -func (o SubnetworkIAMBindingConditionOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v SubnetworkIAMBindingCondition) string { return v.Expression }).(pulumi.StringOutput) + }).(SecurityPolicyRuleMatchExprOptionsPtrOutput) } -// A title for the expression, i.e. a short string describing its purpose. -func (o SubnetworkIAMBindingConditionOutput) Title() pulumi.StringOutput { - return o.ApplyT(func(v SubnetworkIAMBindingCondition) string { return v.Title }).(pulumi.StringOutput) +// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. +// Structure is documented below. +func (o SecurityPolicyRuleMatchExprOptionsOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { + return v.RecaptchaOptions + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) } -type SubnetworkIAMBindingConditionPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchExprOptionsPtrOutput struct{ *pulumi.OutputState } -func (SubnetworkIAMBindingConditionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetworkIAMBindingCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchExprOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptions)(nil)).Elem() } -func (o SubnetworkIAMBindingConditionPtrOutput) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsPtrOutput { return o } -func (o SubnetworkIAMBindingConditionPtrOutput) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsPtrOutput { return o } -func (o SubnetworkIAMBindingConditionPtrOutput) Elem() SubnetworkIAMBindingConditionOutput { - return o.ApplyT(func(v *SubnetworkIAMBindingCondition) SubnetworkIAMBindingCondition { +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) SecurityPolicyRuleMatchExprOptions { if v != nil { return *v } - var ret SubnetworkIAMBindingCondition + var ret SecurityPolicyRuleMatchExprOptions return ret - }).(SubnetworkIAMBindingConditionOutput) -} - -// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. -// -// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the -// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will -// consider it to be an entirely different resource and will treat it as such. -func (o SubnetworkIAMBindingConditionPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkIAMBindingCondition) *string { - if v == nil { - return nil - } - return v.Description - }).(pulumi.StringPtrOutput) -} - -// Textual representation of an expression in Common Expression Language syntax. -func (o SubnetworkIAMBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkIAMBindingCondition) *string { - if v == nil { - return nil - } - return &v.Expression - }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRuleMatchExprOptionsOutput) } -// A title for the expression, i.e. a short string describing its purpose. -func (o SubnetworkIAMBindingConditionPtrOutput) Title() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkIAMBindingCondition) *string { +// reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect. +// Structure is documented below. +func (o SecurityPolicyRuleMatchExprOptionsPtrOutput) RecaptchaOptions() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { if v == nil { return nil } - return &v.Title - }).(pulumi.StringPtrOutput) + return &v.RecaptchaOptions + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) } -type SubnetworkIAMMemberCondition struct { - // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. - // - // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the - // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will - // consider it to be an entirely different resource and will treat it as such. - Description *string `pulumi:"description"` - // Textual representation of an expression in Common Expression Language syntax. - Expression string `pulumi:"expression"` - // A title for the expression, i.e. a short string describing its purpose. - Title string `pulumi:"title"` +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptions struct { + // 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. + ActionTokenSiteKeys []string `pulumi:"actionTokenSiteKeys"` + // 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. + SessionTokenSiteKeys []string `pulumi:"sessionTokenSiteKeys"` } -// SubnetworkIAMMemberConditionInput is an input type that accepts SubnetworkIAMMemberConditionArgs and SubnetworkIAMMemberConditionOutput values. -// You can construct a concrete instance of `SubnetworkIAMMemberConditionInput` via: +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput` via: // -// SubnetworkIAMMemberConditionArgs{...} -type SubnetworkIAMMemberConditionInput interface { +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsInput interface { pulumi.Input - ToSubnetworkIAMMemberConditionOutput() SubnetworkIAMMemberConditionOutput - ToSubnetworkIAMMemberConditionOutputWithContext(context.Context) SubnetworkIAMMemberConditionOutput + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput } -type SubnetworkIAMMemberConditionArgs struct { - // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. - // - // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the - // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will - // consider it to be an entirely different resource and will treat it as such. - Description pulumi.StringPtrInput `pulumi:"description"` - // Textual representation of an expression in Common Expression Language syntax. - Expression pulumi.StringInput `pulumi:"expression"` - // A title for the expression, i.e. a short string describing its purpose. - Title pulumi.StringInput `pulumi:"title"` +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs struct { + // 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. + ActionTokenSiteKeys pulumi.StringArrayInput `pulumi:"actionTokenSiteKeys"` + // 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. + SessionTokenSiteKeys pulumi.StringArrayInput `pulumi:"sessionTokenSiteKeys"` } -func (SubnetworkIAMMemberConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkIAMMemberCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() } -func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionOutput() SubnetworkIAMMemberConditionOutput { - return i.ToSubnetworkIAMMemberConditionOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(context.Background()) } -func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMMemberConditionOutput) +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) } -func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { - return i.ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) } -func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMMemberConditionOutput).ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput).ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx) } -// SubnetworkIAMMemberConditionPtrInput is an input type that accepts SubnetworkIAMMemberConditionArgs, SubnetworkIAMMemberConditionPtr and SubnetworkIAMMemberConditionPtrOutput values. -// You can construct a concrete instance of `SubnetworkIAMMemberConditionPtrInput` via: +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput is an input type that accepts SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs, SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr and SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput` via: // -// SubnetworkIAMMemberConditionArgs{...} +// SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs{...} // // or: // // nil -type SubnetworkIAMMemberConditionPtrInput interface { +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput interface { pulumi.Input - ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput - ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Context) SubnetworkIAMMemberConditionPtrOutput + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput + ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput } -type subnetworkIAMMemberConditionPtrType SubnetworkIAMMemberConditionArgs +type securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs -func SubnetworkIAMMemberConditionPtr(v *SubnetworkIAMMemberConditionArgs) SubnetworkIAMMemberConditionPtrInput { - return (*subnetworkIAMMemberConditionPtrType)(v) +func SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtr(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsArgs) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrInput { + return (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType)(v) } -func (*subnetworkIAMMemberConditionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetworkIAMMemberCondition)(nil)).Elem() +func (*securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() } -func (i *subnetworkIAMMemberConditionPtrType) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { - return i.ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return i.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) } -func (i *subnetworkIAMMemberConditionPtrType) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMMemberConditionPtrOutput) +func (i *securityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrType) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) } -type SubnetworkIAMMemberConditionOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput struct{ *pulumi.OutputState } -func (SubnetworkIAMMemberConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkIAMMemberCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() } -func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionOutput() SubnetworkIAMMemberConditionOutput { +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { return o } -func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionOutput { +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { return o } -func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { - return o.ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o.ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(context.Background()) } -func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetworkIAMMemberCondition) *SubnetworkIAMMemberCondition { +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { return &v - }).(SubnetworkIAMMemberConditionPtrOutput) -} - -// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. -// -// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the -// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will -// consider it to be an entirely different resource and will treat it as such. -func (o SubnetworkIAMMemberConditionOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetworkIAMMemberCondition) *string { return v.Description }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) } -// Textual representation of an expression in Common Expression Language syntax. -func (o SubnetworkIAMMemberConditionOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v SubnetworkIAMMemberCondition) string { return v.Expression }).(pulumi.StringOutput) +// 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. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.ActionTokenSiteKeys }).(pulumi.StringArrayOutput) } -// A title for the expression, i.e. a short string describing its purpose. -func (o SubnetworkIAMMemberConditionOutput) Title() pulumi.StringOutput { - return o.ApplyT(func(v SubnetworkIAMMemberCondition) string { return v.Title }).(pulumi.StringOutput) +// 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. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { return v.SessionTokenSiteKeys }).(pulumi.StringArrayOutput) } -type SubnetworkIAMMemberConditionPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput struct{ *pulumi.OutputState } -func (SubnetworkIAMMemberConditionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetworkIAMMemberCondition)(nil)).Elem() +func (SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleMatchExprOptionsRecaptchaOptions)(nil)).Elem() } -func (o SubnetworkIAMMemberConditionPtrOutput) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { return o } -func (o SubnetworkIAMMemberConditionPtrOutput) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ToSecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput { return o } -func (o SubnetworkIAMMemberConditionPtrOutput) Elem() SubnetworkIAMMemberConditionOutput { - return o.ApplyT(func(v *SubnetworkIAMMemberCondition) SubnetworkIAMMemberCondition { +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) Elem() SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) SecurityPolicyRuleMatchExprOptionsRecaptchaOptions { if v != nil { return *v } - var ret SubnetworkIAMMemberCondition + var ret SecurityPolicyRuleMatchExprOptionsRecaptchaOptions return ret - }).(SubnetworkIAMMemberConditionOutput) -} - -// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. -// -// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the -// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will -// consider it to be an entirely different resource and will treat it as such. -func (o SubnetworkIAMMemberConditionPtrOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkIAMMemberCondition) *string { - if v == nil { - return nil - } - return v.Description - }).(pulumi.StringPtrOutput) -} - -// Textual representation of an expression in Common Expression Language syntax. -func (o SubnetworkIAMMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkIAMMemberCondition) *string { - if v == nil { - return nil - } - return &v.Expression - }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsOutput) } -// A title for the expression, i.e. a short string describing its purpose. -func (o SubnetworkIAMMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkIAMMemberCondition) *string { +// 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. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) ActionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { if v == nil { return nil } - return &v.Title - }).(pulumi.StringPtrOutput) + return v.ActionTokenSiteKeys + }).(pulumi.StringArrayOutput) } -type SubnetworkLogConfig struct { - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // Toggles the aggregation interval for collecting flow logs. Increasing the - // interval time will reduce the amount of generated flow logs for long - // lasting connections. Default is an interval of 5 seconds per connection. - // Default value is `INTERVAL_5_SEC`. - // Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. - AggregationInterval *string `pulumi:"aggregationInterval"` - // Export filter used to define which VPC flow logs should be logged, as as CEL expression. See - // https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. - // The default value is 'true', which evaluates to include everything. - FilterExpr *string `pulumi:"filterExpr"` - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // The value of the field must be in [0, 1]. Set the sampling rate of VPC - // flow logs within the subnetwork where 1.0 means all collected logs are - // reported and 0.0 means no logs are reported. Default is 0.5 which means - // half of all collected logs are reported. - FlowSampling *float64 `pulumi:"flowSampling"` - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // Configures whether metadata fields should be added to the reported VPC - // flow logs. - // Default value is `INCLUDE_ALL_METADATA`. - // Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. - Metadata *string `pulumi:"metadata"` - // List of metadata fields that should be added to reported logs. - // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. - MetadataFields []string `pulumi:"metadataFields"` +// 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. +func (o SecurityPolicyRuleMatchExprOptionsRecaptchaOptionsPtrOutput) SessionTokenSiteKeys() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleMatchExprOptionsRecaptchaOptions) []string { + if v == nil { + return nil + } + return v.SessionTokenSiteKeys + }).(pulumi.StringArrayOutput) } -// SubnetworkLogConfigInput is an input type that accepts SubnetworkLogConfigArgs and SubnetworkLogConfigOutput values. -// You can construct a concrete instance of `SubnetworkLogConfigInput` via: +type SecurityPolicyRulePreconfiguredWafConfig struct { + // An exclusion to apply during preconfigured WAF evaluation. + // Structure is documented below. + Exclusions []SecurityPolicyRulePreconfiguredWafConfigExclusion `pulumi:"exclusions"` +} + +// SecurityPolicyRulePreconfiguredWafConfigInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs and SecurityPolicyRulePreconfiguredWafConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigInput` via: // -// SubnetworkLogConfigArgs{...} -type SubnetworkLogConfigInput interface { +// SecurityPolicyRulePreconfiguredWafConfigArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigInput interface { pulumi.Input - ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput - ToSubnetworkLogConfigOutputWithContext(context.Context) SubnetworkLogConfigOutput + ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput + ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput } -type SubnetworkLogConfigArgs struct { - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // Toggles the aggregation interval for collecting flow logs. Increasing the - // interval time will reduce the amount of generated flow logs for long - // lasting connections. Default is an interval of 5 seconds per connection. - // Default value is `INTERVAL_5_SEC`. - // Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. - AggregationInterval pulumi.StringPtrInput `pulumi:"aggregationInterval"` - // Export filter used to define which VPC flow logs should be logged, as as CEL expression. See - // https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. - // The default value is 'true', which evaluates to include everything. - FilterExpr pulumi.StringPtrInput `pulumi:"filterExpr"` - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // The value of the field must be in [0, 1]. Set the sampling rate of VPC - // flow logs within the subnetwork where 1.0 means all collected logs are - // reported and 0.0 means no logs are reported. Default is 0.5 which means - // half of all collected logs are reported. - FlowSampling pulumi.Float64PtrInput `pulumi:"flowSampling"` - // Can only be specified if VPC flow logging for this subnetwork is enabled. - // Configures whether metadata fields should be added to the reported VPC - // flow logs. - // Default value is `INCLUDE_ALL_METADATA`. - // Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. - Metadata pulumi.StringPtrInput `pulumi:"metadata"` - // List of metadata fields that should be added to reported logs. - // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. - MetadataFields pulumi.StringArrayInput `pulumi:"metadataFields"` +type SecurityPolicyRulePreconfiguredWafConfigArgs struct { + // An exclusion to apply during preconfigured WAF evaluation. + // Structure is documented below. + Exclusions SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput `pulumi:"exclusions"` } -func (SubnetworkLogConfigArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkLogConfig)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput { - return i.ToSubnetworkLogConfigOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(context.Background()) } -func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigOutputWithContext(ctx context.Context) SubnetworkLogConfigOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput) } -func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { - return i.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) } -func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigOutput).ToSubnetworkLogConfigPtrOutputWithContext(ctx) +func (i SecurityPolicyRulePreconfiguredWafConfigArgs) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigOutput).ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx) } -// SubnetworkLogConfigPtrInput is an input type that accepts SubnetworkLogConfigArgs, SubnetworkLogConfigPtr and SubnetworkLogConfigPtrOutput values. -// You can construct a concrete instance of `SubnetworkLogConfigPtrInput` via: +// SecurityPolicyRulePreconfiguredWafConfigPtrInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigArgs, SecurityPolicyRulePreconfiguredWafConfigPtr and SecurityPolicyRulePreconfiguredWafConfigPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigPtrInput` via: // -// SubnetworkLogConfigArgs{...} +// SecurityPolicyRulePreconfiguredWafConfigArgs{...} // // or: // // nil -type SubnetworkLogConfigPtrInput interface { +type SecurityPolicyRulePreconfiguredWafConfigPtrInput interface { pulumi.Input - ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput - ToSubnetworkLogConfigPtrOutputWithContext(context.Context) SubnetworkLogConfigPtrOutput + ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput + ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput } -type subnetworkLogConfigPtrType SubnetworkLogConfigArgs +type securityPolicyRulePreconfiguredWafConfigPtrType SecurityPolicyRulePreconfiguredWafConfigArgs -func SubnetworkLogConfigPtr(v *SubnetworkLogConfigArgs) SubnetworkLogConfigPtrInput { - return (*subnetworkLogConfigPtrType)(v) +func SecurityPolicyRulePreconfiguredWafConfigPtr(v *SecurityPolicyRulePreconfiguredWafConfigArgs) SecurityPolicyRulePreconfiguredWafConfigPtrInput { + return (*securityPolicyRulePreconfiguredWafConfigPtrType)(v) } -func (*subnetworkLogConfigPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetworkLogConfig)(nil)).Elem() +func (*securityPolicyRulePreconfiguredWafConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (i *subnetworkLogConfigPtrType) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { - return i.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) +func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) } -func (i *subnetworkLogConfigPtrType) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigPtrOutput) +func (i *securityPolicyRulePreconfiguredWafConfigPtrType) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) } -type SubnetworkLogConfigOutput struct{ *pulumi.OutputState } +type SecurityPolicyRulePreconfiguredWafConfigOutput struct{ *pulumi.OutputState } -func (SubnetworkLogConfigOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkLogConfig)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutput() SecurityPolicyRulePreconfiguredWafConfigOutput { return o } -func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigOutputWithContext(ctx context.Context) SubnetworkLogConfigOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigOutput { return o } -func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { - return o.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(context.Background()) } -func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetworkLogConfig) *SubnetworkLogConfig { +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRulePreconfiguredWafConfig) *SecurityPolicyRulePreconfiguredWafConfig { return &v - }).(SubnetworkLogConfigPtrOutput) -} - -// Can only be specified if VPC flow logging for this subnetwork is enabled. -// Toggles the aggregation interval for collecting flow logs. Increasing the -// interval time will reduce the amount of generated flow logs for long -// lasting connections. Default is an interval of 5 seconds per connection. -// Default value is `INTERVAL_5_SEC`. -// Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. -func (o SubnetworkLogConfigOutput) AggregationInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetworkLogConfig) *string { return v.AggregationInterval }).(pulumi.StringPtrOutput) -} - -// Export filter used to define which VPC flow logs should be logged, as as CEL expression. See -// https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. -// The default value is 'true', which evaluates to include everything. -func (o SubnetworkLogConfigOutput) FilterExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetworkLogConfig) *string { return v.FilterExpr }).(pulumi.StringPtrOutput) -} - -// Can only be specified if VPC flow logging for this subnetwork is enabled. -// The value of the field must be in [0, 1]. Set the sampling rate of VPC -// flow logs within the subnetwork where 1.0 means all collected logs are -// reported and 0.0 means no logs are reported. Default is 0.5 which means -// half of all collected logs are reported. -func (o SubnetworkLogConfigOutput) FlowSampling() pulumi.Float64PtrOutput { - return o.ApplyT(func(v SubnetworkLogConfig) *float64 { return v.FlowSampling }).(pulumi.Float64PtrOutput) -} - -// Can only be specified if VPC flow logging for this subnetwork is enabled. -// Configures whether metadata fields should be added to the reported VPC -// flow logs. -// Default value is `INCLUDE_ALL_METADATA`. -// Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. -func (o SubnetworkLogConfigOutput) Metadata() pulumi.StringPtrOutput { - return o.ApplyT(func(v SubnetworkLogConfig) *string { return v.Metadata }).(pulumi.StringPtrOutput) + }).(SecurityPolicyRulePreconfiguredWafConfigPtrOutput) } -// List of metadata fields that should be added to reported logs. -// Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. -func (o SubnetworkLogConfigOutput) MetadataFields() pulumi.StringArrayOutput { - return o.ApplyT(func(v SubnetworkLogConfig) []string { return v.MetadataFields }).(pulumi.StringArrayOutput) +// An exclusion to apply during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { + return v.Exclusions + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) } -type SubnetworkLogConfigPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRulePreconfiguredWafConfigPtrOutput struct{ *pulumi.OutputState } -func (SubnetworkLogConfigPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**SubnetworkLogConfig)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRulePreconfiguredWafConfig)(nil)).Elem() } -func (o SubnetworkLogConfigPtrOutput) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutput() SecurityPolicyRulePreconfiguredWafConfigPtrOutput { return o } -func (o SubnetworkLogConfigPtrOutput) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) ToSecurityPolicyRulePreconfiguredWafConfigPtrOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigPtrOutput { return o } -func (o SubnetworkLogConfigPtrOutput) Elem() SubnetworkLogConfigOutput { - return o.ApplyT(func(v *SubnetworkLogConfig) SubnetworkLogConfig { +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Elem() SecurityPolicyRulePreconfiguredWafConfigOutput { + return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) SecurityPolicyRulePreconfiguredWafConfig { if v != nil { return *v } - var ret SubnetworkLogConfig + var ret SecurityPolicyRulePreconfiguredWafConfig return ret - }).(SubnetworkLogConfigOutput) + }).(SecurityPolicyRulePreconfiguredWafConfigOutput) } -// Can only be specified if VPC flow logging for this subnetwork is enabled. -// Toggles the aggregation interval for collecting flow logs. Increasing the -// interval time will reduce the amount of generated flow logs for long -// lasting connections. Default is an interval of 5 seconds per connection. -// Default value is `INTERVAL_5_SEC`. -// Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. -func (o SubnetworkLogConfigPtrOutput) AggregationInterval() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkLogConfig) *string { +// An exclusion to apply during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigPtrOutput) Exclusions() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRulePreconfiguredWafConfig) []SecurityPolicyRulePreconfiguredWafConfigExclusion { if v == nil { return nil } - return v.AggregationInterval - }).(pulumi.StringPtrOutput) + return v.Exclusions + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) } -// Export filter used to define which VPC flow logs should be logged, as as CEL expression. See -// https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. -// The default value is 'true', which evaluates to include everything. -func (o SubnetworkLogConfigPtrOutput) FilterExpr() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkLogConfig) *string { - if v == nil { - return nil - } - return v.FilterExpr - }).(pulumi.StringPtrOutput) +type SecurityPolicyRulePreconfiguredWafConfigExclusion struct { + // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestCookies []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky `pulumi:"requestCookies"` + // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestHeaders []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader `pulumi:"requestHeaders"` + // 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. + // Structure is documented below. + RequestQueryParams []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam `pulumi:"requestQueryParams"` + // 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. + // Structure is documented below. + RequestUris []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri `pulumi:"requestUris"` + // 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. + TargetRuleIds []string `pulumi:"targetRuleIds"` + // Target WAF rule set to apply the preconfigured WAF exclusion. + TargetRuleSet string `pulumi:"targetRuleSet"` } -// Can only be specified if VPC flow logging for this subnetwork is enabled. -// The value of the field must be in [0, 1]. Set the sampling rate of VPC -// flow logs within the subnetwork where 1.0 means all collected logs are -// reported and 0.0 means no logs are reported. Default is 0.5 which means -// half of all collected logs are reported. -func (o SubnetworkLogConfigPtrOutput) FlowSampling() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *SubnetworkLogConfig) *float64 { - if v == nil { - return nil - } - return v.FlowSampling - }).(pulumi.Float64PtrOutput) +// SecurityPolicyRulePreconfiguredWafConfigExclusionInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput } -// Can only be specified if VPC flow logging for this subnetwork is enabled. -// Configures whether metadata fields should be added to the reported VPC -// flow logs. -// Default value is `INCLUDE_ALL_METADATA`. -// Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. -func (o SubnetworkLogConfigPtrOutput) Metadata() pulumi.StringPtrOutput { - return o.ApplyT(func(v *SubnetworkLogConfig) *string { - if v == nil { - return nil - } - return v.Metadata - }).(pulumi.StringPtrOutput) +type SecurityPolicyRulePreconfiguredWafConfigExclusionArgs struct { + // Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestCookies SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput `pulumi:"requestCookies"` + // Request header whose value will be excluded from inspection during preconfigured WAF evaluation. + // Structure is documented below. + RequestHeaders SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput `pulumi:"requestHeaders"` + // 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. + // Structure is documented below. + RequestQueryParams SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput `pulumi:"requestQueryParams"` + // 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. + // Structure is documented below. + RequestUris SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput `pulumi:"requestUris"` + // 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. + TargetRuleIds pulumi.StringArrayInput `pulumi:"targetRuleIds"` + // Target WAF rule set to apply the preconfigured WAF exclusion. + TargetRuleSet pulumi.StringInput `pulumi:"targetRuleSet"` } -// List of metadata fields that should be added to reported logs. -// Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. -func (o SubnetworkLogConfigPtrOutput) MetadataFields() pulumi.StringArrayOutput { - return o.ApplyT(func(v *SubnetworkLogConfig) []string { - if v == nil { - return nil - } - return v.MetadataFields - }).(pulumi.StringArrayOutput) +func (SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -type SubnetworkSecondaryIpRange struct { - // The range of IP addresses belonging to this subnetwork secondary - // range. Provide this property when you create the subnetwork. - // Ranges must be unique and non-overlapping with all primary and - // secondary IP ranges within a network. Only IPv4 is supported. - IpCidrRange string `pulumi:"ipCidrRange"` - // The name associated with this subnetwork secondary range, used - // when adding an alias IP range to a VM instance. The name must - // be 1-63 characters long, and comply with RFC1035. The name - // must be unique within the subnetwork. - RangeName string `pulumi:"rangeName"` +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(context.Background()) } -// SubnetworkSecondaryIpRangeInput is an input type that accepts SubnetworkSecondaryIpRangeArgs and SubnetworkSecondaryIpRangeOutput values. -// You can construct a concrete instance of `SubnetworkSecondaryIpRangeInput` via: +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) +} + +// SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionArray and SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput` via: // -// SubnetworkSecondaryIpRangeArgs{...} -type SubnetworkSecondaryIpRangeInput interface { +// SecurityPolicyRulePreconfiguredWafConfigExclusionArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayInput interface { pulumi.Input - ToSubnetworkSecondaryIpRangeOutput() SubnetworkSecondaryIpRangeOutput - ToSubnetworkSecondaryIpRangeOutputWithContext(context.Context) SubnetworkSecondaryIpRangeOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput } -type SubnetworkSecondaryIpRangeArgs struct { - // The range of IP addresses belonging to this subnetwork secondary - // range. Provide this property when you create the subnetwork. - // Ranges must be unique and non-overlapping with all primary and - // secondary IP ranges within a network. Only IPv4 is supported. - IpCidrRange pulumi.StringInput `pulumi:"ipCidrRange"` - // The name associated with this subnetwork secondary range, used - // when adding an alias IP range to a VM instance. The name must - // be 1-63 characters long, and comply with RFC1035. The name - // must be unique within the subnetwork. - RangeName pulumi.StringInput `pulumi:"rangeName"` -} +type SecurityPolicyRulePreconfiguredWafConfigExclusionArray []SecurityPolicyRulePreconfiguredWafConfigExclusionInput -func (SubnetworkSecondaryIpRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkSecondaryIpRange)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -func (i SubnetworkSecondaryIpRangeArgs) ToSubnetworkSecondaryIpRangeOutput() SubnetworkSecondaryIpRangeOutput { - return i.ToSubnetworkSecondaryIpRangeOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(context.Background()) } -func (i SubnetworkSecondaryIpRangeArgs) ToSubnetworkSecondaryIpRangeOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkSecondaryIpRangeOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) } -// SubnetworkSecondaryIpRangeArrayInput is an input type that accepts SubnetworkSecondaryIpRangeArray and SubnetworkSecondaryIpRangeArrayOutput values. -// You can construct a concrete instance of `SubnetworkSecondaryIpRangeArrayInput` via: -// -// SubnetworkSecondaryIpRangeArray{ SubnetworkSecondaryIpRangeArgs{...} } -type SubnetworkSecondaryIpRangeArrayInput interface { - pulumi.Input +type SecurityPolicyRulePreconfiguredWafConfigExclusionOutput struct{ *pulumi.OutputState } - ToSubnetworkSecondaryIpRangeArrayOutput() SubnetworkSecondaryIpRangeArrayOutput - ToSubnetworkSecondaryIpRangeArrayOutputWithContext(context.Context) SubnetworkSecondaryIpRangeArrayOutput +func (SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -type SubnetworkSecondaryIpRangeArray []SubnetworkSecondaryIpRangeInput - -func (SubnetworkSecondaryIpRangeArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetworkSecondaryIpRange)(nil)).Elem() +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return o } -func (i SubnetworkSecondaryIpRangeArray) ToSubnetworkSecondaryIpRangeArrayOutput() SubnetworkSecondaryIpRangeArrayOutput { - return i.ToSubnetworkSecondaryIpRangeArrayOutputWithContext(context.Background()) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return o } -func (i SubnetworkSecondaryIpRangeArray) ToSubnetworkSecondaryIpRangeArrayOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(SubnetworkSecondaryIpRangeArrayOutput) +// Request cookie whose value will be excluded from inspection during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestCookies() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { + return v.RequestCookies + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) } -type SubnetworkSecondaryIpRangeOutput struct{ *pulumi.OutputState } - -func (SubnetworkSecondaryIpRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*SubnetworkSecondaryIpRange)(nil)).Elem() +// Request header whose value will be excluded from inspection during preconfigured WAF evaluation. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestHeaders() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { + return v.RequestHeaders + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) } -func (o SubnetworkSecondaryIpRangeOutput) ToSubnetworkSecondaryIpRangeOutput() SubnetworkSecondaryIpRangeOutput { - return o +// 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. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestQueryParams() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { + return v.RequestQueryParams + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) } -func (o SubnetworkSecondaryIpRangeOutput) ToSubnetworkSecondaryIpRangeOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeOutput { - return o +// 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. +// Structure is documented below. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) RequestUris() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { + return v.RequestUris + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) } -// The range of IP addresses belonging to this subnetwork secondary -// range. Provide this property when you create the subnetwork. -// Ranges must be unique and non-overlapping with all primary and -// secondary IP ranges within a network. Only IPv4 is supported. -func (o SubnetworkSecondaryIpRangeOutput) IpCidrRange() pulumi.StringOutput { - return o.ApplyT(func(v SubnetworkSecondaryIpRange) string { return v.IpCidrRange }).(pulumi.StringOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) []string { return v.TargetRuleIds }).(pulumi.StringArrayOutput) } -// The name associated with this subnetwork secondary range, used -// when adding an alias IP range to a VM instance. The name must -// be 1-63 characters long, and comply with RFC1035. The name -// must be unique within the subnetwork. -func (o SubnetworkSecondaryIpRangeOutput) RangeName() pulumi.StringOutput { - return o.ApplyT(func(v SubnetworkSecondaryIpRange) string { return v.RangeName }).(pulumi.StringOutput) +// Target WAF rule set to apply the preconfigured WAF exclusion. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) TargetRuleSet() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusion) string { return v.TargetRuleSet }).(pulumi.StringOutput) } -type SubnetworkSecondaryIpRangeArrayOutput struct{ *pulumi.OutputState } +type SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput struct{ *pulumi.OutputState } -func (SubnetworkSecondaryIpRangeArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]SubnetworkSecondaryIpRange)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusion)(nil)).Elem() } -func (o SubnetworkSecondaryIpRangeArrayOutput) ToSubnetworkSecondaryIpRangeArrayOutput() SubnetworkSecondaryIpRangeArrayOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { return o } -func (o SubnetworkSecondaryIpRangeArrayOutput) ToSubnetworkSecondaryIpRangeArrayOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeArrayOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput { return o } -func (o SubnetworkSecondaryIpRangeArrayOutput) Index(i pulumi.IntInput) SubnetworkSecondaryIpRangeOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetworkSecondaryIpRange { - return vs[0].([]SubnetworkSecondaryIpRange)[vs[1].(int)] - }).(SubnetworkSecondaryIpRangeOutput) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusion { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusion)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionOutput) } -type URLMapDefaultCustomErrorResponsePolicy struct { - // Specifies rules for returning error responses. - // In 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. - // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). - // If 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. - // Structure is documented below. - ErrorResponseRules []URLMapDefaultCustomErrorResponsePolicyErrorResponseRule `pulumi:"errorResponseRules"` - // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: - // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket - // compute/v1/projects/project/global/backendBuckets/myBackendBucket - // global/backendBuckets/myBackendBucket - // If 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. - // If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). - ErrorService *string `pulumi:"errorService"` +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky struct { + // 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. + Operator string `pulumi:"operator"` + // 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. + Value *string `pulumi:"value"` } -// URLMapDefaultCustomErrorResponsePolicyInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyArgs and URLMapDefaultCustomErrorResponsePolicyOutput values. -// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyInput` via: +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput` via: // -// URLMapDefaultCustomErrorResponsePolicyArgs{...} -type URLMapDefaultCustomErrorResponsePolicyInput interface { +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput interface { pulumi.Input - ToURLMapDefaultCustomErrorResponsePolicyOutput() URLMapDefaultCustomErrorResponsePolicyOutput - ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyOutput -} - -type URLMapDefaultCustomErrorResponsePolicyArgs struct { - // Specifies rules for returning error responses. - // In 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. - // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). - // If 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. - // Structure is documented below. - ErrorResponseRules URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput `pulumi:"errorResponseRules"` - // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: - // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket - // compute/v1/projects/project/global/backendBuckets/myBackendBucket - // global/backendBuckets/myBackendBucket - // If 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. - // If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). - ErrorService pulumi.StringPtrInput `pulumi:"errorService"` -} - -func (URLMapDefaultCustomErrorResponsePolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput } -func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyOutput() URLMapDefaultCustomErrorResponsePolicyOutput { - return i.ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(context.Background()) +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs struct { + // 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. + Operator pulumi.StringInput `pulumi:"operator"` + // 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. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyOutput) +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { - return i.ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(context.Background()) } -func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyOutput).ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) } -// URLMapDefaultCustomErrorResponsePolicyPtrInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyArgs, URLMapDefaultCustomErrorResponsePolicyPtr and URLMapDefaultCustomErrorResponsePolicyPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyPtrInput` via: -// -// URLMapDefaultCustomErrorResponsePolicyArgs{...} -// -// or: +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput` via: // -// nil -type URLMapDefaultCustomErrorResponsePolicyPtrInput interface { +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayInput interface { pulumi.Input - ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput - ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput } -type urlmapDefaultCustomErrorResponsePolicyPtrType URLMapDefaultCustomErrorResponsePolicyArgs - -func URLMapDefaultCustomErrorResponsePolicyPtr(v *URLMapDefaultCustomErrorResponsePolicyArgs) URLMapDefaultCustomErrorResponsePolicyPtrInput { - return (*urlmapDefaultCustomErrorResponsePolicyPtrType)(v) -} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyInput -func (*urlmapDefaultCustomErrorResponsePolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (i *urlmapDefaultCustomErrorResponsePolicyPtrType) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { - return i.ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(context.Background()) } -func (i *urlmapDefaultCustomErrorResponsePolicyPtrType) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyPtrOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) } -type URLMapDefaultCustomErrorResponsePolicyOutput struct{ *pulumi.OutputState } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput struct{ *pulumi.OutputState } -func (URLMapDefaultCustomErrorResponsePolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyOutput() URLMapDefaultCustomErrorResponsePolicyOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { return o } -func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { return o } -func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { - return o.ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) -} - -func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultCustomErrorResponsePolicy) *URLMapDefaultCustomErrorResponsePolicy { - return &v - }).(URLMapDefaultCustomErrorResponsePolicyPtrOutput) -} - -// Specifies rules for returning error responses. -// In 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. -// For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). -// If 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. -// Structure is documented below. -func (o URLMapDefaultCustomErrorResponsePolicyOutput) ErrorResponseRules() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicy) []URLMapDefaultCustomErrorResponsePolicyErrorResponseRule { - return v.ErrorResponseRules - }).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) string { return v.Operator }).(pulumi.StringOutput) } -// The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: -// https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket -// compute/v1/projects/project/global/backendBuckets/myBackendBucket -// global/backendBuckets/myBackendBucket -// If 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. -// If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). -func (o URLMapDefaultCustomErrorResponsePolicyOutput) ErrorService() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicy) *string { return v.ErrorService }).(pulumi.StringPtrOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky) *string { return v.Value }).(pulumi.StringPtrOutput) } -type URLMapDefaultCustomErrorResponsePolicyPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput struct{ *pulumi.OutputState } -func (URLMapDefaultCustomErrorResponsePolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)(nil)).Elem() } -func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { return o } -func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput { return o } -func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) Elem() URLMapDefaultCustomErrorResponsePolicyOutput { - return o.ApplyT(func(v *URLMapDefaultCustomErrorResponsePolicy) URLMapDefaultCustomErrorResponsePolicy { - if v != nil { - return *v - } - var ret URLMapDefaultCustomErrorResponsePolicy - return ret - }).(URLMapDefaultCustomErrorResponsePolicyOutput) -} - -// Specifies rules for returning error responses. -// In 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. -// For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). -// If 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. -// Structure is documented below. -func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ErrorResponseRules() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return o.ApplyT(func(v *URLMapDefaultCustomErrorResponsePolicy) []URLMapDefaultCustomErrorResponsePolicyErrorResponseRule { - if v == nil { - return nil - } - return v.ErrorResponseRules - }).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) -} - -// The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: -// https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket -// compute/v1/projects/project/global/backendBuckets/myBackendBucket -// global/backendBuckets/myBackendBucket -// If 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. -// If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). -func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ErrorService() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultCustomErrorResponsePolicy) *string { - if v == nil { - return nil - } - return v.ErrorService - }).(pulumi.StringPtrOutput) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCooky)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestCookyOutput) } -type URLMapDefaultCustomErrorResponsePolicyErrorResponseRule struct { - // Valid values include: - // - 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. - // - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. - // - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. - // Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. - MatchResponseCodes []string `pulumi:"matchResponseCodes"` - // The HTTP status code returned with the response containing the custom error content. - // If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. - OverrideResponseCode *int `pulumi:"overrideResponseCode"` - // The full path to a file within backendBucket. For example: /errors/defaultError.html - // path must start with a leading slash. path cannot have trailing slashes. - // If 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. - // The value must be from 1 to 1024 characters. - Path *string `pulumi:"path"` +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader struct { + // 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. + Operator string `pulumi:"operator"` + // 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. + Value *string `pulumi:"value"` } -// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs and URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput values. -// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput` via: +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput` via: // -// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} -type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput interface { +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput interface { pulumi.Input - ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput - ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput } -type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs struct { - // Valid values include: - // - 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. - // - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. - // - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. - // Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. - MatchResponseCodes pulumi.StringArrayInput `pulumi:"matchResponseCodes"` - // The HTTP status code returned with the response containing the custom error content. - // If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. - OverrideResponseCode pulumi.IntPtrInput `pulumi:"overrideResponseCode"` - // The full path to a file within backendBucket. For example: /errors/defaultError.html - // path must start with a leading slash. path cannot have trailing slashes. - // If 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. - // The value must be from 1 to 1024 characters. - Path pulumi.StringPtrInput `pulumi:"path"` +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs struct { + // 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. + Operator pulumi.StringInput `pulumi:"operator"` + // 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. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { - return i.ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(context.Background()) } -func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) } -// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray and URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput values. -// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput` via: +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput` via: // -// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray{ URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} } -type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput interface { +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayInput interface { pulumi.Input - ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput - ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput } -type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray []URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderInput -func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return i.ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(context.Background()) } -func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) } -type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput struct{ *pulumi.OutputState } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput struct{ *pulumi.OutputState } -func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { return o } -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { return o } -// Valid values include: -// - 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. -// - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. -// - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. -// Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) MatchResponseCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicyErrorResponseRule) []string { return v.MatchResponseCodes }).(pulumi.StringArrayOutput) -} - -// The HTTP status code returned with the response containing the custom error content. -// If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) OverrideResponseCode() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicyErrorResponseRule) *int { return v.OverrideResponseCode }).(pulumi.IntPtrOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) string { return v.Operator }).(pulumi.StringOutput) } -// The full path to a file within backendBucket. For example: /errors/defaultError.html -// path must start with a leading slash. path cannot have trailing slashes. -// If 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. -// The value must be from 1 to 1024 characters. -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) Path() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicyErrorResponseRule) *string { return v.Path }).(pulumi.StringPtrOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader) *string { return v.Value }).(pulumi.StringPtrOutput) } -type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput struct{ *pulumi.OutputState } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput struct{ *pulumi.OutputState } -func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)(nil)).Elem() } -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { return o } -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput { return o } -func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) Index(i pulumi.IntInput) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultCustomErrorResponsePolicyErrorResponseRule { - return vs[0].([]URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)[vs[1].(int)] - }).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeader)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestHeaderOutput) } -type URLMapDefaultRouteAction struct { - // The specification for allowing client side cross-origin requests. Please see - // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) - // Structure is documented below. - CorsPolicy *URLMapDefaultRouteActionCorsPolicy `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. - // As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a - // percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted - // by the Loadbalancer for a percentage of requests. - // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. - // Structure is documented below. - FaultInjectionPolicy *URLMapDefaultRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. - // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, - // the host / authority header is suffixed with -shadow. - // Structure is documented below. - RequestMirrorPolicy *URLMapDefaultRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. - // Structure is documented below. - RetryPolicy *URLMapDefaultRouteActionRetryPolicy `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time the request has been - // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. - // If not specified, will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - Timeout *URLMapDefaultRouteActionTimeout `pulumi:"timeout"` - // The spec to modify the URL of the request, prior to forwarding the request to the matched service. - // Structure is documented below. - UrlRewrite *URLMapDefaultRouteActionUrlRewrite `pulumi:"urlRewrite"` - // 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 0 number. - // Once a backendService is identified and before forwarding the request to the backend service, - // advanced routing actions like Url rewrites and header transformations are applied depending on - // additional settings specified in this HttpRouteAction. - // Structure is documented below. - WeightedBackendServices []URLMapDefaultRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam struct { + // 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. + Operator string `pulumi:"operator"` + // 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. + Value *string `pulumi:"value"` } -// URLMapDefaultRouteActionInput is an input type that accepts URLMapDefaultRouteActionArgs and URLMapDefaultRouteActionOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionInput` via: +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput` via: // -// URLMapDefaultRouteActionArgs{...} -type URLMapDefaultRouteActionInput interface { +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput interface { pulumi.Input - ToURLMapDefaultRouteActionOutput() URLMapDefaultRouteActionOutput - ToURLMapDefaultRouteActionOutputWithContext(context.Context) URLMapDefaultRouteActionOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput } -type URLMapDefaultRouteActionArgs struct { - // The specification for allowing client side cross-origin requests. Please see - // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) - // Structure is documented below. - CorsPolicy URLMapDefaultRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` - // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. - // As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a - // percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted - // by the Loadbalancer for a percentage of requests. - // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. - // Structure is documented below. - FaultInjectionPolicy URLMapDefaultRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` - // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. - // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, - // the host / authority header is suffixed with -shadow. - // Structure is documented below. - RequestMirrorPolicy URLMapDefaultRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` - // Specifies the retry policy associated with this route. - // Structure is documented below. - RetryPolicy URLMapDefaultRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` - // Specifies the timeout for the selected route. Timeout is computed from the time the request has been - // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. - // If not specified, will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - Timeout URLMapDefaultRouteActionTimeoutPtrInput `pulumi:"timeout"` - // The spec to modify the URL of the request, prior to forwarding the request to the matched service. - // Structure is documented below. - UrlRewrite URLMapDefaultRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` - // 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 0 number. - // Once a backendService is identified and before forwarding the request to the backend service, - // advanced routing actions like Url rewrites and header transformations are applied depending on - // additional settings specified in this HttpRouteAction. - // Structure is documented below. - WeightedBackendServices URLMapDefaultRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs struct { + // 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. + Operator pulumi.StringInput `pulumi:"operator"` + // 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. + Value pulumi.StringPtrInput `pulumi:"value"` } -func (URLMapDefaultRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteAction)(nil)).Elem() +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionOutput() URLMapDefaultRouteActionOutput { - return i.ToURLMapDefaultRouteActionOutputWithContext(context.Background()) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) } -func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { - return i.ToURLMapDefaultRouteActionPtrOutputWithContext(context.Background()) +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput } -func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionOutput).ToURLMapDefaultRouteActionPtrOutputWithContext(ctx) +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamInput + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -// URLMapDefaultRouteActionPtrInput is an input type that accepts URLMapDefaultRouteActionArgs, URLMapDefaultRouteActionPtr and URLMapDefaultRouteActionPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionPtrInput` via: -// -// URLMapDefaultRouteActionArgs{...} -// -// or: -// -// nil -type URLMapDefaultRouteActionPtrInput interface { - pulumi.Input +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(context.Background()) +} - ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput - ToURLMapDefaultRouteActionPtrOutputWithContext(context.Context) URLMapDefaultRouteActionPtrOutput +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) } -type urlmapDefaultRouteActionPtrType URLMapDefaultRouteActionArgs +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput struct{ *pulumi.OutputState } -func URLMapDefaultRouteActionPtr(v *URLMapDefaultRouteActionArgs) URLMapDefaultRouteActionPtrInput { - return (*urlmapDefaultRouteActionPtrType)(v) +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -func (*urlmapDefaultRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteAction)(nil)).Elem() +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return o } -func (i *urlmapDefaultRouteActionPtrType) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { - return i.ToURLMapDefaultRouteActionPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return o } -func (i *urlmapDefaultRouteActionPtrType) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionPtrOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) string { return v.Operator }).(pulumi.StringOutput) } -type URLMapDefaultRouteActionOutput struct{ *pulumi.OutputState } +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam) *string { return v.Value }).(pulumi.StringPtrOutput) +} -func (URLMapDefaultRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteAction)(nil)).Elem() +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)(nil)).Elem() } -func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionOutput() URLMapDefaultRouteActionOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { return o } -func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput { return o } -func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { - return o.ToURLMapDefaultRouteActionPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParam)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestQueryParamOutput) } -func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteAction) *URLMapDefaultRouteAction { - return &v - }).(URLMapDefaultRouteActionPtrOutput) +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri struct { + // 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. + Operator string `pulumi:"operator"` + // 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. + Value *string `pulumi:"value"` } -// The specification for allowing client side cross-origin requests. Please see -// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) -// Structure is documented below. -func (o URLMapDefaultRouteActionOutput) CorsPolicy() URLMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionCorsPolicy { return v.CorsPolicy }).(URLMapDefaultRouteActionCorsPolicyPtrOutput) +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput } -// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. -// As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a -// percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted -// by the Loadbalancer for a percentage of requests. -// timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. -// Structure is documented below. -func (o URLMapDefaultRouteActionOutput) FaultInjectionPolicy() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionFaultInjectionPolicy { - return v.FaultInjectionPolicy - }).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs struct { + // 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. + Operator pulumi.StringInput `pulumi:"operator"` + // 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. + Value pulumi.StringPtrInput `pulumi:"value"` } -// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. -// Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, -// the host / authority header is suffixed with -shadow. -// Structure is documented below. -func (o URLMapDefaultRouteActionOutput) RequestMirrorPolicy() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionRequestMirrorPolicy { - return v.RequestMirrorPolicy - }).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o URLMapDefaultRouteActionOutput) RetryPolicy() URLMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionRetryPolicy { return v.RetryPolicy }).(URLMapDefaultRouteActionRetryPolicyPtrOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(context.Background()) } -// Specifies the timeout for the selected route. Timeout is computed from the time the request has been -// fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. -// If not specified, will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o URLMapDefaultRouteActionOutput) Timeout() URLMapDefaultRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionTimeout { return v.Timeout }).(URLMapDefaultRouteActionTimeoutPtrOutput) +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) } -// The spec to modify the URL of the request, prior to forwarding the request to the matched service. -// Structure is documented below. -func (o URLMapDefaultRouteActionOutput) UrlRewrite() URLMapDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionUrlRewrite { return v.UrlRewrite }).(URLMapDefaultRouteActionUrlRewritePtrOutput) +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput is an input type that accepts SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray and SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput` via: +// +// SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray{ SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArgs{...} } +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayInput interface { + pulumi.Input + + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput + ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput } -// 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 0 number. -// Once a backendService is identified and before forwarding the request to the backend service, -// advanced routing actions like Url rewrites and header transformations are applied depending on -// additional settings specified in this HttpRouteAction. -// Structure is documented below. -func (o URLMapDefaultRouteActionOutput) WeightedBackendServices() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteAction) []URLMapDefaultRouteActionWeightedBackendService { - return v.WeightedBackendServices - }).(URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray []SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriInput + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -type URLMapDefaultRouteActionPtrOutput struct{ *pulumi.OutputState } +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return i.ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(context.Background()) +} -func (URLMapDefaultRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteAction)(nil)).Elem() +func (i SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArray) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) } -func (o URLMapDefaultRouteActionPtrOutput) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { - return o +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -func (o URLMapDefaultRouteActionPtrOutput) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { return o } -func (o URLMapDefaultRouteActionPtrOutput) Elem() URLMapDefaultRouteActionOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) URLMapDefaultRouteAction { - if v != nil { - return *v - } - var ret URLMapDefaultRouteAction - return ret - }).(URLMapDefaultRouteActionOutput) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return o } -// The specification for allowing client side cross-origin requests. Please see -// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) -// Structure is documented below. -func (o URLMapDefaultRouteActionPtrOutput) CorsPolicy() URLMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionCorsPolicy { - if v == nil { - return nil - } - return v.CorsPolicy - }).(URLMapDefaultRouteActionCorsPolicyPtrOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) string { return v.Operator }).(pulumi.StringOutput) } -// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. -// As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a -// percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted -// by the Loadbalancer for a percentage of requests. -// timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. -// Structure is documented below. -func (o URLMapDefaultRouteActionPtrOutput) FaultInjectionPolicy() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionFaultInjectionPolicy { - if v == nil { - return nil - } - return v.FaultInjectionPolicy - }).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) +// 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. +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri) *string { return v.Value }).(pulumi.StringPtrOutput) } -// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. -// Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, -// the host / authority header is suffixed with -shadow. -// Structure is documented below. -func (o URLMapDefaultRouteActionPtrOutput) RequestMirrorPolicy() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionRequestMirrorPolicy { - if v == nil { - return nil - } - return v.RequestMirrorPolicy - }).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) -} +type SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput struct{ *pulumi.OutputState } -// Specifies the retry policy associated with this route. -// Structure is documented below. -func (o URLMapDefaultRouteActionPtrOutput) RetryPolicy() URLMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionRetryPolicy { - if v == nil { - return nil - } - return v.RetryPolicy - }).(URLMapDefaultRouteActionRetryPolicyPtrOutput) +func (SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)(nil)).Elem() } -// Specifies the timeout for the selected route. Timeout is computed from the time the request has been -// fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. -// If not specified, will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o URLMapDefaultRouteActionPtrOutput) Timeout() URLMapDefaultRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionTimeout { - if v == nil { - return nil - } - return v.Timeout - }).(URLMapDefaultRouteActionTimeoutPtrOutput) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput() SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return o } -// The spec to modify the URL of the request, prior to forwarding the request to the matched service. -// Structure is documented below. -func (o URLMapDefaultRouteActionPtrOutput) UrlRewrite() URLMapDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionUrlRewrite { - if v == nil { - return nil - } - return v.UrlRewrite - }).(URLMapDefaultRouteActionUrlRewritePtrOutput) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) ToSecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutputWithContext(ctx context.Context) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput { + return o } -// 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 0 number. -// Once a backendService is identified and before forwarding the request to the backend service, -// advanced routing actions like Url rewrites and header transformations are applied depending on -// additional settings specified in this HttpRouteAction. -// Structure is documented below. -func (o URLMapDefaultRouteActionPtrOutput) WeightedBackendServices() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteAction) []URLMapDefaultRouteActionWeightedBackendService { - if v == nil { - return nil - } - return v.WeightedBackendServices - }).(URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) +func (o SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri { + return vs[0].([]SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUri)[vs[1].(int)] + }).(SecurityPolicyRulePreconfiguredWafConfigExclusionRequestUriOutput) } -type URLMapDefaultRouteActionCorsPolicy struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. - // This translates to the Access-Control-Allow-Credentials header. - AllowCredentials *bool `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders []string `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods []string `pulumi:"allowMethods"` - // Specifies the regular expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins []string `pulumi:"allowOrigins"` - // If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. - Disabled *bool `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders []string `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge *int `pulumi:"maxAge"` +type SecurityPolicyRuleRateLimitOptions struct { + // Can only be specified if the action for the rule is "rateBasedBan". + // 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. + BanDurationSec *int `pulumi:"banDurationSec"` + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. + // Structure is documented below. + BanThreshold *SecurityPolicyRuleRateLimitOptionsBanThreshold `pulumi:"banThreshold"` + // Action to take for requests that are under the configured rate limit threshold. + // Valid option is "allow" only. + ConformAction *string `pulumi:"conformAction"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * 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. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * 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. + // * 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. + // * 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. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * 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. + // * REGION_CODE: The country/region from which the request originates. + // * 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. + // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKey *string `pulumi:"enforceOnKey"` + // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. + // You can specify up to 3 enforceOnKeyConfigs. + // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. + // Structure is documented below. + EnforceOnKeyConfigs []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig `pulumi:"enforceOnKeyConfigs"` + // 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. + EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` + // 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. + ExceedAction *string `pulumi:"exceedAction"` + // 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. + // Structure is documented below. + ExceedRedirectOptions *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions `pulumi:"exceedRedirectOptions"` + // Threshold at which to begin ratelimiting. + // Structure is documented below. + RateLimitThreshold *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold `pulumi:"rateLimitThreshold"` } -// URLMapDefaultRouteActionCorsPolicyInput is an input type that accepts URLMapDefaultRouteActionCorsPolicyArgs and URLMapDefaultRouteActionCorsPolicyOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionCorsPolicyInput` via: +// SecurityPolicyRuleRateLimitOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs and SecurityPolicyRuleRateLimitOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsInput` via: // -// URLMapDefaultRouteActionCorsPolicyArgs{...} -type URLMapDefaultRouteActionCorsPolicyInput interface { +// SecurityPolicyRuleRateLimitOptionsArgs{...} +type SecurityPolicyRuleRateLimitOptionsInput interface { pulumi.Input - ToURLMapDefaultRouteActionCorsPolicyOutput() URLMapDefaultRouteActionCorsPolicyOutput - ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionCorsPolicyOutput + ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput + ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsOutput } -type URLMapDefaultRouteActionCorsPolicyArgs struct { - // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. - // This translates to the Access-Control-Allow-Credentials header. - AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` - // Specifies the content for the Access-Control-Allow-Headers header. - AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` - // Specifies the content for the Access-Control-Allow-Methods header. - AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` - // Specifies the regular expression patterns that match allowed origins. For regular expression grammar - // please see en.cppreference.com/w/cpp/regex/ecmascript - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` - // Specifies the list of origins that will be allowed to do CORS requests. - // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. - AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` - // If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. - Disabled pulumi.BoolPtrInput `pulumi:"disabled"` - // Specifies the content for the Access-Control-Expose-Headers header. - ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` - // Specifies how long results of a preflight request can be cached in seconds. - // This translates to the Access-Control-Max-Age header. - MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` +type SecurityPolicyRuleRateLimitOptionsArgs struct { + // Can only be specified if the action for the rule is "rateBasedBan". + // 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. + BanDurationSec pulumi.IntPtrInput `pulumi:"banDurationSec"` + // Can only be specified if the action for the rule is "rateBasedBan". + // If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. + // Structure is documented below. + BanThreshold SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput `pulumi:"banThreshold"` + // Action to take for requests that are under the configured rate limit threshold. + // Valid option is "allow" only. + ConformAction pulumi.StringPtrInput `pulumi:"conformAction"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * 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. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * 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. + // * 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. + // * 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. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * 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. + // * REGION_CODE: The country/region from which the request originates. + // * 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. + // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKey pulumi.StringPtrInput `pulumi:"enforceOnKey"` + // If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. + // You can specify up to 3 enforceOnKeyConfigs. + // If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. + // Structure is documented below. + EnforceOnKeyConfigs SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput `pulumi:"enforceOnKeyConfigs"` + // 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. + EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` + // 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. + ExceedAction pulumi.StringPtrInput `pulumi:"exceedAction"` + // 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. + // Structure is documented below. + ExceedRedirectOptions SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput `pulumi:"exceedRedirectOptions"` + // Threshold at which to begin ratelimiting. + // Structure is documented below. + RateLimitThreshold SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput `pulumi:"rateLimitThreshold"` } -func (URLMapDefaultRouteActionCorsPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } -func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyOutput() URLMapDefaultRouteActionCorsPolicyOutput { - return i.ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionCorsPolicyOutput) +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput) } -func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionCorsPolicyOutput).ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleRateLimitOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionCorsPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionCorsPolicyArgs, URLMapDefaultRouteActionCorsPolicyPtr and URLMapDefaultRouteActionCorsPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionCorsPolicyPtrInput` via: +// SecurityPolicyRuleRateLimitOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsArgs, SecurityPolicyRuleRateLimitOptionsPtr and SecurityPolicyRuleRateLimitOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsPtrInput` via: // -// URLMapDefaultRouteActionCorsPolicyArgs{...} +// SecurityPolicyRuleRateLimitOptionsArgs{...} // // or: // // nil -type URLMapDefaultRouteActionCorsPolicyPtrInput interface { +type SecurityPolicyRuleRateLimitOptionsPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput - ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput + ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput + ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput } -type urlmapDefaultRouteActionCorsPolicyPtrType URLMapDefaultRouteActionCorsPolicyArgs +type securityPolicyRuleRateLimitOptionsPtrType SecurityPolicyRuleRateLimitOptionsArgs -func URLMapDefaultRouteActionCorsPolicyPtr(v *URLMapDefaultRouteActionCorsPolicyArgs) URLMapDefaultRouteActionCorsPolicyPtrInput { - return (*urlmapDefaultRouteActionCorsPolicyPtrType)(v) +func SecurityPolicyRuleRateLimitOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsArgs) SecurityPolicyRuleRateLimitOptionsPtrInput { + return (*securityPolicyRuleRateLimitOptionsPtrType)(v) } -func (*urlmapDefaultRouteActionCorsPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (*securityPolicyRuleRateLimitOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } -func (i *urlmapDefaultRouteActionCorsPolicyPtrType) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionCorsPolicyPtrType) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionCorsPolicyPtrOutput) +func (i *securityPolicyRuleRateLimitOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsPtrOutput) } -type URLMapDefaultRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionCorsPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } -func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyOutput() URLMapDefaultRouteActionCorsPolicyOutput { +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutput() SecurityPolicyRuleRateLimitOptionsOutput { return o } -func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyOutput { +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsOutput { return o } -func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionCorsPolicy) *URLMapDefaultRouteActionCorsPolicy { +func (o SecurityPolicyRuleRateLimitOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptions { return &v - }).(URLMapDefaultRouteActionCorsPolicyPtrOutput) + }).(SecurityPolicyRuleRateLimitOptionsPtrOutput) } -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. -// This translates to the Access-Control-Allow-Credentials header. -func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) +// Can only be specified if the action for the rule is "rateBasedBan". +// 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. +func (o SecurityPolicyRuleRateLimitOptionsOutput) BanDurationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *int { return v.BanDurationSec }).(pulumi.IntPtrOutput) } -// Specifies the content for the Access-Control-Allow-Headers header. -func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { + return v.BanThreshold + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) } -// Specifies the content for the Access-Control-Allow-Methods header. -func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) +// Action to take for requests that are under the configured rate limit threshold. +// Valid option is "allow" only. +func (o SecurityPolicyRuleRateLimitOptionsOutput) ConformAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ConformAction }).(pulumi.StringPtrOutput) } -// Specifies the regular expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - 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. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - 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. +// - 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. +// - 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. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - 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. +// - REGION_CODE: The country/region from which the request originates. +// - 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. +// - 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKey }).(pulumi.StringPtrOutput) } -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) +// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. +// You can specify up to 3 enforceOnKeyConfigs. +// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + return v.EnforceOnKeyConfigs + }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +} + +// 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. +func (o SecurityPolicyRuleRateLimitOptionsOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) } -// If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. -func (o URLMapDefaultRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) +// 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. +func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *string { return v.ExceedAction }).(pulumi.StringPtrOutput) } -// Specifies the content for the Access-Control-Expose-Headers header. -func (o URLMapDefaultRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +// 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. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { + return v.ExceedRedirectOptions + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o URLMapDefaultRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +// Threshold at which to begin ratelimiting. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + return v.RateLimitThreshold + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) } -type URLMapDefaultRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptions)(nil)).Elem() } -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsPtrOutput { return o } -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsPtrOutput { return o } -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) Elem() URLMapDefaultRouteActionCorsPolicyOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) URLMapDefaultRouteActionCorsPolicy { +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) SecurityPolicyRuleRateLimitOptions { if v != nil { return *v } - var ret URLMapDefaultRouteActionCorsPolicy + var ret SecurityPolicyRuleRateLimitOptions return ret - }).(URLMapDefaultRouteActionCorsPolicyOutput) + }).(SecurityPolicyRuleRateLimitOptionsOutput) } -// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. -// This translates to the Access-Control-Allow-Credentials header. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) *bool { +// Can only be specified if the action for the rule is "rateBasedBan". +// 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. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanDurationSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *int { if v == nil { return nil } - return v.AllowCredentials - }).(pulumi.BoolPtrOutput) + return v.BanDurationSec + }).(pulumi.IntPtrOutput) } -// Specifies the content for the Access-Control-Allow-Headers header. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { +// Can only be specified if the action for the rule is "rateBasedBan". +// If specified, the key will be banned for the configured 'banDurationSec' when the number of requests that exceed the 'rateLimitThreshold' also exceed this 'banThreshold'. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) BanThreshold() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsBanThreshold { if v == nil { return nil } - return v.AllowHeaders - }).(pulumi.StringArrayOutput) + return v.BanThreshold + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) } -// Specifies the content for the Access-Control-Allow-Methods header. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { +// Action to take for requests that are under the configured rate limit threshold. +// Valid option is "allow" only. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ConformAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } - return v.AllowMethods - }).(pulumi.StringArrayOutput) + return v.ConformAction + }).(pulumi.StringPtrOutput) } -// Specifies the regular expression patterns that match allowed origins. For regular expression grammar -// please see en.cppreference.com/w/cpp/regex/ecmascript -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - 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. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - 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. +// - 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. +// - 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. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - 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. +// - REGION_CODE: The country/region from which the request originates. +// - 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. +// - 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } - return v.AllowOriginRegexes - }).(pulumi.StringArrayOutput) + return v.EnforceOnKey + }).(pulumi.StringPtrOutput) } -// Specifies the list of origins that will be allowed to do CORS requests. -// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { +// If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced. +// You can specify up to 3 enforceOnKeyConfigs. +// If enforceOnKeyConfigs is specified, enforceOnKey must not be specified. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyConfigs() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { if v == nil { return nil } - return v.AllowOrigins - }).(pulumi.StringArrayOutput) + return v.EnforceOnKeyConfigs + }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) } -// If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) *bool { +// 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. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } - return v.Disabled - }).(pulumi.BoolPtrOutput) + return v.EnforceOnKeyName + }).(pulumi.StringPtrOutput) } -// Specifies the content for the Access-Control-Expose-Headers header. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { +// 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(STATUS), where valid values for STATUS are 403, 404, 429, and 502. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedAction() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *string { if v == nil { return nil } - return v.ExposeHeaders - }).(pulumi.StringArrayOutput) + return v.ExceedAction + }).(pulumi.StringPtrOutput) } -// Specifies how long results of a preflight request can be cached in seconds. -// This translates to the Access-Control-Max-Age header. -func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) *int { +// 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. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) ExceedRedirectOptions() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { if v == nil { return nil } - return v.MaxAge - }).(pulumi.IntPtrOutput) + return v.ExceedRedirectOptions + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicy struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort *URLMapDefaultRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay *URLMapDefaultRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` +// Threshold at which to begin ratelimiting. +// Structure is documented below. +func (o SecurityPolicyRuleRateLimitOptionsPtrOutput) RateLimitThreshold() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptions) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { + if v == nil { + return nil + } + return v.RateLimitThreshold + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) } -// URLMapDefaultRouteActionFaultInjectionPolicyInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyArgs and URLMapDefaultRouteActionFaultInjectionPolicyOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyInput` via: +type SecurityPolicyRuleRateLimitOptionsBanThreshold struct { + // Number of HTTP(S) requests for calculating the threshold. + Count *int `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec *int `pulumi:"intervalSec"` +} + +// SecurityPolicyRuleRateLimitOptionsBanThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs and SecurityPolicyRuleRateLimitOptionsBanThresholdOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyArgs{...} -type URLMapDefaultRouteActionFaultInjectionPolicyInput interface { +// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} +type SecurityPolicyRuleRateLimitOptionsBanThresholdInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyOutput() URLMapDefaultRouteActionFaultInjectionPolicyOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyOutput + ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput + ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput } -type URLMapDefaultRouteActionFaultInjectionPolicyArgs struct { - // The specification for how client requests are aborted as part of fault injection. - // Structure is documented below. - Abort URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` - // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. - // Structure is documented below. - Delay URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` +type SecurityPolicyRuleRateLimitOptionsBanThresholdArgs struct { + // Number of HTTP(S) requests for calculating the threshold. + Count pulumi.IntPtrInput `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` } -func (URLMapDefaultRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyOutput() URLMapDefaultRouteActionFaultInjectionPolicyOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyOutput) +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionFaultInjectionPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyArgs, URLMapDefaultRouteActionFaultInjectionPolicyPtr and URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyPtrInput` via: +// SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsBanThresholdArgs, SecurityPolicyRuleRateLimitOptionsBanThresholdPtr and SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyArgs{...} +// SecurityPolicyRuleRateLimitOptionsBanThresholdArgs{...} // // or: // // nil -type URLMapDefaultRouteActionFaultInjectionPolicyPtrInput interface { +type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput + ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput + ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput } -type urlmapDefaultRouteActionFaultInjectionPolicyPtrType URLMapDefaultRouteActionFaultInjectionPolicyArgs +type securityPolicyRuleRateLimitOptionsBanThresholdPtrType SecurityPolicyRuleRateLimitOptionsBanThresholdArgs -func URLMapDefaultRouteActionFaultInjectionPolicyPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyArgs) URLMapDefaultRouteActionFaultInjectionPolicyPtrInput { - return (*urlmapDefaultRouteActionFaultInjectionPolicyPtrType)(v) +func SecurityPolicyRuleRateLimitOptionsBanThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsBanThresholdArgs) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrInput { + return (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType)(v) } -func (*urlmapDefaultRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (*securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) +func (i *securityPolicyRuleRateLimitOptionsBanThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsBanThresholdOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyOutput() URLMapDefaultRouteActionFaultInjectionPolicyOutput { +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyOutput { +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicy { +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsBanThreshold) *SecurityPolicyRuleRateLimitOptionsBanThreshold { return &v - }).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) } -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) Abort() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyAbort { - return v.Abort - }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) Delay() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyDelay { - return v.Delay - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsBanThreshold)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicy) URLMapDefaultRouteActionFaultInjectionPolicy { +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsBanThresholdOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) SecurityPolicyRuleRateLimitOptionsBanThreshold { if v != nil { return *v } - var ret URLMapDefaultRouteActionFaultInjectionPolicy + var ret SecurityPolicyRuleRateLimitOptionsBanThreshold return ret - }).(URLMapDefaultRouteActionFaultInjectionPolicyOutput) + }).(SecurityPolicyRuleRateLimitOptionsBanThresholdOutput) } -// The specification for how client requests are aborted as part of fault injection. -// Structure is documented below. -func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Abort() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyAbort { +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { if v == nil { return nil } - return v.Abort - }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) + return v.Count + }).(pulumi.IntPtrOutput) } -// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. -// Structure is documented below. -func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Delay() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyDelay { +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsBanThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsBanThreshold) *int { if v == nil { return nil } - return v.Delay - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) + return v.IntervalSec + }).(pulumi.IntPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyAbort struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus *int `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage *float64 `pulumi:"percentage"` +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig struct { + // 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. + EnforceOnKeyName *string `pulumi:"enforceOnKeyName"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * 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. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * 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. + // * 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. + // * 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. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * 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. + // * REGION_CODE: The country/region from which the request originates. + // * 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. + // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKeyType *string `pulumi:"enforceOnKeyType"` } -// URLMapDefaultRouteActionFaultInjectionPolicyAbortInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs and URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyAbortInput` via: +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} -type URLMapDefaultRouteActionFaultInjectionPolicyAbortInput interface { +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput } -type URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs struct { - // The HTTP status code used to abort the request. - // The value must be between 200 and 599 inclusive. - HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` - // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64PtrInput `pulumi:"percentage"` +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs struct { + // 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. + EnforceOnKeyName pulumi.StringPtrInput `pulumi:"enforceOnKeyName"` + // Determines the key to enforce the rateLimitThreshold on. Possible values are: + // * 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. + // * IP: The source IP address of the request is the key. Each IP has this limit enforced separately. + // * 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. + // * 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. + // * 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. + // * HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. + // * 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. + // * REGION_CODE: The country/region from which the request originates. + // * 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. + // * 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. + EnforceOnKeyType pulumi.StringPtrInput `pulumi:"enforceOnKeyType"` } -func (URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +} + +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray and SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput` via: +// +// SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray{ SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs{...} } +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput + ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray []SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigInput + +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(context.Background()) +} + +func (i SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArray) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return o +} + +// 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. +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyName }).(pulumi.StringPtrOutput) +} + +// Determines the key to enforce the rateLimitThreshold on. Possible values are: +// - 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. +// - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. +// - 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. +// - 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. +// - 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. +// - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. +// - 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. +// - REGION_CODE: The country/region from which the request originates. +// - 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. +// - 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 are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`. +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) EnforceOnKeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig) *string { return v.EnforceOnKeyType }).(pulumi.StringPtrOutput) +} + +type SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput struct{ *pulumi.OutputState } + +func (SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)(nil)).Elem() +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput() SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) ToSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput { + return o +} + +func (o SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArrayOutput) Index(i pulumi.IntInput) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { + return vs[0].([]SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig)[vs[1].(int)] + }).(SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigOutput) +} + +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions struct { + // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + Target *string `pulumi:"target"` + // Type of the redirect action. + Type *string `pulumi:"type"` +} + +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput` via: +// +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsInput interface { + pulumi.Input + + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput +} + +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs struct { + // Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. + Target pulumi.StringPtrInput `pulumi:"target"` + // Type of the redirect action. + Type pulumi.StringPtrInput `pulumi:"type"` +} + +func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() } -func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput).ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs, URLMapDefaultRouteActionFaultInjectionPolicyAbortPtr and URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput` via: +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs, SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr and SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} +// SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs{...} // // or: // // nil -type URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput interface { +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput + ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput } -type urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs +type securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs -func URLMapDefaultRouteActionFaultInjectionPolicyAbortPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput { - return (*urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType)(v) +func SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtr(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsArgs) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrInput { + return (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType)(v) } -func (*urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (*securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +func (i *securityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrType) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicyAbort) *URLMapDefaultRouteActionFaultInjectionPolicyAbort { +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { return &v - }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) } -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) +// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) } -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +// Type of the redirect action. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { return v.Type }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) ToSecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyAbort) URLMapDefaultRouteActionFaultInjectionPolicyAbort { +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions { if v != nil { return *v } - var ret URLMapDefaultRouteActionFaultInjectionPolicyAbort + var ret SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions return ret - }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) + }).(SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsOutput) } -// The HTTP status code used to abort the request. -// The value must be between 200 and 599 inclusive. -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyAbort) *int { +// Target for the redirect action. This is required if the type is EXTERNAL_302 and cannot be specified for GOOGLE_RECAPTCHA. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { if v == nil { return nil } - return v.HttpStatus - }).(pulumi.IntPtrOutput) + return v.Target + }).(pulumi.StringPtrOutput) } -// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { +// Type of the redirect action. +func (o SecurityPolicyRuleRateLimitOptionsExceedRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsExceedRedirectOptions) *string { if v == nil { return nil } - return v.Percentage - }).(pulumi.Float64PtrOutput) + return v.Type + }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyDelay struct { - // Specifies the value of the fixed delay interval. - // Structure is documented below. - FixedDelay *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage *float64 `pulumi:"percentage"` +type SecurityPolicyRuleRateLimitOptionsRateLimitThreshold struct { + // Number of HTTP(S) requests for calculating the threshold. + Count *int `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec *int `pulumi:"intervalSec"` } -// URLMapDefaultRouteActionFaultInjectionPolicyDelayInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs and URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayInput` via: +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} -type URLMapDefaultRouteActionFaultInjectionPolicyDelayInput interface { +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput } -type URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs struct { - // Specifies the value of the fixed delay interval. - // Structure is documented below. - FixedDelay URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` - // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. - // The value must be between 0.0 and 100.0 inclusive. - Percentage pulumi.Float64PtrInput `pulumi:"percentage"` +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs struct { + // Number of HTTP(S) requests for calculating the threshold. + Count pulumi.IntPtrInput `pulumi:"count"` + // Interval over which the threshold is computed. + IntervalSec pulumi.IntPtrInput `pulumi:"intervalSec"` } -func (URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput).ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs, URLMapDefaultRouteActionFaultInjectionPolicyDelayPtr and URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput` via: +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput is an input type that accepts SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs, SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr and SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} +// SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs{...} // // or: // // nil -type URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput interface { +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput + ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput } -type urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs +type securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs -func URLMapDefaultRouteActionFaultInjectionPolicyDelayPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput { - return (*urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType)(v) +func SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtr(v *SecurityPolicyRuleRateLimitOptionsRateLimitThresholdArgs) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrInput { + return (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType)(v) } -func (*urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (*securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return i.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +func (i *securityPolicyRuleRateLimitOptionsRateLimitThresholdPtrType) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicyDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelay { +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { return &v - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) } -// Specifies the value of the fixed delay interval. -// Structure is documented below. -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { - return v.FixedDelay - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.Count }).(pulumi.IntPtrOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { return v.IntervalSec }).(pulumi.IntPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRateLimitOptionsRateLimitThreshold)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) ToSecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelay) URLMapDefaultRouteActionFaultInjectionPolicyDelay { +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Elem() SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) SecurityPolicyRuleRateLimitOptionsRateLimitThreshold { if v != nil { return *v } - var ret URLMapDefaultRouteActionFaultInjectionPolicyDelay + var ret SecurityPolicyRuleRateLimitOptionsRateLimitThreshold return ret - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) + }).(SecurityPolicyRuleRateLimitOptionsRateLimitThresholdOutput) } -// Specifies the value of the fixed delay interval. -// Structure is documented below. -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +// Number of HTTP(S) requests for calculating the threshold. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { if v == nil { return nil } - return v.FixedDelay - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + return v.Count + }).(pulumi.IntPtrOutput) } -// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. -// The value must be between 0.0 and 100.0 inclusive. -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { +// Interval over which the threshold is computed. +func (o SecurityPolicyRuleRateLimitOptionsRateLimitThresholdPtrOutput) IntervalSec() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRateLimitOptionsRateLimitThreshold) *int { if v == nil { return nil } - return v.Percentage - }).(pulumi.Float64PtrOutput) + return v.IntervalSec + }).(pulumi.IntPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay struct { - // 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. - Nanos *int `pulumi:"nanos"` - // 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 - Seconds *string `pulumi:"seconds"` +type SecurityPolicyRuleRedirectOptions struct { + // External redirection target when `EXTERNAL_302` is set in `type`. + Target *string `pulumi:"target"` + // Type of redirect action. + // + // * `EXTERNAL_302`: Redirect to an external address, configured in `target`. + // * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. + Type string `pulumi:"type"` } -// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs and URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: +// SecurityPolicyRuleRedirectOptionsInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs and SecurityPolicyRuleRedirectOptionsOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} -type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { +// SecurityPolicyRuleRedirectOptionsArgs{...} +type SecurityPolicyRuleRedirectOptionsInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput + ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsOutput } -type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { - // 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. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // 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 - Seconds pulumi.StringPtrInput `pulumi:"seconds"` +type SecurityPolicyRuleRedirectOptionsArgs struct { + // External redirection target when `EXTERNAL_302` is set in `type`. + Target pulumi.StringPtrInput `pulumi:"target"` + // Type of redirect action. + // + // * `EXTERNAL_302`: Redirect to an external address, configured in `target`. + // * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. + Type pulumi.StringInput `pulumi:"type"` } -func (URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (SecurityPolicyRuleRedirectOptionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { + return i.ToSecurityPolicyRuleRedirectOptionsOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +func (i SecurityPolicyRuleRedirectOptionsArgs) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsOutput).ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs, URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr and URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: +// SecurityPolicyRuleRedirectOptionsPtrInput is an input type that accepts SecurityPolicyRuleRedirectOptionsArgs, SecurityPolicyRuleRedirectOptionsPtr and SecurityPolicyRuleRedirectOptionsPtrOutput values. +// You can construct a concrete instance of `SecurityPolicyRuleRedirectOptionsPtrInput` via: // -// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +// SecurityPolicyRuleRedirectOptionsArgs{...} // // or: // // nil -type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { +type SecurityPolicyRuleRedirectOptionsPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput - ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput + ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput } -type urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs +type securityPolicyRuleRedirectOptionsPtrType SecurityPolicyRuleRedirectOptionsArgs -func URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { - return (*urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) +func SecurityPolicyRuleRedirectOptionsPtr(v *SecurityPolicyRuleRedirectOptionsArgs) SecurityPolicyRuleRedirectOptionsPtrInput { + return (*securityPolicyRuleRedirectOptionsPtrType)(v) } -func (*urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (*securityPolicyRuleRedirectOptionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { + return i.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +func (i *securityPolicyRuleRedirectOptionsPtrType) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityPolicyRuleRedirectOptionsPtrOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRedirectOptionsOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (SecurityPolicyRuleRedirectOptionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityPolicyRuleRedirectOptions)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutput() SecurityPolicyRuleRedirectOptionsOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { + return o.ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o SecurityPolicyRuleRedirectOptionsOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityPolicyRuleRedirectOptions) *SecurityPolicyRuleRedirectOptions { return &v - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + }).(SecurityPolicyRuleRedirectOptionsPtrOutput) } -// 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. -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// External redirection target when `EXTERNAL_302` is set in `type`. +func (o SecurityPolicyRuleRedirectOptionsOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) *string { return v.Target }).(pulumi.StringPtrOutput) } -// 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 -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { return v.Seconds }).(pulumi.StringPtrOutput) +// Type of redirect action. +// +// * `EXTERNAL_302`: Redirect to an external address, configured in `target`. +// * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. +func (o SecurityPolicyRuleRedirectOptionsOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v SecurityPolicyRuleRedirectOptions) string { return v.Type }).(pulumi.StringOutput) } -type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } +type SecurityPolicyRuleRedirectOptionsPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (SecurityPolicyRuleRedirectOptionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityPolicyRuleRedirectOptions)(nil)).Elem() } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutput() SecurityPolicyRuleRedirectOptionsPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) ToSecurityPolicyRuleRedirectOptionsPtrOutputWithContext(ctx context.Context) SecurityPolicyRuleRedirectOptionsPtrOutput { return o } -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Elem() SecurityPolicyRuleRedirectOptionsOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) SecurityPolicyRuleRedirectOptions { if v != nil { return *v } - var ret URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay + var ret SecurityPolicyRuleRedirectOptions return ret - }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) + }).(SecurityPolicyRuleRedirectOptionsOutput) } -// 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. -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { +// External redirection target when `EXTERNAL_302` is set in `type`. +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Target() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { if v == nil { return nil } - return v.Nanos - }).(pulumi.IntPtrOutput) + return v.Target + }).(pulumi.StringPtrOutput) } -// 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 -func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { +// Type of redirect action. +// +// * `EXTERNAL_302`: Redirect to an external address, configured in `target`. +// * `GOOGLE_RECAPTCHA`: Redirect to Google reCAPTCHA. +func (o SecurityPolicyRuleRedirectOptionsPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityPolicyRuleRedirectOptions) *string { if v == nil { return nil } - return v.Seconds + return &v.Type }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionRequestMirrorPolicy struct { - // The full or partial URL to the BackendService resource being mirrored to. - BackendService string `pulumi:"backendService"` +type SecurityScanConfigAuthentication struct { + // Describes authentication configuration that uses a custom account. + // Structure is documented below. + CustomAccount *SecurityScanConfigAuthenticationCustomAccount `pulumi:"customAccount"` + // Describes authentication configuration that uses a Google account. + // Structure is documented below. + GoogleAccount *SecurityScanConfigAuthenticationGoogleAccount `pulumi:"googleAccount"` } -// URLMapDefaultRouteActionRequestMirrorPolicyInput is an input type that accepts URLMapDefaultRouteActionRequestMirrorPolicyArgs and URLMapDefaultRouteActionRequestMirrorPolicyOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionRequestMirrorPolicyInput` via: +// SecurityScanConfigAuthenticationInput is an input type that accepts SecurityScanConfigAuthenticationArgs and SecurityScanConfigAuthenticationOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationInput` via: // -// URLMapDefaultRouteActionRequestMirrorPolicyArgs{...} -type URLMapDefaultRouteActionRequestMirrorPolicyInput interface { +// SecurityScanConfigAuthenticationArgs{...} +type SecurityScanConfigAuthenticationInput interface { pulumi.Input - ToURLMapDefaultRouteActionRequestMirrorPolicyOutput() URLMapDefaultRouteActionRequestMirrorPolicyOutput - ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionRequestMirrorPolicyOutput + ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput + ToSecurityScanConfigAuthenticationOutputWithContext(context.Context) SecurityScanConfigAuthenticationOutput } -type URLMapDefaultRouteActionRequestMirrorPolicyArgs struct { - // The full or partial URL to the BackendService resource being mirrored to. - BackendService pulumi.StringInput `pulumi:"backendService"` +type SecurityScanConfigAuthenticationArgs struct { + // Describes authentication configuration that uses a custom account. + // Structure is documented below. + CustomAccount SecurityScanConfigAuthenticationCustomAccountPtrInput `pulumi:"customAccount"` + // Describes authentication configuration that uses a Google account. + // Structure is documented below. + GoogleAccount SecurityScanConfigAuthenticationGoogleAccountPtrInput `pulumi:"googleAccount"` } -func (URLMapDefaultRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (SecurityScanConfigAuthenticationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() } -func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyOutput() URLMapDefaultRouteActionRequestMirrorPolicyOutput { - return i.ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { + return i.ToSecurityScanConfigAuthenticationOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRequestMirrorPolicyOutput) +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput) } -func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { + return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRequestMirrorPolicyOutput).ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +func (i SecurityScanConfigAuthenticationArgs) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationOutput).ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionRequestMirrorPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionRequestMirrorPolicyArgs, URLMapDefaultRouteActionRequestMirrorPolicyPtr and URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionRequestMirrorPolicyPtrInput` via: +// SecurityScanConfigAuthenticationPtrInput is an input type that accepts SecurityScanConfigAuthenticationArgs, SecurityScanConfigAuthenticationPtr and SecurityScanConfigAuthenticationPtrOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationPtrInput` via: // -// URLMapDefaultRouteActionRequestMirrorPolicyArgs{...} +// SecurityScanConfigAuthenticationArgs{...} // // or: // // nil -type URLMapDefaultRouteActionRequestMirrorPolicyPtrInput interface { +type SecurityScanConfigAuthenticationPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput - ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput + ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput + ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationPtrOutput } -type urlmapDefaultRouteActionRequestMirrorPolicyPtrType URLMapDefaultRouteActionRequestMirrorPolicyArgs +type securityScanConfigAuthenticationPtrType SecurityScanConfigAuthenticationArgs -func URLMapDefaultRouteActionRequestMirrorPolicyPtr(v *URLMapDefaultRouteActionRequestMirrorPolicyArgs) URLMapDefaultRouteActionRequestMirrorPolicyPtrInput { - return (*urlmapDefaultRouteActionRequestMirrorPolicyPtrType)(v) +func SecurityScanConfigAuthenticationPtr(v *SecurityScanConfigAuthenticationArgs) SecurityScanConfigAuthenticationPtrInput { + return (*securityScanConfigAuthenticationPtrType)(v) } -func (*urlmapDefaultRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (*securityScanConfigAuthenticationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() } -func (i *urlmapDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { + return i.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) +func (i *securityScanConfigAuthenticationPtrType) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationPtrOutput) } -type URLMapDefaultRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } +type SecurityScanConfigAuthenticationOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (SecurityScanConfigAuthenticationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthentication)(nil)).Elem() } -func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyOutput() URLMapDefaultRouteActionRequestMirrorPolicyOutput { +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutput() SecurityScanConfigAuthenticationOutput { return o } -func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyOutput { +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationOutput { return o } -func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { + return o.ToSecurityScanConfigAuthenticationPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionRequestMirrorPolicy) *URLMapDefaultRouteActionRequestMirrorPolicy { +func (o SecurityScanConfigAuthenticationOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthentication) *SecurityScanConfigAuthentication { return &v - }).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) + }).(SecurityScanConfigAuthenticationPtrOutput) } -// The full or partial URL to the BackendService resource being mirrored to. -func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) +// Describes authentication configuration that uses a custom account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { + return v.CustomAccount + }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) } -type URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } +// Describes authentication configuration that uses a Google account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return o.ApplyT(func(v SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { + return v.GoogleAccount + }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) +} -func (URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +type SecurityScanConfigAuthenticationPtrOutput struct{ *pulumi.OutputState } + +func (SecurityScanConfigAuthenticationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthentication)(nil)).Elem() } -func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { +func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutput() SecurityScanConfigAuthenticationPtrOutput { return o } -func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { +func (o SecurityScanConfigAuthenticationPtrOutput) ToSecurityScanConfigAuthenticationPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationPtrOutput { return o } -func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) Elem() URLMapDefaultRouteActionRequestMirrorPolicyOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRequestMirrorPolicy) URLMapDefaultRouteActionRequestMirrorPolicy { +func (o SecurityScanConfigAuthenticationPtrOutput) Elem() SecurityScanConfigAuthenticationOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthentication) SecurityScanConfigAuthentication { if v != nil { return *v } - var ret URLMapDefaultRouteActionRequestMirrorPolicy + var ret SecurityScanConfigAuthentication return ret - }).(URLMapDefaultRouteActionRequestMirrorPolicyOutput) + }).(SecurityScanConfigAuthenticationOutput) } -// The full or partial URL to the BackendService resource being mirrored to. -func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRequestMirrorPolicy) *string { +// Describes authentication configuration that uses a custom account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationPtrOutput) CustomAccount() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationCustomAccount { if v == nil { return nil } - return &v.BackendService - }).(pulumi.StringPtrOutput) + return v.CustomAccount + }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) } -type URLMapDefaultRouteActionRetryPolicy struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries *int `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - PerTryTimeout *URLMapDefaultRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` - // Specfies one or more conditions when this retry rule applies. Valid values are: - // * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, - // or if the backend service does not respond at all, example: disconnects, reset, read timeout, - // * connection failure, and refused streams. - // * gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - // * connect-failure: Loadbalancer will retry on failures connecting to backend services, - // for example due to connection timeouts. - // * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. - // Currently the only retriable error supported is 409. - // * refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. - // This reset type indicates that it is safe to retry. - // * cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled - // * deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded - // * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted - // * unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable - RetryConditions []string `pulumi:"retryConditions"` +// Describes authentication configuration that uses a Google account. +// Structure is documented below. +func (o SecurityScanConfigAuthenticationPtrOutput) GoogleAccount() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthentication) *SecurityScanConfigAuthenticationGoogleAccount { + if v == nil { + return nil + } + return v.GoogleAccount + }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) } -// URLMapDefaultRouteActionRetryPolicyInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyArgs and URLMapDefaultRouteActionRetryPolicyOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyInput` via: +type SecurityScanConfigAuthenticationCustomAccount struct { + // The login form URL of the website. + LoginUrl string `pulumi:"loginUrl"` + // The password of the custom account. The credential is stored encrypted + // in GCP. + // **Note**: This property is sensitive and will not be displayed in the plan. + Password string `pulumi:"password"` + // The user name of the custom account. + Username string `pulumi:"username"` +} + +// SecurityScanConfigAuthenticationCustomAccountInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs and SecurityScanConfigAuthenticationCustomAccountOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountInput` via: // -// URLMapDefaultRouteActionRetryPolicyArgs{...} -type URLMapDefaultRouteActionRetryPolicyInput interface { +// SecurityScanConfigAuthenticationCustomAccountArgs{...} +type SecurityScanConfigAuthenticationCustomAccountInput interface { pulumi.Input - ToURLMapDefaultRouteActionRetryPolicyOutput() URLMapDefaultRouteActionRetryPolicyOutput - ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyOutput + ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput + ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountOutput } -type URLMapDefaultRouteActionRetryPolicyArgs struct { - // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. - NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` - // Specifies a non-zero timeout per retry attempt. - // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, - // will use the largest timeout among all backend services associated with the route. - // Structure is documented below. - PerTryTimeout URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` - // Specfies one or more conditions when this retry rule applies. Valid values are: - // * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, - // or if the backend service does not respond at all, example: disconnects, reset, read timeout, - // * connection failure, and refused streams. - // * gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. - // * connect-failure: Loadbalancer will retry on failures connecting to backend services, - // for example due to connection timeouts. - // * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. - // Currently the only retriable error supported is 409. - // * refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. - // This reset type indicates that it is safe to retry. - // * cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled - // * deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded - // * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted - // * unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable - RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` +type SecurityScanConfigAuthenticationCustomAccountArgs struct { + // The login form URL of the website. + LoginUrl pulumi.StringInput `pulumi:"loginUrl"` + // The password of the custom account. The credential is stored encrypted + // in GCP. + // **Note**: This property is sensitive and will not be displayed in the plan. + Password pulumi.StringInput `pulumi:"password"` + // The user name of the custom account. + Username pulumi.StringInput `pulumi:"username"` } -func (URLMapDefaultRouteActionRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() +func (SecurityScanConfigAuthenticationCustomAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() } -func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyOutput() URLMapDefaultRouteActionRetryPolicyOutput { - return i.ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(context.Background()) +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { + return i.ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyOutput) +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput) } -func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyOutput).ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx) +func (i SecurityScanConfigAuthenticationCustomAccountArgs) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountOutput).ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionRetryPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyArgs, URLMapDefaultRouteActionRetryPolicyPtr and URLMapDefaultRouteActionRetryPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyPtrInput` via: +// SecurityScanConfigAuthenticationCustomAccountPtrInput is an input type that accepts SecurityScanConfigAuthenticationCustomAccountArgs, SecurityScanConfigAuthenticationCustomAccountPtr and SecurityScanConfigAuthenticationCustomAccountPtrOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationCustomAccountPtrInput` via: // -// URLMapDefaultRouteActionRetryPolicyArgs{...} +// SecurityScanConfigAuthenticationCustomAccountArgs{...} // // or: // // nil -type URLMapDefaultRouteActionRetryPolicyPtrInput interface { +type SecurityScanConfigAuthenticationCustomAccountPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput - ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput + ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput + ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput } -type urlmapDefaultRouteActionRetryPolicyPtrType URLMapDefaultRouteActionRetryPolicyArgs +type securityScanConfigAuthenticationCustomAccountPtrType SecurityScanConfigAuthenticationCustomAccountArgs -func URLMapDefaultRouteActionRetryPolicyPtr(v *URLMapDefaultRouteActionRetryPolicyArgs) URLMapDefaultRouteActionRetryPolicyPtrInput { - return (*urlmapDefaultRouteActionRetryPolicyPtrType)(v) +func SecurityScanConfigAuthenticationCustomAccountPtr(v *SecurityScanConfigAuthenticationCustomAccountArgs) SecurityScanConfigAuthenticationCustomAccountPtrInput { + return (*securityScanConfigAuthenticationCustomAccountPtrType)(v) } -func (*urlmapDefaultRouteActionRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() +func (*securityScanConfigAuthenticationCustomAccountPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() } -func (i *urlmapDefaultRouteActionRetryPolicyPtrType) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { - return i.ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return i.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionRetryPolicyPtrType) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPtrOutput) +func (i *securityScanConfigAuthenticationCustomAccountPtrType) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) } -type URLMapDefaultRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } +type SecurityScanConfigAuthenticationCustomAccountOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() +func (SecurityScanConfigAuthenticationCustomAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() } -func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyOutput() URLMapDefaultRouteActionRetryPolicyOutput { +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutput() SecurityScanConfigAuthenticationCustomAccountOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyOutput { +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionRetryPolicy) *URLMapDefaultRouteActionRetryPolicy { +func (o SecurityScanConfigAuthenticationCustomAccountOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthenticationCustomAccount) *SecurityScanConfigAuthenticationCustomAccount { return &v - }).(URLMapDefaultRouteActionRetryPolicyPtrOutput) + }).(SecurityScanConfigAuthenticationCustomAccountPtrOutput) } -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o URLMapDefaultRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) +// The login form URL of the website. +func (o SecurityScanConfigAuthenticationCustomAccountOutput) LoginUrl() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.LoginUrl }).(pulumi.StringOutput) } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o URLMapDefaultRouteActionRetryPolicyOutput) PerTryTimeout() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicy) *URLMapDefaultRouteActionRetryPolicyPerTryTimeout { - return v.PerTryTimeout - }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +// The password of the custom account. The credential is stored encrypted +// in GCP. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SecurityScanConfigAuthenticationCustomAccountOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Password }).(pulumi.StringOutput) } -// Specfies one or more conditions when this retry rule applies. Valid values are: -// - 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, -// or if the backend service does not respond at all, example: disconnects, reset, read timeout, -// - connection failure, and refused streams. -// - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure: Loadbalancer will retry on failures connecting to backend services, -// for example due to connection timeouts. -// - retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. -// Currently the only retriable error supported is 409. -// - refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. -// This reset type indicates that it is safe to retry. -// - cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled -// - deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded -// - resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted -// - unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable -func (o URLMapDefaultRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +// The user name of the custom account. +func (o SecurityScanConfigAuthenticationCustomAccountOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationCustomAccount) string { return v.Username }).(pulumi.StringOutput) } -type URLMapDefaultRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } +type SecurityScanConfigAuthenticationCustomAccountPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() +func (SecurityScanConfigAuthenticationCustomAccountPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthenticationCustomAccount)(nil)).Elem() } -func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutput() SecurityScanConfigAuthenticationCustomAccountPtrOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) ToSecurityScanConfigAuthenticationCustomAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationCustomAccountPtrOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) Elem() URLMapDefaultRouteActionRetryPolicyOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) URLMapDefaultRouteActionRetryPolicy { +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Elem() SecurityScanConfigAuthenticationCustomAccountOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) SecurityScanConfigAuthenticationCustomAccount { if v != nil { return *v } - var ret URLMapDefaultRouteActionRetryPolicy + var ret SecurityScanConfigAuthenticationCustomAccount return ret - }).(URLMapDefaultRouteActionRetryPolicyOutput) + }).(SecurityScanConfigAuthenticationCustomAccountOutput) } -// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) *int { +// The login form URL of the website. +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) LoginUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { if v == nil { return nil } - return v.NumRetries - }).(pulumi.IntPtrOutput) + return &v.LoginUrl + }).(pulumi.StringPtrOutput) } -// Specifies a non-zero timeout per retry attempt. -// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, -// will use the largest timeout among all backend services associated with the route. -// Structure is documented below. -func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) PerTryTimeout() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) *URLMapDefaultRouteActionRetryPolicyPerTryTimeout { +// The password of the custom account. The credential is stored encrypted +// in GCP. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { if v == nil { return nil } - return v.PerTryTimeout - }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) + return &v.Password + }).(pulumi.StringPtrOutput) } -// Specfies one or more conditions when this retry rule applies. Valid values are: -// - 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, -// or if the backend service does not respond at all, example: disconnects, reset, read timeout, -// - connection failure, and refused streams. -// - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. -// - connect-failure: Loadbalancer will retry on failures connecting to backend services, -// for example due to connection timeouts. -// - retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. -// Currently the only retriable error supported is 409. -// - refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. -// This reset type indicates that it is safe to retry. -// - cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled -// - deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded -// - resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted -// - unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable -func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) []string { +// The user name of the custom account. +func (o SecurityScanConfigAuthenticationCustomAccountPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationCustomAccount) *string { if v == nil { return nil } - return v.RetryConditions - }).(pulumi.StringArrayOutput) + return &v.Username + }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionRetryPolicyPerTryTimeout struct { - // 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. - Nanos *int `pulumi:"nanos"` - // 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 - Seconds *string `pulumi:"seconds"` +type SecurityScanConfigAuthenticationGoogleAccount struct { + // The password of the Google account. The credential is stored encrypted + // in GCP. + // **Note**: This property is sensitive and will not be displayed in the plan. + Password string `pulumi:"password"` + // The user name of the Google account. + Username string `pulumi:"username"` } -// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs and URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyPerTryTimeoutInput` via: +// SecurityScanConfigAuthenticationGoogleAccountInput is an input type that accepts SecurityScanConfigAuthenticationGoogleAccountArgs and SecurityScanConfigAuthenticationGoogleAccountOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationGoogleAccountInput` via: // -// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} -type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutInput interface { +// SecurityScanConfigAuthenticationGoogleAccountArgs{...} +type SecurityScanConfigAuthenticationGoogleAccountInput interface { pulumi.Input - ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput - ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput + ToSecurityScanConfigAuthenticationGoogleAccountOutput() SecurityScanConfigAuthenticationGoogleAccountOutput + ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(context.Context) SecurityScanConfigAuthenticationGoogleAccountOutput } -type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs struct { - // 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. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // 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 - Seconds pulumi.StringPtrInput `pulumi:"seconds"` +type SecurityScanConfigAuthenticationGoogleAccountArgs struct { + // The password of the Google account. The credential is stored encrypted + // in GCP. + // **Note**: This property is sensitive and will not be displayed in the plan. + Password pulumi.StringInput `pulumi:"password"` + // The user name of the Google account. + Username pulumi.StringInput `pulumi:"username"` } -func (URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (SecurityScanConfigAuthenticationGoogleAccountArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() } -func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return i.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) +func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountOutput() SecurityScanConfigAuthenticationGoogleAccountOutput { + return i.ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) +func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationGoogleAccountOutput) } -func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return i.ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput).ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) +func (i SecurityScanConfigAuthenticationGoogleAccountArgs) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationGoogleAccountOutput).ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs, URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr and URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput` via: +// SecurityScanConfigAuthenticationGoogleAccountPtrInput is an input type that accepts SecurityScanConfigAuthenticationGoogleAccountArgs, SecurityScanConfigAuthenticationGoogleAccountPtr and SecurityScanConfigAuthenticationGoogleAccountPtrOutput values. +// You can construct a concrete instance of `SecurityScanConfigAuthenticationGoogleAccountPtrInput` via: // -// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} +// SecurityScanConfigAuthenticationGoogleAccountArgs{...} // // or: // // nil -type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput interface { +type SecurityScanConfigAuthenticationGoogleAccountPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput - ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput + ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput } -type urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs +type securityScanConfigAuthenticationGoogleAccountPtrType SecurityScanConfigAuthenticationGoogleAccountArgs -func URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput { - return (*urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType)(v) +func SecurityScanConfigAuthenticationGoogleAccountPtr(v *SecurityScanConfigAuthenticationGoogleAccountArgs) SecurityScanConfigAuthenticationGoogleAccountPtrInput { + return (*securityScanConfigAuthenticationGoogleAccountPtrType)(v) } -func (*urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (*securityScanConfigAuthenticationGoogleAccountPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() } -func (i *urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i *securityScanConfigAuthenticationGoogleAccountPtrType) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return i.ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +func (i *securityScanConfigAuthenticationGoogleAccountPtrType) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) } -type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } +type SecurityScanConfigAuthenticationGoogleAccountOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (SecurityScanConfigAuthenticationGoogleAccountOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() } -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { +func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountOutput() SecurityScanConfigAuthenticationGoogleAccountOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { +func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return o.ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *URLMapDefaultRouteActionRetryPolicyPerTryTimeout { +func (o SecurityScanConfigAuthenticationGoogleAccountOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigAuthenticationGoogleAccount) *SecurityScanConfigAuthenticationGoogleAccount { return &v - }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) + }).(SecurityScanConfigAuthenticationGoogleAccountPtrOutput) } -// 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. -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// The password of the Google account. The credential is stored encrypted +// in GCP. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SecurityScanConfigAuthenticationGoogleAccountOutput) Password() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationGoogleAccount) string { return v.Password }).(pulumi.StringOutput) } -// 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 -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +// The user name of the Google account. +func (o SecurityScanConfigAuthenticationGoogleAccountOutput) Username() pulumi.StringOutput { + return o.ApplyT(func(v SecurityScanConfigAuthenticationGoogleAccount) string { return v.Username }).(pulumi.StringOutput) } -type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } +type SecurityScanConfigAuthenticationGoogleAccountPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (SecurityScanConfigAuthenticationGoogleAccountPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigAuthenticationGoogleAccount)(nil)).Elem() } -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutput() SecurityScanConfigAuthenticationGoogleAccountPtrOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) ToSecurityScanConfigAuthenticationGoogleAccountPtrOutputWithContext(ctx context.Context) SecurityScanConfigAuthenticationGoogleAccountPtrOutput { return o } -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeout) URLMapDefaultRouteActionRetryPolicyPerTryTimeout { +func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) Elem() SecurityScanConfigAuthenticationGoogleAccountOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationGoogleAccount) SecurityScanConfigAuthenticationGoogleAccount { if v != nil { return *v } - var ret URLMapDefaultRouteActionRetryPolicyPerTryTimeout + var ret SecurityScanConfigAuthenticationGoogleAccount return ret - }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) + }).(SecurityScanConfigAuthenticationGoogleAccountOutput) } -// 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. -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { +// The password of the Google account. The credential is stored encrypted +// in GCP. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) Password() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationGoogleAccount) *string { if v == nil { return nil } - return v.Nanos - }).(pulumi.IntPtrOutput) + return &v.Password + }).(pulumi.StringPtrOutput) } -// 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 -func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { +// The user name of the Google account. +func (o SecurityScanConfigAuthenticationGoogleAccountPtrOutput) Username() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigAuthenticationGoogleAccount) *string { if v == nil { return nil } - return v.Seconds + return &v.Username }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionTimeout struct { - // 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. - Nanos *int `pulumi:"nanos"` - // 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 - Seconds *string `pulumi:"seconds"` +type SecurityScanConfigSchedule struct { + // The duration of time between executions in days + IntervalDurationDays int `pulumi:"intervalDurationDays"` + // A timestamp indicates when the next run will be scheduled. The value is refreshed + // by the server after each run. If unspecified, it will default to current server time, + // which means the scan will be scheduled to start immediately. + ScheduleTime *string `pulumi:"scheduleTime"` } -// URLMapDefaultRouteActionTimeoutInput is an input type that accepts URLMapDefaultRouteActionTimeoutArgs and URLMapDefaultRouteActionTimeoutOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionTimeoutInput` via: +// SecurityScanConfigScheduleInput is an input type that accepts SecurityScanConfigScheduleArgs and SecurityScanConfigScheduleOutput values. +// You can construct a concrete instance of `SecurityScanConfigScheduleInput` via: // -// URLMapDefaultRouteActionTimeoutArgs{...} -type URLMapDefaultRouteActionTimeoutInput interface { +// SecurityScanConfigScheduleArgs{...} +type SecurityScanConfigScheduleInput interface { pulumi.Input - ToURLMapDefaultRouteActionTimeoutOutput() URLMapDefaultRouteActionTimeoutOutput - ToURLMapDefaultRouteActionTimeoutOutputWithContext(context.Context) URLMapDefaultRouteActionTimeoutOutput + ToSecurityScanConfigScheduleOutput() SecurityScanConfigScheduleOutput + ToSecurityScanConfigScheduleOutputWithContext(context.Context) SecurityScanConfigScheduleOutput } -type URLMapDefaultRouteActionTimeoutArgs struct { - // 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. - Nanos pulumi.IntPtrInput `pulumi:"nanos"` - // 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 - Seconds pulumi.StringPtrInput `pulumi:"seconds"` +type SecurityScanConfigScheduleArgs struct { + // The duration of time between executions in days + IntervalDurationDays pulumi.IntInput `pulumi:"intervalDurationDays"` + // A timestamp indicates when the next run will be scheduled. The value is refreshed + // by the server after each run. If unspecified, it will default to current server time, + // which means the scan will be scheduled to start immediately. + ScheduleTime pulumi.StringPtrInput `pulumi:"scheduleTime"` } -func (URLMapDefaultRouteActionTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionTimeout)(nil)).Elem() +func (SecurityScanConfigScheduleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigSchedule)(nil)).Elem() } -func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutOutput() URLMapDefaultRouteActionTimeoutOutput { - return i.ToURLMapDefaultRouteActionTimeoutOutputWithContext(context.Background()) +func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigScheduleOutput() SecurityScanConfigScheduleOutput { + return i.ToSecurityScanConfigScheduleOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionTimeoutOutput) +func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigScheduleOutputWithContext(ctx context.Context) SecurityScanConfigScheduleOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigScheduleOutput) } -func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { - return i.ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { + return i.ToSecurityScanConfigSchedulePtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionTimeoutOutput).ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx) +func (i SecurityScanConfigScheduleArgs) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigScheduleOutput).ToSecurityScanConfigSchedulePtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionTimeoutPtrInput is an input type that accepts URLMapDefaultRouteActionTimeoutArgs, URLMapDefaultRouteActionTimeoutPtr and URLMapDefaultRouteActionTimeoutPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionTimeoutPtrInput` via: +// SecurityScanConfigSchedulePtrInput is an input type that accepts SecurityScanConfigScheduleArgs, SecurityScanConfigSchedulePtr and SecurityScanConfigSchedulePtrOutput values. +// You can construct a concrete instance of `SecurityScanConfigSchedulePtrInput` via: // -// URLMapDefaultRouteActionTimeoutArgs{...} +// SecurityScanConfigScheduleArgs{...} // // or: // // nil -type URLMapDefaultRouteActionTimeoutPtrInput interface { +type SecurityScanConfigSchedulePtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput - ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Context) URLMapDefaultRouteActionTimeoutPtrOutput + ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput + ToSecurityScanConfigSchedulePtrOutputWithContext(context.Context) SecurityScanConfigSchedulePtrOutput } -type urlmapDefaultRouteActionTimeoutPtrType URLMapDefaultRouteActionTimeoutArgs +type securityScanConfigSchedulePtrType SecurityScanConfigScheduleArgs -func URLMapDefaultRouteActionTimeoutPtr(v *URLMapDefaultRouteActionTimeoutArgs) URLMapDefaultRouteActionTimeoutPtrInput { - return (*urlmapDefaultRouteActionTimeoutPtrType)(v) +func SecurityScanConfigSchedulePtr(v *SecurityScanConfigScheduleArgs) SecurityScanConfigSchedulePtrInput { + return (*securityScanConfigSchedulePtrType)(v) } -func (*urlmapDefaultRouteActionTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionTimeout)(nil)).Elem() +func (*securityScanConfigSchedulePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigSchedule)(nil)).Elem() } -func (i *urlmapDefaultRouteActionTimeoutPtrType) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { - return i.ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i *securityScanConfigSchedulePtrType) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { + return i.ToSecurityScanConfigSchedulePtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionTimeoutPtrType) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionTimeoutPtrOutput) +func (i *securityScanConfigSchedulePtrType) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecurityScanConfigSchedulePtrOutput) } -type URLMapDefaultRouteActionTimeoutOutput struct{ *pulumi.OutputState } +type SecurityScanConfigScheduleOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionTimeout)(nil)).Elem() +func (SecurityScanConfigScheduleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecurityScanConfigSchedule)(nil)).Elem() } -func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutOutput() URLMapDefaultRouteActionTimeoutOutput { +func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigScheduleOutput() SecurityScanConfigScheduleOutput { return o } -func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutOutput { +func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigScheduleOutputWithContext(ctx context.Context) SecurityScanConfigScheduleOutput { return o } -func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { - return o.ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { + return o.ToSecurityScanConfigSchedulePtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionTimeout) *URLMapDefaultRouteActionTimeout { +func (o SecurityScanConfigScheduleOutput) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecurityScanConfigSchedule) *SecurityScanConfigSchedule { return &v - }).(URLMapDefaultRouteActionTimeoutPtrOutput) + }).(SecurityScanConfigSchedulePtrOutput) } -// 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. -func (o URLMapDefaultRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +// The duration of time between executions in days +func (o SecurityScanConfigScheduleOutput) IntervalDurationDays() pulumi.IntOutput { + return o.ApplyT(func(v SecurityScanConfigSchedule) int { return v.IntervalDurationDays }).(pulumi.IntOutput) } -// 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 -func (o URLMapDefaultRouteActionTimeoutOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +// A timestamp indicates when the next run will be scheduled. The value is refreshed +// by the server after each run. If unspecified, it will default to current server time, +// which means the scan will be scheduled to start immediately. +func (o SecurityScanConfigScheduleOutput) ScheduleTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecurityScanConfigSchedule) *string { return v.ScheduleTime }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } +type SecurityScanConfigSchedulePtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionTimeout)(nil)).Elem() +func (SecurityScanConfigSchedulePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecurityScanConfigSchedule)(nil)).Elem() } -func (o URLMapDefaultRouteActionTimeoutPtrOutput) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { +func (o SecurityScanConfigSchedulePtrOutput) ToSecurityScanConfigSchedulePtrOutput() SecurityScanConfigSchedulePtrOutput { return o } -func (o URLMapDefaultRouteActionTimeoutPtrOutput) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { +func (o SecurityScanConfigSchedulePtrOutput) ToSecurityScanConfigSchedulePtrOutputWithContext(ctx context.Context) SecurityScanConfigSchedulePtrOutput { return o } -func (o URLMapDefaultRouteActionTimeoutPtrOutput) Elem() URLMapDefaultRouteActionTimeoutOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionTimeout) URLMapDefaultRouteActionTimeout { +func (o SecurityScanConfigSchedulePtrOutput) Elem() SecurityScanConfigScheduleOutput { + return o.ApplyT(func(v *SecurityScanConfigSchedule) SecurityScanConfigSchedule { if v != nil { return *v } - var ret URLMapDefaultRouteActionTimeout + var ret SecurityScanConfigSchedule return ret - }).(URLMapDefaultRouteActionTimeoutOutput) + }).(SecurityScanConfigScheduleOutput) } -// 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. -func (o URLMapDefaultRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionTimeout) *int { +// The duration of time between executions in days +func (o SecurityScanConfigSchedulePtrOutput) IntervalDurationDays() pulumi.IntPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigSchedule) *int { if v == nil { return nil } - return v.Nanos + return &v.IntervalDurationDays }).(pulumi.IntPtrOutput) } -// 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 -func (o URLMapDefaultRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionTimeout) *string { +// A timestamp indicates when the next run will be scheduled. The value is refreshed +// by the server after each run. If unspecified, it will default to current server time, +// which means the scan will be scheduled to start immediately. +func (o SecurityScanConfigSchedulePtrOutput) ScheduleTime() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecurityScanConfigSchedule) *string { if v == nil { return nil } - return v.Seconds + return v.ScheduleTime }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionUrlRewrite struct { - // Prior to forwarding the request to the selected service, the request's host header is replaced - // with contents of hostRewrite. - // The value must be between 1 and 255 characters. - HostRewrite *string `pulumi:"hostRewrite"` - // Prior to forwarding the request to the selected backend service, the matching portion of the - // request's path is replaced by pathPrefixRewrite. - // The value must be between 1 and 1024 characters. - PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` +type ServiceAttachmentConnectedEndpoint struct { + // (Output) + // The URL of the consumer forwarding rule. + Endpoint *string `pulumi:"endpoint"` + // (Output) + // The status of the connection from the consumer forwarding rule to + // this service attachment. + Status *string `pulumi:"status"` } -// URLMapDefaultRouteActionUrlRewriteInput is an input type that accepts URLMapDefaultRouteActionUrlRewriteArgs and URLMapDefaultRouteActionUrlRewriteOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionUrlRewriteInput` via: +// ServiceAttachmentConnectedEndpointInput is an input type that accepts ServiceAttachmentConnectedEndpointArgs and ServiceAttachmentConnectedEndpointOutput values. +// You can construct a concrete instance of `ServiceAttachmentConnectedEndpointInput` via: // -// URLMapDefaultRouteActionUrlRewriteArgs{...} -type URLMapDefaultRouteActionUrlRewriteInput interface { +// ServiceAttachmentConnectedEndpointArgs{...} +type ServiceAttachmentConnectedEndpointInput interface { pulumi.Input - ToURLMapDefaultRouteActionUrlRewriteOutput() URLMapDefaultRouteActionUrlRewriteOutput - ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(context.Context) URLMapDefaultRouteActionUrlRewriteOutput -} - -type URLMapDefaultRouteActionUrlRewriteArgs struct { - // Prior to forwarding the request to the selected service, the request's host header is replaced - // with contents of hostRewrite. - // The value must be between 1 and 255 characters. - HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` - // Prior to forwarding the request to the selected backend service, the matching portion of the - // request's path is replaced by pathPrefixRewrite. - // The value must be between 1 and 1024 characters. - PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` -} - -func (URLMapDefaultRouteActionUrlRewriteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() + ToServiceAttachmentConnectedEndpointOutput() ServiceAttachmentConnectedEndpointOutput + ToServiceAttachmentConnectedEndpointOutputWithContext(context.Context) ServiceAttachmentConnectedEndpointOutput } -func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewriteOutput() URLMapDefaultRouteActionUrlRewriteOutput { - return i.ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(context.Background()) +type ServiceAttachmentConnectedEndpointArgs struct { + // (Output) + // The URL of the consumer forwarding rule. + Endpoint pulumi.StringPtrInput `pulumi:"endpoint"` + // (Output) + // The status of the connection from the consumer forwarding rule to + // this service attachment. + Status pulumi.StringPtrInput `pulumi:"status"` } -func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewriteOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionUrlRewriteOutput) +func (ServiceAttachmentConnectedEndpointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAttachmentConnectedEndpoint)(nil)).Elem() } -func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { - return i.ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i ServiceAttachmentConnectedEndpointArgs) ToServiceAttachmentConnectedEndpointOutput() ServiceAttachmentConnectedEndpointOutput { + return i.ToServiceAttachmentConnectedEndpointOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionUrlRewriteOutput).ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx) +func (i ServiceAttachmentConnectedEndpointArgs) ToServiceAttachmentConnectedEndpointOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConnectedEndpointOutput) } -// URLMapDefaultRouteActionUrlRewritePtrInput is an input type that accepts URLMapDefaultRouteActionUrlRewriteArgs, URLMapDefaultRouteActionUrlRewritePtr and URLMapDefaultRouteActionUrlRewritePtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionUrlRewritePtrInput` via: -// -// URLMapDefaultRouteActionUrlRewriteArgs{...} -// -// or: +// ServiceAttachmentConnectedEndpointArrayInput is an input type that accepts ServiceAttachmentConnectedEndpointArray and ServiceAttachmentConnectedEndpointArrayOutput values. +// You can construct a concrete instance of `ServiceAttachmentConnectedEndpointArrayInput` via: // -// nil -type URLMapDefaultRouteActionUrlRewritePtrInput interface { +// ServiceAttachmentConnectedEndpointArray{ ServiceAttachmentConnectedEndpointArgs{...} } +type ServiceAttachmentConnectedEndpointArrayInput interface { pulumi.Input - ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput - ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput + ToServiceAttachmentConnectedEndpointArrayOutput() ServiceAttachmentConnectedEndpointArrayOutput + ToServiceAttachmentConnectedEndpointArrayOutputWithContext(context.Context) ServiceAttachmentConnectedEndpointArrayOutput } -type urlmapDefaultRouteActionUrlRewritePtrType URLMapDefaultRouteActionUrlRewriteArgs - -func URLMapDefaultRouteActionUrlRewritePtr(v *URLMapDefaultRouteActionUrlRewriteArgs) URLMapDefaultRouteActionUrlRewritePtrInput { - return (*urlmapDefaultRouteActionUrlRewritePtrType)(v) -} +type ServiceAttachmentConnectedEndpointArray []ServiceAttachmentConnectedEndpointInput -func (*urlmapDefaultRouteActionUrlRewritePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() +func (ServiceAttachmentConnectedEndpointArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceAttachmentConnectedEndpoint)(nil)).Elem() } -func (i *urlmapDefaultRouteActionUrlRewritePtrType) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { - return i.ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i ServiceAttachmentConnectedEndpointArray) ToServiceAttachmentConnectedEndpointArrayOutput() ServiceAttachmentConnectedEndpointArrayOutput { + return i.ToServiceAttachmentConnectedEndpointArrayOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionUrlRewritePtrType) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionUrlRewritePtrOutput) +func (i ServiceAttachmentConnectedEndpointArray) ToServiceAttachmentConnectedEndpointArrayOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConnectedEndpointArrayOutput) } -type URLMapDefaultRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } +type ServiceAttachmentConnectedEndpointOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionUrlRewriteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() +func (ServiceAttachmentConnectedEndpointOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAttachmentConnectedEndpoint)(nil)).Elem() } -func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewriteOutput() URLMapDefaultRouteActionUrlRewriteOutput { +func (o ServiceAttachmentConnectedEndpointOutput) ToServiceAttachmentConnectedEndpointOutput() ServiceAttachmentConnectedEndpointOutput { return o } -func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewriteOutput { +func (o ServiceAttachmentConnectedEndpointOutput) ToServiceAttachmentConnectedEndpointOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointOutput { return o } -func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { - return o.ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) -} - -func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionUrlRewrite) *URLMapDefaultRouteActionUrlRewrite { - return &v - }).(URLMapDefaultRouteActionUrlRewritePtrOutput) -} - -// Prior to forwarding the request to the selected service, the request's host header is replaced -// with contents of hostRewrite. -// The value must be between 1 and 255 characters. -func (o URLMapDefaultRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) +// (Output) +// The URL of the consumer forwarding rule. +func (o ServiceAttachmentConnectedEndpointOutput) Endpoint() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAttachmentConnectedEndpoint) *string { return v.Endpoint }).(pulumi.StringPtrOutput) } -// Prior to forwarding the request to the selected backend service, the matching portion of the -// request's path is replaced by pathPrefixRewrite. -// The value must be between 1 and 1024 characters. -func (o URLMapDefaultRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) +// (Output) +// The status of the connection from the consumer forwarding rule to +// this service attachment. +func (o ServiceAttachmentConnectedEndpointOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAttachmentConnectedEndpoint) *string { return v.Status }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } +type ServiceAttachmentConnectedEndpointArrayOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() +func (ServiceAttachmentConnectedEndpointArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceAttachmentConnectedEndpoint)(nil)).Elem() } -func (o URLMapDefaultRouteActionUrlRewritePtrOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { +func (o ServiceAttachmentConnectedEndpointArrayOutput) ToServiceAttachmentConnectedEndpointArrayOutput() ServiceAttachmentConnectedEndpointArrayOutput { return o } -func (o URLMapDefaultRouteActionUrlRewritePtrOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { +func (o ServiceAttachmentConnectedEndpointArrayOutput) ToServiceAttachmentConnectedEndpointArrayOutputWithContext(ctx context.Context) ServiceAttachmentConnectedEndpointArrayOutput { return o } -func (o URLMapDefaultRouteActionUrlRewritePtrOutput) Elem() URLMapDefaultRouteActionUrlRewriteOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionUrlRewrite) URLMapDefaultRouteActionUrlRewrite { - if v != nil { - return *v - } - var ret URLMapDefaultRouteActionUrlRewrite - return ret - }).(URLMapDefaultRouteActionUrlRewriteOutput) -} - -// Prior to forwarding the request to the selected service, the request's host header is replaced -// with contents of hostRewrite. -// The value must be between 1 and 255 characters. -func (o URLMapDefaultRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.HostRewrite - }).(pulumi.StringPtrOutput) -} - -// Prior to forwarding the request to the selected backend service, the matching portion of the -// request's path is replaced by pathPrefixRewrite. -// The value must be between 1 and 1024 characters. -func (o URLMapDefaultRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionUrlRewrite) *string { - if v == nil { - return nil - } - return v.PathPrefixRewrite - }).(pulumi.StringPtrOutput) +func (o ServiceAttachmentConnectedEndpointArrayOutput) Index(i pulumi.IntInput) ServiceAttachmentConnectedEndpointOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAttachmentConnectedEndpoint { + return vs[0].([]ServiceAttachmentConnectedEndpoint)[vs[1].(int)] + }).(ServiceAttachmentConnectedEndpointOutput) } -type URLMapDefaultRouteActionWeightedBackendService struct { - // The full or partial URL to the default BackendService resource. Before forwarding the - // request to backendService, the loadbalancer applies any relevant headerActions - // specified as part of this backendServiceWeight. - BackendService *string `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for - // the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing - // HttpRouteRule, PathMatcher and UrlMap. - // Structure is documented below. - HeaderAction *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to backendService, computed as - // weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request - // has been directed to a backendService, subsequent requests will be sent to the same backendService - // as determined by the BackendService's session affinity policy. - // The value must be between 0 and 1000 - Weight *int `pulumi:"weight"` +type ServiceAttachmentConsumerAcceptList struct { + // The number of consumer forwarding rules the consumer project can + // create. + ConnectionLimit int `pulumi:"connectionLimit"` + // The network that is allowed to connect to this service attachment. + // Only one of projectIdOrNum and networkUrl may be set. + NetworkUrl *string `pulumi:"networkUrl"` + // A project that is allowed to connect to this service attachment. + // Only one of projectIdOrNum and networkUrl may be set. + ProjectIdOrNum *string `pulumi:"projectIdOrNum"` } -// URLMapDefaultRouteActionWeightedBackendServiceInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceArgs and URLMapDefaultRouteActionWeightedBackendServiceOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceInput` via: +// ServiceAttachmentConsumerAcceptListInput is an input type that accepts ServiceAttachmentConsumerAcceptListArgs and ServiceAttachmentConsumerAcceptListOutput values. +// You can construct a concrete instance of `ServiceAttachmentConsumerAcceptListInput` via: // -// URLMapDefaultRouteActionWeightedBackendServiceArgs{...} -type URLMapDefaultRouteActionWeightedBackendServiceInput interface { +// ServiceAttachmentConsumerAcceptListArgs{...} +type ServiceAttachmentConsumerAcceptListInput interface { pulumi.Input - ToURLMapDefaultRouteActionWeightedBackendServiceOutput() URLMapDefaultRouteActionWeightedBackendServiceOutput - ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceOutput + ToServiceAttachmentConsumerAcceptListOutput() ServiceAttachmentConsumerAcceptListOutput + ToServiceAttachmentConsumerAcceptListOutputWithContext(context.Context) ServiceAttachmentConsumerAcceptListOutput } -type URLMapDefaultRouteActionWeightedBackendServiceArgs struct { - // The full or partial URL to the default BackendService resource. Before forwarding the - // request to backendService, the loadbalancer applies any relevant headerActions - // specified as part of this backendServiceWeight. - BackendService pulumi.StringPtrInput `pulumi:"backendService"` - // Specifies changes to request and response headers that need to take effect for - // the selected backendService. - // headerAction specified here take effect before headerAction in the enclosing - // HttpRouteRule, PathMatcher and UrlMap. - // Structure is documented below. - HeaderAction URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` - // Specifies the fraction of traffic sent to backendService, computed as - // weight / (sum of all weightedBackendService weights in routeAction) . - // The selection of a backend service is determined only for new traffic. Once a user's request - // has been directed to a backendService, subsequent requests will be sent to the same backendService - // as determined by the BackendService's session affinity policy. - // The value must be between 0 and 1000 - Weight pulumi.IntPtrInput `pulumi:"weight"` +type ServiceAttachmentConsumerAcceptListArgs struct { + // The number of consumer forwarding rules the consumer project can + // create. + ConnectionLimit pulumi.IntInput `pulumi:"connectionLimit"` + // The network that is allowed to connect to this service attachment. + // Only one of projectIdOrNum and networkUrl may be set. + NetworkUrl pulumi.StringPtrInput `pulumi:"networkUrl"` + // A project that is allowed to connect to this service attachment. + // Only one of projectIdOrNum and networkUrl may be set. + ProjectIdOrNum pulumi.StringPtrInput `pulumi:"projectIdOrNum"` } -func (URLMapDefaultRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (ServiceAttachmentConsumerAcceptListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAttachmentConsumerAcceptList)(nil)).Elem() } -func (i URLMapDefaultRouteActionWeightedBackendServiceArgs) ToURLMapDefaultRouteActionWeightedBackendServiceOutput() URLMapDefaultRouteActionWeightedBackendServiceOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Background()) +func (i ServiceAttachmentConsumerAcceptListArgs) ToServiceAttachmentConsumerAcceptListOutput() ServiceAttachmentConsumerAcceptListOutput { + return i.ToServiceAttachmentConsumerAcceptListOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionWeightedBackendServiceArgs) ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceOutput) +func (i ServiceAttachmentConsumerAcceptListArgs) ToServiceAttachmentConsumerAcceptListOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConsumerAcceptListOutput) } -// URLMapDefaultRouteActionWeightedBackendServiceArrayInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceArray and URLMapDefaultRouteActionWeightedBackendServiceArrayOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceArrayInput` via: +// ServiceAttachmentConsumerAcceptListArrayInput is an input type that accepts ServiceAttachmentConsumerAcceptListArray and ServiceAttachmentConsumerAcceptListArrayOutput values. +// You can construct a concrete instance of `ServiceAttachmentConsumerAcceptListArrayInput` via: // -// URLMapDefaultRouteActionWeightedBackendServiceArray{ URLMapDefaultRouteActionWeightedBackendServiceArgs{...} } -type URLMapDefaultRouteActionWeightedBackendServiceArrayInput interface { +// ServiceAttachmentConsumerAcceptListArray{ ServiceAttachmentConsumerAcceptListArgs{...} } +type ServiceAttachmentConsumerAcceptListArrayInput interface { pulumi.Input - ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput - ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceArrayOutput + ToServiceAttachmentConsumerAcceptListArrayOutput() ServiceAttachmentConsumerAcceptListArrayOutput + ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(context.Context) ServiceAttachmentConsumerAcceptListArrayOutput } -type URLMapDefaultRouteActionWeightedBackendServiceArray []URLMapDefaultRouteActionWeightedBackendServiceInput +type ServiceAttachmentConsumerAcceptListArray []ServiceAttachmentConsumerAcceptListInput -func (URLMapDefaultRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (ServiceAttachmentConsumerAcceptListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceAttachmentConsumerAcceptList)(nil)).Elem() } -func (i URLMapDefaultRouteActionWeightedBackendServiceArray) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) +func (i ServiceAttachmentConsumerAcceptListArray) ToServiceAttachmentConsumerAcceptListArrayOutput() ServiceAttachmentConsumerAcceptListArrayOutput { + return i.ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionWeightedBackendServiceArray) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) +func (i ServiceAttachmentConsumerAcceptListArray) ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ServiceAttachmentConsumerAcceptListArrayOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } +type ServiceAttachmentConsumerAcceptListOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (ServiceAttachmentConsumerAcceptListOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ServiceAttachmentConsumerAcceptList)(nil)).Elem() } -func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) ToURLMapDefaultRouteActionWeightedBackendServiceOutput() URLMapDefaultRouteActionWeightedBackendServiceOutput { +func (o ServiceAttachmentConsumerAcceptListOutput) ToServiceAttachmentConsumerAcceptListOutput() ServiceAttachmentConsumerAcceptListOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceOutput { +func (o ServiceAttachmentConsumerAcceptListOutput) ToServiceAttachmentConsumerAcceptListOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListOutput { return o } -// The full or partial URL to the default BackendService resource. Before forwarding the -// request to backendService, the loadbalancer applies any relevant headerActions -// specified as part of this backendServiceWeight. -func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendService) *string { return v.BackendService }).(pulumi.StringPtrOutput) +// The number of consumer forwarding rules the consumer project can +// create. +func (o ServiceAttachmentConsumerAcceptListOutput) ConnectionLimit() pulumi.IntOutput { + return o.ApplyT(func(v ServiceAttachmentConsumerAcceptList) int { return v.ConnectionLimit }).(pulumi.IntOutput) } -// Specifies changes to request and response headers that need to take effect for -// the selected backendService. -// headerAction specified here take effect before headerAction in the enclosing -// HttpRouteRule, PathMatcher and UrlMap. -// Structure is documented below. -func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) HeaderAction() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendService) *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction { - return v.HeaderAction - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +// The network that is allowed to connect to this service attachment. +// Only one of projectIdOrNum and networkUrl may be set. +func (o ServiceAttachmentConsumerAcceptListOutput) NetworkUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAttachmentConsumerAcceptList) *string { return v.NetworkUrl }).(pulumi.StringPtrOutput) } -// Specifies the fraction of traffic sent to backendService, computed as -// weight / (sum of all weightedBackendService weights in routeAction) . -// The selection of a backend service is determined only for new traffic. Once a user's request -// has been directed to a backendService, subsequent requests will be sent to the same backendService -// as determined by the BackendService's session affinity policy. -// The value must be between 0 and 1000 -func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendService) *int { return v.Weight }).(pulumi.IntPtrOutput) +// A project that is allowed to connect to this service attachment. +// Only one of projectIdOrNum and networkUrl may be set. +func (o ServiceAttachmentConsumerAcceptListOutput) ProjectIdOrNum() pulumi.StringPtrOutput { + return o.ApplyT(func(v ServiceAttachmentConsumerAcceptList) *string { return v.ProjectIdOrNum }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } +type ServiceAttachmentConsumerAcceptListArrayOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (ServiceAttachmentConsumerAcceptListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ServiceAttachmentConsumerAcceptList)(nil)).Elem() } -func (o URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { +func (o ServiceAttachmentConsumerAcceptListArrayOutput) ToServiceAttachmentConsumerAcceptListArrayOutput() ServiceAttachmentConsumerAcceptListArrayOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { +func (o ServiceAttachmentConsumerAcceptListArrayOutput) ToServiceAttachmentConsumerAcceptListArrayOutputWithContext(ctx context.Context) ServiceAttachmentConsumerAcceptListArrayOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) URLMapDefaultRouteActionWeightedBackendServiceOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultRouteActionWeightedBackendService { - return vs[0].([]URLMapDefaultRouteActionWeightedBackendService)[vs[1].(int)] - }).(URLMapDefaultRouteActionWeightedBackendServiceOutput) +func (o ServiceAttachmentConsumerAcceptListArrayOutput) Index(i pulumi.IntInput) ServiceAttachmentConsumerAcceptListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ServiceAttachmentConsumerAcceptList { + return vs[0].([]ServiceAttachmentConsumerAcceptList)[vs[1].(int)] + }).(ServiceAttachmentConsumerAcceptListOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderAction struct { - // Headers to add to a matching request prior to forwarding the request to the backendService. - // Structure is documented below. - RequestHeadersToAdds []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request prior to - // forwarding the request to the backendService. - RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` - // Headers to add the response prior to sending the response back to the client. - // Structure is documented below. - ResponseHeadersToAdds []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response prior to sending the - // response back to the client. - ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` +type SnapshotIamBindingCondition struct { + Description *string `pulumi:"description"` + Expression string `pulumi:"expression"` + Title string `pulumi:"title"` } -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionInput` via: +// SnapshotIamBindingConditionInput is an input type that accepts SnapshotIamBindingConditionArgs and SnapshotIamBindingConditionOutput values. +// You can construct a concrete instance of `SnapshotIamBindingConditionInput` via: // -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionInput interface { +// SnapshotIamBindingConditionArgs{...} +type SnapshotIamBindingConditionInput interface { pulumi.Input - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput + ToSnapshotIamBindingConditionOutput() SnapshotIamBindingConditionOutput + ToSnapshotIamBindingConditionOutputWithContext(context.Context) SnapshotIamBindingConditionOutput } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs struct { - // Headers to add to a matching request prior to forwarding the request to the backendService. - // Structure is documented below. - RequestHeadersToAdds URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request prior to - // forwarding the request to the backendService. - RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` - // Headers to add the response prior to sending the response back to the client. - // Structure is documented below. - ResponseHeadersToAdds URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response prior to sending the - // response back to the client. - ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` +type SnapshotIamBindingConditionArgs struct { + Description pulumi.StringPtrInput `pulumi:"description"` + Expression pulumi.StringInput `pulumi:"expression"` + Title pulumi.StringInput `pulumi:"title"` } -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (SnapshotIamBindingConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotIamBindingCondition)(nil)).Elem() } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) +func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionOutput() SnapshotIamBindingConditionOutput { + return i.ToSnapshotIamBindingConditionOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) +func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionOutputWithContext(ctx context.Context) SnapshotIamBindingConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamBindingConditionOutput) } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { + return i.ToSnapshotIamBindingConditionPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput).ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) +func (i SnapshotIamBindingConditionArgs) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamBindingConditionOutput).ToSnapshotIamBindingConditionPtrOutputWithContext(ctx) } -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs, URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput` via: +// SnapshotIamBindingConditionPtrInput is an input type that accepts SnapshotIamBindingConditionArgs, SnapshotIamBindingConditionPtr and SnapshotIamBindingConditionPtrOutput values. +// You can construct a concrete instance of `SnapshotIamBindingConditionPtrInput` via: // -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} +// SnapshotIamBindingConditionArgs{...} // // or: // // nil -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput interface { +type SnapshotIamBindingConditionPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput + ToSnapshotIamBindingConditionPtrOutputWithContext(context.Context) SnapshotIamBindingConditionPtrOutput } -type urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs +type snapshotIamBindingConditionPtrType SnapshotIamBindingConditionArgs -func URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput { - return (*urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType)(v) +func SnapshotIamBindingConditionPtr(v *SnapshotIamBindingConditionArgs) SnapshotIamBindingConditionPtrInput { + return (*snapshotIamBindingConditionPtrType)(v) } -func (*urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (*snapshotIamBindingConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotIamBindingCondition)(nil)).Elem() } -func (i *urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i *snapshotIamBindingConditionPtrType) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { + return i.ToSnapshotIamBindingConditionPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +func (i *snapshotIamBindingConditionPtrType) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamBindingConditionPtrOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } +type SnapshotIamBindingConditionOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (SnapshotIamBindingConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotIamBindingCondition)(nil)).Elem() } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { +func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionOutput() SnapshotIamBindingConditionOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { +func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionOutputWithContext(ctx context.Context) SnapshotIamBindingConditionOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { + return o.ToSnapshotIamBindingConditionPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction { +func (o SnapshotIamBindingConditionOutput) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotIamBindingCondition) *SnapshotIamBindingCondition { return &v - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) -} - -// Headers to add to a matching request prior to forwarding the request to the backendService. -// Structure is documented below. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) + }).(SnapshotIamBindingConditionPtrOutput) } -// A list of header names for headers that need to be removed from the request prior to -// forwarding the request to the backendService. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) +func (o SnapshotIamBindingConditionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotIamBindingCondition) *string { return v.Description }).(pulumi.StringPtrOutput) } -// Headers to add the response prior to sending the response back to the client. -// Structure is documented below. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return v.ResponseHeadersToAdds - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +func (o SnapshotIamBindingConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v SnapshotIamBindingCondition) string { return v.Expression }).(pulumi.StringOutput) } -// A list of header names for headers that need to be removed from the response prior to sending the -// response back to the client. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) +func (o SnapshotIamBindingConditionOutput) Title() pulumi.StringOutput { + return o.ApplyT(func(v SnapshotIamBindingCondition) string { return v.Title }).(pulumi.StringOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } +type SnapshotIamBindingConditionPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (SnapshotIamBindingConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotIamBindingCondition)(nil)).Elem() } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { +func (o SnapshotIamBindingConditionPtrOutput) ToSnapshotIamBindingConditionPtrOutput() SnapshotIamBindingConditionPtrOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { +func (o SnapshotIamBindingConditionPtrOutput) ToSnapshotIamBindingConditionPtrOutputWithContext(ctx context.Context) SnapshotIamBindingConditionPtrOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) URLMapDefaultRouteActionWeightedBackendServiceHeaderAction { +func (o SnapshotIamBindingConditionPtrOutput) Elem() SnapshotIamBindingConditionOutput { + return o.ApplyT(func(v *SnapshotIamBindingCondition) SnapshotIamBindingCondition { if v != nil { return *v } - var ret URLMapDefaultRouteActionWeightedBackendServiceHeaderAction + var ret SnapshotIamBindingCondition return ret - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) -} - -// Headers to add to a matching request prior to forwarding the request to the backendService. -// Structure is documented below. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - if v == nil { - return nil - } - return v.RequestHeadersToAdds - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) + }).(SnapshotIamBindingConditionOutput) } -// A list of header names for headers that need to be removed from the request prior to -// forwarding the request to the backendService. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +func (o SnapshotIamBindingConditionPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotIamBindingCondition) *string { if v == nil { return nil } - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) + return v.Description + }).(pulumi.StringPtrOutput) } -// Headers to add the response prior to sending the response back to the client. -// Structure is documented below. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { +func (o SnapshotIamBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotIamBindingCondition) *string { if v == nil { return nil } - return v.ResponseHeadersToAdds - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) + return &v.Expression + }).(pulumi.StringPtrOutput) } -// A list of header names for headers that need to be removed from the response prior to sending the -// response back to the client. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +func (o SnapshotIamBindingConditionPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotIamBindingCondition) *string { if v == nil { return nil } - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) + return &v.Title + }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { - // The name of the header to add. - HeaderName *string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue *string `pulumi:"headerValue"` - // 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. - Replace *bool `pulumi:"replace"` +type SnapshotIamMemberCondition struct { + Description *string `pulumi:"description"` + Expression string `pulumi:"expression"` + Title string `pulumi:"title"` } -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// SnapshotIamMemberConditionInput is an input type that accepts SnapshotIamMemberConditionArgs and SnapshotIamMemberConditionOutput values. +// You can construct a concrete instance of `SnapshotIamMemberConditionInput` via: // -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { +// SnapshotIamMemberConditionArgs{...} +type SnapshotIamMemberConditionInput interface { pulumi.Input - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToSnapshotIamMemberConditionOutput() SnapshotIamMemberConditionOutput + ToSnapshotIamMemberConditionOutputWithContext(context.Context) SnapshotIamMemberConditionOutput } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { - // The name of the header to add. - HeaderName pulumi.StringPtrInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` - // 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. - Replace pulumi.BoolPtrInput `pulumi:"replace"` +type SnapshotIamMemberConditionArgs struct { + Description pulumi.StringPtrInput `pulumi:"description"` + Expression pulumi.StringInput `pulumi:"expression"` + Title pulumi.StringInput `pulumi:"title"` } -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (SnapshotIamMemberConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotIamMemberCondition)(nil)).Elem() } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionOutput() SnapshotIamMemberConditionOutput { + return i.ToSnapshotIamMemberConditionOutputWithContext(context.Background()) } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionOutputWithContext(ctx context.Context) SnapshotIamMemberConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamMemberConditionOutput) } -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: +func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { + return i.ToSnapshotIamMemberConditionPtrOutputWithContext(context.Background()) +} + +func (i SnapshotIamMemberConditionArgs) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamMemberConditionOutput).ToSnapshotIamMemberConditionPtrOutputWithContext(ctx) +} + +// SnapshotIamMemberConditionPtrInput is an input type that accepts SnapshotIamMemberConditionArgs, SnapshotIamMemberConditionPtr and SnapshotIamMemberConditionPtrOutput values. +// You can construct a concrete instance of `SnapshotIamMemberConditionPtrInput` via: // -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { +// SnapshotIamMemberConditionArgs{...} +// +// or: +// +// nil +type SnapshotIamMemberConditionPtrInput interface { pulumi.Input - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput + ToSnapshotIamMemberConditionPtrOutputWithContext(context.Context) SnapshotIamMemberConditionPtrOutput } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput +type snapshotIamMemberConditionPtrType SnapshotIamMemberConditionArgs -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func SnapshotIamMemberConditionPtr(v *SnapshotIamMemberConditionArgs) SnapshotIamMemberConditionPtrInput { + return (*snapshotIamMemberConditionPtrType)(v) } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +func (*snapshotIamMemberConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotIamMemberCondition)(nil)).Elem() } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +func (i *snapshotIamMemberConditionPtrType) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { + return i.ToSnapshotIamMemberConditionPtrOutputWithContext(context.Background()) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } +func (i *snapshotIamMemberConditionPtrType) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotIamMemberConditionPtrOutput) +} -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +type SnapshotIamMemberConditionOutput struct{ *pulumi.OutputState } + +func (SnapshotIamMemberConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotIamMemberCondition)(nil)).Elem() } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionOutput() SnapshotIamMemberConditionOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionOutputWithContext(ctx context.Context) SnapshotIamMemberConditionOutput { return o } -// The name of the header to add. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { - return v.HeaderName - }).(pulumi.StringPtrOutput) +func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { + return o.ToSnapshotIamMemberConditionPtrOutputWithContext(context.Background()) } -// The value of the header to add. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { - return v.HeaderValue - }).(pulumi.StringPtrOutput) +func (o SnapshotIamMemberConditionOutput) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotIamMemberCondition) *SnapshotIamMemberCondition { + return &v + }).(SnapshotIamMemberConditionPtrOutput) } -// 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. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *bool { - return v.Replace - }).(pulumi.BoolPtrOutput) +func (o SnapshotIamMemberConditionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotIamMemberCondition) *string { return v.Description }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } +func (o SnapshotIamMemberConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v SnapshotIamMemberCondition) string { return v.Expression }).(pulumi.StringOutput) +} -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (o SnapshotIamMemberConditionOutput) Title() pulumi.StringOutput { + return o.ApplyT(func(v SnapshotIamMemberCondition) string { return v.Title }).(pulumi.StringOutput) } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +type SnapshotIamMemberConditionPtrOutput struct{ *pulumi.OutputState } + +func (SnapshotIamMemberConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotIamMemberCondition)(nil)).Elem() +} + +func (o SnapshotIamMemberConditionPtrOutput) ToSnapshotIamMemberConditionPtrOutput() SnapshotIamMemberConditionPtrOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +func (o SnapshotIamMemberConditionPtrOutput) ToSnapshotIamMemberConditionPtrOutputWithContext(ctx context.Context) SnapshotIamMemberConditionPtrOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return vs[0].([]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (o SnapshotIamMemberConditionPtrOutput) Elem() SnapshotIamMemberConditionOutput { + return o.ApplyT(func(v *SnapshotIamMemberCondition) SnapshotIamMemberCondition { + if v != nil { + return *v + } + var ret SnapshotIamMemberCondition + return ret + }).(SnapshotIamMemberConditionOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { - // The name of the header to add. - HeaderName *string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue *string `pulumi:"headerValue"` - // 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. - Replace *bool `pulumi:"replace"` +func (o SnapshotIamMemberConditionPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotIamMemberCondition) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) } -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: +func (o SnapshotIamMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotIamMemberCondition) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) +} + +func (o SnapshotIamMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotIamMemberCondition) *string { + if v == nil { + return nil + } + return &v.Title + }).(pulumi.StringPtrOutput) +} + +type SnapshotSnapshotEncryptionKey struct { + // The name of the encryption key that is stored in Google Cloud KMS. + KmsKeySelfLink *string `pulumi:"kmsKeySelfLink"` + // The service account used for the encryption request for the given KMS key. + // If absent, the Compute Engine Service Agent service account is used. + KmsKeyServiceAccount *string `pulumi:"kmsKeyServiceAccount"` + // Specifies a 256-bit customer-supplied encryption key, encoded in + // RFC 4648 base64 to either encrypt or decrypt this resource. + // **Note**: This property is sensitive and will not be displayed in the plan. + RawKey *string `pulumi:"rawKey"` + // (Output) + // The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied + // encryption key that protects this resource. + Sha256 *string `pulumi:"sha256"` +} + +// SnapshotSnapshotEncryptionKeyInput is an input type that accepts SnapshotSnapshotEncryptionKeyArgs and SnapshotSnapshotEncryptionKeyOutput values. +// You can construct a concrete instance of `SnapshotSnapshotEncryptionKeyInput` via: // -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { +// SnapshotSnapshotEncryptionKeyArgs{...} +type SnapshotSnapshotEncryptionKeyInput interface { pulumi.Input - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToSnapshotSnapshotEncryptionKeyOutput() SnapshotSnapshotEncryptionKeyOutput + ToSnapshotSnapshotEncryptionKeyOutputWithContext(context.Context) SnapshotSnapshotEncryptionKeyOutput } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { - // The name of the header to add. - HeaderName pulumi.StringPtrInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` - // 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. - Replace pulumi.BoolPtrInput `pulumi:"replace"` +type SnapshotSnapshotEncryptionKeyArgs struct { + // The name of the encryption key that is stored in Google Cloud KMS. + KmsKeySelfLink pulumi.StringPtrInput `pulumi:"kmsKeySelfLink"` + // The service account used for the encryption request for the given KMS key. + // If absent, the Compute Engine Service Agent service account is used. + KmsKeyServiceAccount pulumi.StringPtrInput `pulumi:"kmsKeyServiceAccount"` + // Specifies a 256-bit customer-supplied encryption key, encoded in + // RFC 4648 base64 to either encrypt or decrypt this resource. + // **Note**: This property is sensitive and will not be displayed in the plan. + RawKey pulumi.StringPtrInput `pulumi:"rawKey"` + // (Output) + // The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied + // encryption key that protects this resource. + Sha256 pulumi.StringPtrInput `pulumi:"sha256"` +} + +func (SnapshotSnapshotEncryptionKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotSnapshotEncryptionKey)(nil)).Elem() +} + +func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyOutput() SnapshotSnapshotEncryptionKeyOutput { + return i.ToSnapshotSnapshotEncryptionKeyOutputWithContext(context.Background()) +} + +func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotSnapshotEncryptionKeyOutput) +} + +func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { + return i.ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Background()) +} + +func (i SnapshotSnapshotEncryptionKeyArgs) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotSnapshotEncryptionKeyOutput).ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx) +} + +// SnapshotSnapshotEncryptionKeyPtrInput is an input type that accepts SnapshotSnapshotEncryptionKeyArgs, SnapshotSnapshotEncryptionKeyPtr and SnapshotSnapshotEncryptionKeyPtrOutput values. +// You can construct a concrete instance of `SnapshotSnapshotEncryptionKeyPtrInput` via: +// +// SnapshotSnapshotEncryptionKeyArgs{...} +// +// or: +// +// nil +type SnapshotSnapshotEncryptionKeyPtrInput interface { + pulumi.Input + + ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput + ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Context) SnapshotSnapshotEncryptionKeyPtrOutput +} + +type snapshotSnapshotEncryptionKeyPtrType SnapshotSnapshotEncryptionKeyArgs + +func SnapshotSnapshotEncryptionKeyPtr(v *SnapshotSnapshotEncryptionKeyArgs) SnapshotSnapshotEncryptionKeyPtrInput { + return (*snapshotSnapshotEncryptionKeyPtrType)(v) +} + +func (*snapshotSnapshotEncryptionKeyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotSnapshotEncryptionKey)(nil)).Elem() +} + +func (i *snapshotSnapshotEncryptionKeyPtrType) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { + return i.ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Background()) +} + +func (i *snapshotSnapshotEncryptionKeyPtrType) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotSnapshotEncryptionKeyPtrOutput) } -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +type SnapshotSnapshotEncryptionKeyOutput struct{ *pulumi.OutputState } + +func (SnapshotSnapshotEncryptionKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotSnapshotEncryptionKey)(nil)).Elem() } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) +func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyOutput() SnapshotSnapshotEncryptionKeyOutput { + return o } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyOutput { + return o } -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. -// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: -// -// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { - pulumi.Input +func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { + return o.ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(context.Background()) +} - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput - ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput +func (o SnapshotSnapshotEncryptionKeyOutput) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotSnapshotEncryptionKey) *SnapshotSnapshotEncryptionKey { + return &v + }).(SnapshotSnapshotEncryptionKeyPtrOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput +// The name of the encryption key that is stored in Google Cloud KMS. +func (o SnapshotSnapshotEncryptionKeyOutput) KmsKeySelfLink() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.KmsKeySelfLink }).(pulumi.StringPtrOutput) +} -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +// The service account used for the encryption request for the given KMS key. +// If absent, the Compute Engine Service Agent service account is used. +func (o SnapshotSnapshotEncryptionKeyOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.KmsKeyServiceAccount }).(pulumi.StringPtrOutput) } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +// Specifies a 256-bit customer-supplied encryption key, encoded in +// RFC 4648 base64 to either encrypt or decrypt this resource. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SnapshotSnapshotEncryptionKeyOutput) RawKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.RawKey }).(pulumi.StringPtrOutput) } -func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +// (Output) +// The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied +// encryption key that protects this resource. +func (o SnapshotSnapshotEncryptionKeyOutput) Sha256() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotSnapshotEncryptionKey) *string { return v.Sha256 }).(pulumi.StringPtrOutput) } -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } +type SnapshotSnapshotEncryptionKeyPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (SnapshotSnapshotEncryptionKeyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotSnapshotEncryptionKey)(nil)).Elem() } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o SnapshotSnapshotEncryptionKeyPtrOutput) ToSnapshotSnapshotEncryptionKeyPtrOutput() SnapshotSnapshotEncryptionKeyPtrOutput { return o } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o SnapshotSnapshotEncryptionKeyPtrOutput) ToSnapshotSnapshotEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSnapshotEncryptionKeyPtrOutput { return o } -// The name of the header to add. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { - return v.HeaderName - }).(pulumi.StringPtrOutput) +func (o SnapshotSnapshotEncryptionKeyPtrOutput) Elem() SnapshotSnapshotEncryptionKeyOutput { + return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) SnapshotSnapshotEncryptionKey { + if v != nil { + return *v + } + var ret SnapshotSnapshotEncryptionKey + return ret + }).(SnapshotSnapshotEncryptionKeyOutput) } -// The value of the header to add. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { - return v.HeaderValue +// The name of the encryption key that is stored in Google Cloud KMS. +func (o SnapshotSnapshotEncryptionKeyPtrOutput) KmsKeySelfLink() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { + if v == nil { + return nil + } + return v.KmsKeySelfLink }).(pulumi.StringPtrOutput) } -// 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. -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *bool { - return v.Replace - }).(pulumi.BoolPtrOutput) -} - -type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } - -func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() -} - -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o +// The service account used for the encryption request for the given KMS key. +// If absent, the Compute Engine Service Agent service account is used. +func (o SnapshotSnapshotEncryptionKeyPtrOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { + if v == nil { + return nil + } + return v.KmsKeyServiceAccount + }).(pulumi.StringPtrOutput) } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o +// Specifies a 256-bit customer-supplied encryption key, encoded in +// RFC 4648 base64 to either encrypt or decrypt this resource. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SnapshotSnapshotEncryptionKeyPtrOutput) RawKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { + if v == nil { + return nil + } + return v.RawKey + }).(pulumi.StringPtrOutput) } -func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return vs[0].([]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] - }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +// (Output) +// The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied +// encryption key that protects this resource. +func (o SnapshotSnapshotEncryptionKeyPtrOutput) Sha256() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotSnapshotEncryptionKey) *string { + if v == nil { + return nil + } + return v.Sha256 + }).(pulumi.StringPtrOutput) } -type URLMapDefaultUrlRedirect struct { - // The host that will be used in the redirect response instead of the one that was - // supplied in the request. The value must be between 1 and 255 characters. - HostRedirect *string `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. If set to - // false, the URL scheme of the redirected request will remain the same as that of the - // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this - // true for TargetHttpsProxy is not permitted. The default is set to false. - HttpsRedirect *bool `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one that was - // supplied in the request. pathRedirect cannot be supplied together with - // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the - // original request will be used for the redirect. The value must be between 1 and 1024 - // characters. - PathRedirect *string `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - // retaining the remaining portion of the URL before redirecting the request. - // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or - // neither. If neither is supplied, the path of the original request will be used for - // the redirect. The value must be between 1 and 1024 characters. - PrefixRedirect *string `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode *string `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed prior - // to redirecting the request. If set to false, the query portion of the original URL is - // retained. The default is set to false. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery bool `pulumi:"stripQuery"` +type SnapshotSourceDiskEncryptionKey struct { + // The service account used for the encryption request for the given KMS key. + // If absent, the Compute Engine Service Agent service account is used. + KmsKeyServiceAccount *string `pulumi:"kmsKeyServiceAccount"` + // Specifies a 256-bit customer-supplied encryption key, encoded in + // RFC 4648 base64 to either encrypt or decrypt this resource. + // **Note**: This property is sensitive and will not be displayed in the plan. + RawKey *string `pulumi:"rawKey"` } -// URLMapDefaultUrlRedirectInput is an input type that accepts URLMapDefaultUrlRedirectArgs and URLMapDefaultUrlRedirectOutput values. -// You can construct a concrete instance of `URLMapDefaultUrlRedirectInput` via: +// SnapshotSourceDiskEncryptionKeyInput is an input type that accepts SnapshotSourceDiskEncryptionKeyArgs and SnapshotSourceDiskEncryptionKeyOutput values. +// You can construct a concrete instance of `SnapshotSourceDiskEncryptionKeyInput` via: // -// URLMapDefaultUrlRedirectArgs{...} -type URLMapDefaultUrlRedirectInput interface { +// SnapshotSourceDiskEncryptionKeyArgs{...} +type SnapshotSourceDiskEncryptionKeyInput interface { pulumi.Input - ToURLMapDefaultUrlRedirectOutput() URLMapDefaultUrlRedirectOutput - ToURLMapDefaultUrlRedirectOutputWithContext(context.Context) URLMapDefaultUrlRedirectOutput + ToSnapshotSourceDiskEncryptionKeyOutput() SnapshotSourceDiskEncryptionKeyOutput + ToSnapshotSourceDiskEncryptionKeyOutputWithContext(context.Context) SnapshotSourceDiskEncryptionKeyOutput } -type URLMapDefaultUrlRedirectArgs struct { - // The host that will be used in the redirect response instead of the one that was - // supplied in the request. The value must be between 1 and 255 characters. - HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` - // If set to true, the URL scheme in the redirected request is set to https. If set to - // false, the URL scheme of the redirected request will remain the same as that of the - // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this - // true for TargetHttpsProxy is not permitted. The default is set to false. - HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` - // The path that will be used in the redirect response instead of the one that was - // supplied in the request. pathRedirect cannot be supplied together with - // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the - // original request will be used for the redirect. The value must be between 1 and 1024 - // characters. - PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` - // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - // retaining the remaining portion of the URL before redirecting the request. - // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or - // neither. If neither is supplied, the path of the original request will be used for - // the redirect. The value must be between 1 and 1024 characters. - PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` - // The HTTP Status code to use for this RedirectAction. Supported values are: - // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. - // * FOUND, which corresponds to 302. - // * SEE_OTHER which corresponds to 303. - // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method - // will be retained. - // * PERMANENT_REDIRECT, which corresponds to 308. In this case, - // the request method will be retained. - RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` - // If set to true, any accompanying query portion of the original URL is removed prior - // to redirecting the request. If set to false, the query portion of the original URL is - // retained. The default is set to false. - // This field is required to ensure an empty block is not set. The normal default value is false. - StripQuery pulumi.BoolInput `pulumi:"stripQuery"` +type SnapshotSourceDiskEncryptionKeyArgs struct { + // The service account used for the encryption request for the given KMS key. + // If absent, the Compute Engine Service Agent service account is used. + KmsKeyServiceAccount pulumi.StringPtrInput `pulumi:"kmsKeyServiceAccount"` + // Specifies a 256-bit customer-supplied encryption key, encoded in + // RFC 4648 base64 to either encrypt or decrypt this resource. + // **Note**: This property is sensitive and will not be displayed in the plan. + RawKey pulumi.StringPtrInput `pulumi:"rawKey"` } -func (URLMapDefaultUrlRedirectArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultUrlRedirect)(nil)).Elem() +func (SnapshotSourceDiskEncryptionKeyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotSourceDiskEncryptionKey)(nil)).Elem() } -func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectOutput() URLMapDefaultUrlRedirectOutput { - return i.ToURLMapDefaultUrlRedirectOutputWithContext(context.Background()) +func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyOutput() SnapshotSourceDiskEncryptionKeyOutput { + return i.ToSnapshotSourceDiskEncryptionKeyOutputWithContext(context.Background()) } -func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultUrlRedirectOutput) +func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotSourceDiskEncryptionKeyOutput) } -func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { - return i.ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { + return i.ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Background()) } -func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultUrlRedirectOutput).ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx) +func (i SnapshotSourceDiskEncryptionKeyArgs) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotSourceDiskEncryptionKeyOutput).ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx) } -// URLMapDefaultUrlRedirectPtrInput is an input type that accepts URLMapDefaultUrlRedirectArgs, URLMapDefaultUrlRedirectPtr and URLMapDefaultUrlRedirectPtrOutput values. -// You can construct a concrete instance of `URLMapDefaultUrlRedirectPtrInput` via: +// SnapshotSourceDiskEncryptionKeyPtrInput is an input type that accepts SnapshotSourceDiskEncryptionKeyArgs, SnapshotSourceDiskEncryptionKeyPtr and SnapshotSourceDiskEncryptionKeyPtrOutput values. +// You can construct a concrete instance of `SnapshotSourceDiskEncryptionKeyPtrInput` via: // -// URLMapDefaultUrlRedirectArgs{...} +// SnapshotSourceDiskEncryptionKeyArgs{...} // // or: // // nil -type URLMapDefaultUrlRedirectPtrInput interface { +type SnapshotSourceDiskEncryptionKeyPtrInput interface { pulumi.Input - ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput - ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Context) URLMapDefaultUrlRedirectPtrOutput + ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput + ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput } -type urlmapDefaultUrlRedirectPtrType URLMapDefaultUrlRedirectArgs +type snapshotSourceDiskEncryptionKeyPtrType SnapshotSourceDiskEncryptionKeyArgs -func URLMapDefaultUrlRedirectPtr(v *URLMapDefaultUrlRedirectArgs) URLMapDefaultUrlRedirectPtrInput { - return (*urlmapDefaultUrlRedirectPtrType)(v) +func SnapshotSourceDiskEncryptionKeyPtr(v *SnapshotSourceDiskEncryptionKeyArgs) SnapshotSourceDiskEncryptionKeyPtrInput { + return (*snapshotSourceDiskEncryptionKeyPtrType)(v) } -func (*urlmapDefaultUrlRedirectPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultUrlRedirect)(nil)).Elem() +func (*snapshotSourceDiskEncryptionKeyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotSourceDiskEncryptionKey)(nil)).Elem() } -func (i *urlmapDefaultUrlRedirectPtrType) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { - return i.ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (i *snapshotSourceDiskEncryptionKeyPtrType) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { + return i.ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Background()) } -func (i *urlmapDefaultUrlRedirectPtrType) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultUrlRedirectPtrOutput) +func (i *snapshotSourceDiskEncryptionKeyPtrType) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SnapshotSourceDiskEncryptionKeyPtrOutput) } -type URLMapDefaultUrlRedirectOutput struct{ *pulumi.OutputState } +type SnapshotSourceDiskEncryptionKeyOutput struct{ *pulumi.OutputState } -func (URLMapDefaultUrlRedirectOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapDefaultUrlRedirect)(nil)).Elem() +func (SnapshotSourceDiskEncryptionKeyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SnapshotSourceDiskEncryptionKey)(nil)).Elem() } -func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectOutput() URLMapDefaultUrlRedirectOutput { +func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyOutput() SnapshotSourceDiskEncryptionKeyOutput { return o } -func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectOutput { +func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyOutput { return o } -func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { - return o.ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { + return o.ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(context.Background()) } -func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultUrlRedirect) *URLMapDefaultUrlRedirect { +func (o SnapshotSourceDiskEncryptionKeyOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SnapshotSourceDiskEncryptionKey) *SnapshotSourceDiskEncryptionKey { return &v - }).(URLMapDefaultUrlRedirectPtrOutput) -} - -// The host that will be used in the redirect response instead of the one that was -// supplied in the request. The value must be between 1 and 255 characters. -func (o URLMapDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) -} - -// If set to true, the URL scheme in the redirected request is set to https. If set to -// false, the URL scheme of the redirected request will remain the same as that of the -// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this -// true for TargetHttpsProxy is not permitted. The default is set to false. -func (o URLMapDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) -} - -// The path that will be used in the redirect response instead of the one that was -// supplied in the request. pathRedirect cannot be supplied together with -// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the -// original request will be used for the redirect. The value must be between 1 and 1024 -// characters. -func (o URLMapDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) -} - -// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, -// retaining the remaining portion of the URL before redirecting the request. -// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or -// neither. If neither is supplied, the path of the original request will be used for -// the redirect. The value must be between 1 and 1024 characters. -func (o URLMapDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) + }).(SnapshotSourceDiskEncryptionKeyPtrOutput) } -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o URLMapDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) +// The service account used for the encryption request for the given KMS key. +// If absent, the Compute Engine Service Agent service account is used. +func (o SnapshotSourceDiskEncryptionKeyOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotSourceDiskEncryptionKey) *string { return v.KmsKeyServiceAccount }).(pulumi.StringPtrOutput) } -// If set to true, any accompanying query portion of the original URL is removed prior -// to redirecting the request. If set to false, the query portion of the original URL is -// retained. The default is set to false. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o URLMapDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { - return o.ApplyT(func(v URLMapDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) +// Specifies a 256-bit customer-supplied encryption key, encoded in +// RFC 4648 base64 to either encrypt or decrypt this resource. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SnapshotSourceDiskEncryptionKeyOutput) RawKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v SnapshotSourceDiskEncryptionKey) *string { return v.RawKey }).(pulumi.StringPtrOutput) } -type URLMapDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } +type SnapshotSourceDiskEncryptionKeyPtrOutput struct{ *pulumi.OutputState } -func (URLMapDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapDefaultUrlRedirect)(nil)).Elem() +func (SnapshotSourceDiskEncryptionKeyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SnapshotSourceDiskEncryptionKey)(nil)).Elem() } -func (o URLMapDefaultUrlRedirectPtrOutput) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { +func (o SnapshotSourceDiskEncryptionKeyPtrOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutput() SnapshotSourceDiskEncryptionKeyPtrOutput { return o } -func (o URLMapDefaultUrlRedirectPtrOutput) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { +func (o SnapshotSourceDiskEncryptionKeyPtrOutput) ToSnapshotSourceDiskEncryptionKeyPtrOutputWithContext(ctx context.Context) SnapshotSourceDiskEncryptionKeyPtrOutput { return o } -func (o URLMapDefaultUrlRedirectPtrOutput) Elem() URLMapDefaultUrlRedirectOutput { - return o.ApplyT(func(v *URLMapDefaultUrlRedirect) URLMapDefaultUrlRedirect { +func (o SnapshotSourceDiskEncryptionKeyPtrOutput) Elem() SnapshotSourceDiskEncryptionKeyOutput { + return o.ApplyT(func(v *SnapshotSourceDiskEncryptionKey) SnapshotSourceDiskEncryptionKey { if v != nil { return *v } - var ret URLMapDefaultUrlRedirect + var ret SnapshotSourceDiskEncryptionKey return ret - }).(URLMapDefaultUrlRedirectOutput) -} - -// The host that will be used in the redirect response instead of the one that was -// supplied in the request. The value must be between 1 and 255 characters. -func (o URLMapDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { - if v == nil { - return nil - } - return v.HostRedirect - }).(pulumi.StringPtrOutput) -} - -// If set to true, the URL scheme in the redirected request is set to https. If set to -// false, the URL scheme of the redirected request will remain the same as that of the -// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this -// true for TargetHttpsProxy is not permitted. The default is set to false. -func (o URLMapDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *bool { - if v == nil { - return nil - } - return v.HttpsRedirect - }).(pulumi.BoolPtrOutput) -} - -// The path that will be used in the redirect response instead of the one that was -// supplied in the request. pathRedirect cannot be supplied together with -// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the -// original request will be used for the redirect. The value must be between 1 and 1024 -// characters. -func (o URLMapDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { - if v == nil { - return nil - } - return v.PathRedirect - }).(pulumi.StringPtrOutput) + }).(SnapshotSourceDiskEncryptionKeyOutput) } -// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, -// retaining the remaining portion of the URL before redirecting the request. -// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or -// neither. If neither is supplied, the path of the original request will be used for -// the redirect. The value must be between 1 and 1024 characters. -func (o URLMapDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { +// The service account used for the encryption request for the given KMS key. +// If absent, the Compute Engine Service Agent service account is used. +func (o SnapshotSourceDiskEncryptionKeyPtrOutput) KmsKeyServiceAccount() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotSourceDiskEncryptionKey) *string { if v == nil { return nil } - return v.PrefixRedirect + return v.KmsKeyServiceAccount }).(pulumi.StringPtrOutput) } -// The HTTP Status code to use for this RedirectAction. Supported values are: -// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -// - FOUND, which corresponds to 302. -// - SEE_OTHER which corresponds to 303. -// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method -// will be retained. -// - PERMANENT_REDIRECT, which corresponds to 308. In this case, -// the request method will be retained. -func (o URLMapDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { +// Specifies a 256-bit customer-supplied encryption key, encoded in +// RFC 4648 base64 to either encrypt or decrypt this resource. +// **Note**: This property is sensitive and will not be displayed in the plan. +func (o SnapshotSourceDiskEncryptionKeyPtrOutput) RawKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SnapshotSourceDiskEncryptionKey) *string { if v == nil { return nil } - return v.RedirectResponseCode + return v.RawKey }).(pulumi.StringPtrOutput) } -// If set to true, any accompanying query portion of the original URL is removed prior -// to redirecting the request. If set to false, the query portion of the original URL is -// retained. The default is set to false. -// This field is required to ensure an empty block is not set. The normal default value is false. -func (o URLMapDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *bool { - if v == nil { - return nil - } - return &v.StripQuery - }).(pulumi.BoolPtrOutput) -} - -type URLMapHeaderAction struct { - // Headers to add to a matching request prior to forwarding the request to the backendService. - // Structure is documented below. - RequestHeadersToAdds []URLMapHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request prior to - // forwarding the request to the backendService. - RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` - // Headers to add the response prior to sending the response back to the client. - // Structure is documented below. - ResponseHeadersToAdds []URLMapHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response prior to sending the - // response back to the client. - ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` +type SubnetworkIAMBindingCondition struct { + // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. + // + // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the + // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will + // consider it to be an entirely different resource and will treat it as such. + Description *string `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression string `pulumi:"expression"` + // A title for the expression, i.e. a short string describing its purpose. + Title string `pulumi:"title"` } -// URLMapHeaderActionInput is an input type that accepts URLMapHeaderActionArgs and URLMapHeaderActionOutput values. -// You can construct a concrete instance of `URLMapHeaderActionInput` via: +// SubnetworkIAMBindingConditionInput is an input type that accepts SubnetworkIAMBindingConditionArgs and SubnetworkIAMBindingConditionOutput values. +// You can construct a concrete instance of `SubnetworkIAMBindingConditionInput` via: // -// URLMapHeaderActionArgs{...} -type URLMapHeaderActionInput interface { +// SubnetworkIAMBindingConditionArgs{...} +type SubnetworkIAMBindingConditionInput interface { pulumi.Input - ToURLMapHeaderActionOutput() URLMapHeaderActionOutput - ToURLMapHeaderActionOutputWithContext(context.Context) URLMapHeaderActionOutput + ToSubnetworkIAMBindingConditionOutput() SubnetworkIAMBindingConditionOutput + ToSubnetworkIAMBindingConditionOutputWithContext(context.Context) SubnetworkIAMBindingConditionOutput } -type URLMapHeaderActionArgs struct { - // Headers to add to a matching request prior to forwarding the request to the backendService. - // Structure is documented below. - RequestHeadersToAdds URLMapHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` - // A list of header names for headers that need to be removed from the request prior to - // forwarding the request to the backendService. - RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` - // Headers to add the response prior to sending the response back to the client. - // Structure is documented below. - ResponseHeadersToAdds URLMapHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` - // A list of header names for headers that need to be removed from the response prior to sending the - // response back to the client. - ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` +type SubnetworkIAMBindingConditionArgs struct { + // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. + // + // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the + // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will + // consider it to be an entirely different resource and will treat it as such. + Description pulumi.StringPtrInput `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression pulumi.StringInput `pulumi:"expression"` + // A title for the expression, i.e. a short string describing its purpose. + Title pulumi.StringInput `pulumi:"title"` } -func (URLMapHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHeaderAction)(nil)).Elem() +func (SubnetworkIAMBindingConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkIAMBindingCondition)(nil)).Elem() } -func (i URLMapHeaderActionArgs) ToURLMapHeaderActionOutput() URLMapHeaderActionOutput { - return i.ToURLMapHeaderActionOutputWithContext(context.Background()) +func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionOutput() SubnetworkIAMBindingConditionOutput { + return i.ToSubnetworkIAMBindingConditionOutputWithContext(context.Background()) } -func (i URLMapHeaderActionArgs) ToURLMapHeaderActionOutputWithContext(ctx context.Context) URLMapHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionOutput) +func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMBindingConditionOutput) } -func (i URLMapHeaderActionArgs) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { - return i.ToURLMapHeaderActionPtrOutputWithContext(context.Background()) +func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { + return i.ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Background()) } -func (i URLMapHeaderActionArgs) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionOutput).ToURLMapHeaderActionPtrOutputWithContext(ctx) +func (i SubnetworkIAMBindingConditionArgs) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMBindingConditionOutput).ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx) } -// URLMapHeaderActionPtrInput is an input type that accepts URLMapHeaderActionArgs, URLMapHeaderActionPtr and URLMapHeaderActionPtrOutput values. -// You can construct a concrete instance of `URLMapHeaderActionPtrInput` via: +// SubnetworkIAMBindingConditionPtrInput is an input type that accepts SubnetworkIAMBindingConditionArgs, SubnetworkIAMBindingConditionPtr and SubnetworkIAMBindingConditionPtrOutput values. +// You can construct a concrete instance of `SubnetworkIAMBindingConditionPtrInput` via: // -// URLMapHeaderActionArgs{...} +// SubnetworkIAMBindingConditionArgs{...} // // or: // // nil -type URLMapHeaderActionPtrInput interface { +type SubnetworkIAMBindingConditionPtrInput interface { pulumi.Input - ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput - ToURLMapHeaderActionPtrOutputWithContext(context.Context) URLMapHeaderActionPtrOutput + ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput + ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Context) SubnetworkIAMBindingConditionPtrOutput } -type urlmapHeaderActionPtrType URLMapHeaderActionArgs +type subnetworkIAMBindingConditionPtrType SubnetworkIAMBindingConditionArgs -func URLMapHeaderActionPtr(v *URLMapHeaderActionArgs) URLMapHeaderActionPtrInput { - return (*urlmapHeaderActionPtrType)(v) +func SubnetworkIAMBindingConditionPtr(v *SubnetworkIAMBindingConditionArgs) SubnetworkIAMBindingConditionPtrInput { + return (*subnetworkIAMBindingConditionPtrType)(v) } -func (*urlmapHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapHeaderAction)(nil)).Elem() +func (*subnetworkIAMBindingConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetworkIAMBindingCondition)(nil)).Elem() } -func (i *urlmapHeaderActionPtrType) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { - return i.ToURLMapHeaderActionPtrOutputWithContext(context.Background()) +func (i *subnetworkIAMBindingConditionPtrType) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { + return i.ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Background()) } -func (i *urlmapHeaderActionPtrType) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionPtrOutput) +func (i *subnetworkIAMBindingConditionPtrType) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMBindingConditionPtrOutput) } -type URLMapHeaderActionOutput struct{ *pulumi.OutputState } +type SubnetworkIAMBindingConditionOutput struct{ *pulumi.OutputState } -func (URLMapHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHeaderAction)(nil)).Elem() +func (SubnetworkIAMBindingConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkIAMBindingCondition)(nil)).Elem() } -func (o URLMapHeaderActionOutput) ToURLMapHeaderActionOutput() URLMapHeaderActionOutput { +func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionOutput() SubnetworkIAMBindingConditionOutput { return o } -func (o URLMapHeaderActionOutput) ToURLMapHeaderActionOutputWithContext(ctx context.Context) URLMapHeaderActionOutput { +func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionOutput { return o } -func (o URLMapHeaderActionOutput) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { - return o.ToURLMapHeaderActionPtrOutputWithContext(context.Background()) +func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { + return o.ToSubnetworkIAMBindingConditionPtrOutputWithContext(context.Background()) } -func (o URLMapHeaderActionOutput) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapHeaderAction) *URLMapHeaderAction { +func (o SubnetworkIAMBindingConditionOutput) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetworkIAMBindingCondition) *SubnetworkIAMBindingCondition { return &v - }).(URLMapHeaderActionPtrOutput) -} - -// Headers to add to a matching request prior to forwarding the request to the backendService. -// Structure is documented below. -func (o URLMapHeaderActionOutput) RequestHeadersToAdds() URLMapHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapHeaderAction) []URLMapHeaderActionRequestHeadersToAdd { return v.RequestHeadersToAdds }).(URLMapHeaderActionRequestHeadersToAddArrayOutput) + }).(SubnetworkIAMBindingConditionPtrOutput) } -// A list of header names for headers that need to be removed from the request prior to -// forwarding the request to the backendService. -func (o URLMapHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapHeaderAction) []string { return v.RequestHeadersToRemoves }).(pulumi.StringArrayOutput) +// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. +// +// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the +// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will +// consider it to be an entirely different resource and will treat it as such. +func (o SubnetworkIAMBindingConditionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetworkIAMBindingCondition) *string { return v.Description }).(pulumi.StringPtrOutput) } -// Headers to add the response prior to sending the response back to the client. -// Structure is documented below. -func (o URLMapHeaderActionOutput) ResponseHeadersToAdds() URLMapHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapHeaderAction) []URLMapHeaderActionResponseHeadersToAdd { return v.ResponseHeadersToAdds }).(URLMapHeaderActionResponseHeadersToAddArrayOutput) +// Textual representation of an expression in Common Expression Language syntax. +func (o SubnetworkIAMBindingConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v SubnetworkIAMBindingCondition) string { return v.Expression }).(pulumi.StringOutput) } -// A list of header names for headers that need to be removed from the response prior to sending the -// response back to the client. -func (o URLMapHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapHeaderAction) []string { return v.ResponseHeadersToRemoves }).(pulumi.StringArrayOutput) +// A title for the expression, i.e. a short string describing its purpose. +func (o SubnetworkIAMBindingConditionOutput) Title() pulumi.StringOutput { + return o.ApplyT(func(v SubnetworkIAMBindingCondition) string { return v.Title }).(pulumi.StringOutput) } -type URLMapHeaderActionPtrOutput struct{ *pulumi.OutputState } +type SubnetworkIAMBindingConditionPtrOutput struct{ *pulumi.OutputState } -func (URLMapHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapHeaderAction)(nil)).Elem() +func (SubnetworkIAMBindingConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetworkIAMBindingCondition)(nil)).Elem() } -func (o URLMapHeaderActionPtrOutput) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { +func (o SubnetworkIAMBindingConditionPtrOutput) ToSubnetworkIAMBindingConditionPtrOutput() SubnetworkIAMBindingConditionPtrOutput { return o } -func (o URLMapHeaderActionPtrOutput) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { +func (o SubnetworkIAMBindingConditionPtrOutput) ToSubnetworkIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMBindingConditionPtrOutput { return o } -func (o URLMapHeaderActionPtrOutput) Elem() URLMapHeaderActionOutput { - return o.ApplyT(func(v *URLMapHeaderAction) URLMapHeaderAction { +func (o SubnetworkIAMBindingConditionPtrOutput) Elem() SubnetworkIAMBindingConditionOutput { + return o.ApplyT(func(v *SubnetworkIAMBindingCondition) SubnetworkIAMBindingCondition { if v != nil { return *v } - var ret URLMapHeaderAction + var ret SubnetworkIAMBindingCondition return ret - }).(URLMapHeaderActionOutput) -} - -// Headers to add to a matching request prior to forwarding the request to the backendService. -// Structure is documented below. -func (o URLMapHeaderActionPtrOutput) RequestHeadersToAdds() URLMapHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapHeaderAction) []URLMapHeaderActionRequestHeadersToAdd { - if v == nil { - return nil - } - return v.RequestHeadersToAdds - }).(URLMapHeaderActionRequestHeadersToAddArrayOutput) + }).(SubnetworkIAMBindingConditionOutput) } -// A list of header names for headers that need to be removed from the request prior to -// forwarding the request to the backendService. -func (o URLMapHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapHeaderAction) []string { +// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. +// +// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the +// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will +// consider it to be an entirely different resource and will treat it as such. +func (o SubnetworkIAMBindingConditionPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkIAMBindingCondition) *string { if v == nil { return nil } - return v.RequestHeadersToRemoves - }).(pulumi.StringArrayOutput) + return v.Description + }).(pulumi.StringPtrOutput) } -// Headers to add the response prior to sending the response back to the client. -// Structure is documented below. -func (o URLMapHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapHeaderAction) []URLMapHeaderActionResponseHeadersToAdd { +// Textual representation of an expression in Common Expression Language syntax. +func (o SubnetworkIAMBindingConditionPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkIAMBindingCondition) *string { if v == nil { return nil } - return v.ResponseHeadersToAdds - }).(URLMapHeaderActionResponseHeadersToAddArrayOutput) + return &v.Expression + }).(pulumi.StringPtrOutput) } -// A list of header names for headers that need to be removed from the response prior to sending the -// response back to the client. -func (o URLMapHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapHeaderAction) []string { +// A title for the expression, i.e. a short string describing its purpose. +func (o SubnetworkIAMBindingConditionPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkIAMBindingCondition) *string { if v == nil { return nil } - return v.ResponseHeadersToRemoves - }).(pulumi.StringArrayOutput) + return &v.Title + }).(pulumi.StringPtrOutput) } -type URLMapHeaderActionRequestHeadersToAdd struct { - // The name of the header to add. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // 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. - Replace bool `pulumi:"replace"` +type SubnetworkIAMMemberCondition struct { + // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. + // + // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the + // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will + // consider it to be an entirely different resource and will treat it as such. + Description *string `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression string `pulumi:"expression"` + // A title for the expression, i.e. a short string describing its purpose. + Title string `pulumi:"title"` } -// URLMapHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapHeaderActionRequestHeadersToAddArgs and URLMapHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `URLMapHeaderActionRequestHeadersToAddInput` via: +// SubnetworkIAMMemberConditionInput is an input type that accepts SubnetworkIAMMemberConditionArgs and SubnetworkIAMMemberConditionOutput values. +// You can construct a concrete instance of `SubnetworkIAMMemberConditionInput` via: // -// URLMapHeaderActionRequestHeadersToAddArgs{...} -type URLMapHeaderActionRequestHeadersToAddInput interface { +// SubnetworkIAMMemberConditionArgs{...} +type SubnetworkIAMMemberConditionInput interface { pulumi.Input - ToURLMapHeaderActionRequestHeadersToAddOutput() URLMapHeaderActionRequestHeadersToAddOutput - ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapHeaderActionRequestHeadersToAddOutput -} - -type URLMapHeaderActionRequestHeadersToAddArgs struct { - // The name of the header to add. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // 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. - Replace pulumi.BoolInput `pulumi:"replace"` -} - -func (URLMapHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() + ToSubnetworkIAMMemberConditionOutput() SubnetworkIAMMemberConditionOutput + ToSubnetworkIAMMemberConditionOutputWithContext(context.Context) SubnetworkIAMMemberConditionOutput } -func (i URLMapHeaderActionRequestHeadersToAddArgs) ToURLMapHeaderActionRequestHeadersToAddOutput() URLMapHeaderActionRequestHeadersToAddOutput { - return i.ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +type SubnetworkIAMMemberConditionArgs struct { + // An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. + // + // > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the + // identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will + // consider it to be an entirely different resource and will treat it as such. + Description pulumi.StringPtrInput `pulumi:"description"` + // Textual representation of an expression in Common Expression Language syntax. + Expression pulumi.StringInput `pulumi:"expression"` + // A title for the expression, i.e. a short string describing its purpose. + Title pulumi.StringInput `pulumi:"title"` } -func (i URLMapHeaderActionRequestHeadersToAddArgs) ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionRequestHeadersToAddOutput) +func (SubnetworkIAMMemberConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkIAMMemberCondition)(nil)).Elem() } -// URLMapHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapHeaderActionRequestHeadersToAddArray and URLMapHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `URLMapHeaderActionRequestHeadersToAddArrayInput` via: -// -// URLMapHeaderActionRequestHeadersToAddArray{ URLMapHeaderActionRequestHeadersToAddArgs{...} } -type URLMapHeaderActionRequestHeadersToAddArrayInput interface { - pulumi.Input - - ToURLMapHeaderActionRequestHeadersToAddArrayOutput() URLMapHeaderActionRequestHeadersToAddArrayOutput - ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapHeaderActionRequestHeadersToAddArrayOutput +func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionOutput() SubnetworkIAMMemberConditionOutput { + return i.ToSubnetworkIAMMemberConditionOutputWithContext(context.Background()) } -type URLMapHeaderActionRequestHeadersToAddArray []URLMapHeaderActionRequestHeadersToAddInput - -func (URLMapHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMMemberConditionOutput) } -func (i URLMapHeaderActionRequestHeadersToAddArray) ToURLMapHeaderActionRequestHeadersToAddArrayOutput() URLMapHeaderActionRequestHeadersToAddArrayOutput { - return i.ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { + return i.ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Background()) } -func (i URLMapHeaderActionRequestHeadersToAddArray) ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionRequestHeadersToAddArrayOutput) +func (i SubnetworkIAMMemberConditionArgs) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMMemberConditionOutput).ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx) } -type URLMapHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } +// SubnetworkIAMMemberConditionPtrInput is an input type that accepts SubnetworkIAMMemberConditionArgs, SubnetworkIAMMemberConditionPtr and SubnetworkIAMMemberConditionPtrOutput values. +// You can construct a concrete instance of `SubnetworkIAMMemberConditionPtrInput` via: +// +// SubnetworkIAMMemberConditionArgs{...} +// +// or: +// +// nil +type SubnetworkIAMMemberConditionPtrInput interface { + pulumi.Input -func (URLMapHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() + ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput + ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Context) SubnetworkIAMMemberConditionPtrOutput } -func (o URLMapHeaderActionRequestHeadersToAddOutput) ToURLMapHeaderActionRequestHeadersToAddOutput() URLMapHeaderActionRequestHeadersToAddOutput { - return o -} +type subnetworkIAMMemberConditionPtrType SubnetworkIAMMemberConditionArgs -func (o URLMapHeaderActionRequestHeadersToAddOutput) ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddOutput { - return o +func SubnetworkIAMMemberConditionPtr(v *SubnetworkIAMMemberConditionArgs) SubnetworkIAMMemberConditionPtrInput { + return (*subnetworkIAMMemberConditionPtrType)(v) } -// The name of the header to add. -func (o URLMapHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v URLMapHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) +func (*subnetworkIAMMemberConditionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetworkIAMMemberCondition)(nil)).Elem() } -// The value of the header to add. -func (o URLMapHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v URLMapHeaderActionRequestHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) +func (i *subnetworkIAMMemberConditionPtrType) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { + return i.ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Background()) } -// 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. -func (o URLMapHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v URLMapHeaderActionRequestHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) +func (i *subnetworkIAMMemberConditionPtrType) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkIAMMemberConditionPtrOutput) } -type URLMapHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } +type SubnetworkIAMMemberConditionOutput struct{ *pulumi.OutputState } -func (URLMapHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (SubnetworkIAMMemberConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkIAMMemberCondition)(nil)).Elem() } -func (o URLMapHeaderActionRequestHeadersToAddArrayOutput) ToURLMapHeaderActionRequestHeadersToAddArrayOutput() URLMapHeaderActionRequestHeadersToAddArrayOutput { +func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionOutput() SubnetworkIAMMemberConditionOutput { return o } -func (o URLMapHeaderActionRequestHeadersToAddArrayOutput) ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddArrayOutput { +func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionOutput { return o } -func (o URLMapHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapHeaderActionRequestHeadersToAdd { - return vs[0].([]URLMapHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(URLMapHeaderActionRequestHeadersToAddOutput) +func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { + return o.ToSubnetworkIAMMemberConditionPtrOutputWithContext(context.Background()) } -type URLMapHeaderActionResponseHeadersToAdd struct { - // The name of the header to add. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // 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. - Replace bool `pulumi:"replace"` +func (o SubnetworkIAMMemberConditionOutput) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetworkIAMMemberCondition) *SubnetworkIAMMemberCondition { + return &v + }).(SubnetworkIAMMemberConditionPtrOutput) } -// URLMapHeaderActionResponseHeadersToAddInput is an input type that accepts URLMapHeaderActionResponseHeadersToAddArgs and URLMapHeaderActionResponseHeadersToAddOutput values. -// You can construct a concrete instance of `URLMapHeaderActionResponseHeadersToAddInput` via: +// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. // -// URLMapHeaderActionResponseHeadersToAddArgs{...} -type URLMapHeaderActionResponseHeadersToAddInput interface { - pulumi.Input - - ToURLMapHeaderActionResponseHeadersToAddOutput() URLMapHeaderActionResponseHeadersToAddOutput - ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(context.Context) URLMapHeaderActionResponseHeadersToAddOutput +// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the +// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will +// consider it to be an entirely different resource and will treat it as such. +func (o SubnetworkIAMMemberConditionOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetworkIAMMemberCondition) *string { return v.Description }).(pulumi.StringPtrOutput) } -type URLMapHeaderActionResponseHeadersToAddArgs struct { - // The name of the header to add. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // 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. - Replace pulumi.BoolInput `pulumi:"replace"` +// Textual representation of an expression in Common Expression Language syntax. +func (o SubnetworkIAMMemberConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v SubnetworkIAMMemberCondition) string { return v.Expression }).(pulumi.StringOutput) } -func (URLMapHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +// A title for the expression, i.e. a short string describing its purpose. +func (o SubnetworkIAMMemberConditionOutput) Title() pulumi.StringOutput { + return o.ApplyT(func(v SubnetworkIAMMemberCondition) string { return v.Title }).(pulumi.StringOutput) } -func (i URLMapHeaderActionResponseHeadersToAddArgs) ToURLMapHeaderActionResponseHeadersToAddOutput() URLMapHeaderActionResponseHeadersToAddOutput { - return i.ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) -} +type SubnetworkIAMMemberConditionPtrOutput struct{ *pulumi.OutputState } -func (i URLMapHeaderActionResponseHeadersToAddArgs) ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionResponseHeadersToAddOutput) +func (SubnetworkIAMMemberConditionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetworkIAMMemberCondition)(nil)).Elem() } -// URLMapHeaderActionResponseHeadersToAddArrayInput is an input type that accepts URLMapHeaderActionResponseHeadersToAddArray and URLMapHeaderActionResponseHeadersToAddArrayOutput values. -// You can construct a concrete instance of `URLMapHeaderActionResponseHeadersToAddArrayInput` via: -// -// URLMapHeaderActionResponseHeadersToAddArray{ URLMapHeaderActionResponseHeadersToAddArgs{...} } -type URLMapHeaderActionResponseHeadersToAddArrayInput interface { - pulumi.Input - - ToURLMapHeaderActionResponseHeadersToAddArrayOutput() URLMapHeaderActionResponseHeadersToAddArrayOutput - ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) URLMapHeaderActionResponseHeadersToAddArrayOutput +func (o SubnetworkIAMMemberConditionPtrOutput) ToSubnetworkIAMMemberConditionPtrOutput() SubnetworkIAMMemberConditionPtrOutput { + return o } -type URLMapHeaderActionResponseHeadersToAddArray []URLMapHeaderActionResponseHeadersToAddInput - -func (URLMapHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (o SubnetworkIAMMemberConditionPtrOutput) ToSubnetworkIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubnetworkIAMMemberConditionPtrOutput { + return o } -func (i URLMapHeaderActionResponseHeadersToAddArray) ToURLMapHeaderActionResponseHeadersToAddArrayOutput() URLMapHeaderActionResponseHeadersToAddArrayOutput { - return i.ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +func (o SubnetworkIAMMemberConditionPtrOutput) Elem() SubnetworkIAMMemberConditionOutput { + return o.ApplyT(func(v *SubnetworkIAMMemberCondition) SubnetworkIAMMemberCondition { + if v != nil { + return *v + } + var ret SubnetworkIAMMemberCondition + return ret + }).(SubnetworkIAMMemberConditionOutput) } -func (i URLMapHeaderActionResponseHeadersToAddArray) ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionResponseHeadersToAddArrayOutput) +// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI. +// +// > **Warning:** This provider considers the `role` and condition contents (`title`+`description`+`expression`) as the +// identifier for the binding. This means that if any part of the condition is changed out-of-band, the provider will +// consider it to be an entirely different resource and will treat it as such. +func (o SubnetworkIAMMemberConditionPtrOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkIAMMemberCondition) *string { + if v == nil { + return nil + } + return v.Description + }).(pulumi.StringPtrOutput) } -type URLMapHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } - -func (URLMapHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +// Textual representation of an expression in Common Expression Language syntax. +func (o SubnetworkIAMMemberConditionPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkIAMMemberCondition) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) } -func (o URLMapHeaderActionResponseHeadersToAddOutput) ToURLMapHeaderActionResponseHeadersToAddOutput() URLMapHeaderActionResponseHeadersToAddOutput { - return o +// A title for the expression, i.e. a short string describing its purpose. +func (o SubnetworkIAMMemberConditionPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkIAMMemberCondition) *string { + if v == nil { + return nil + } + return &v.Title + }).(pulumi.StringPtrOutput) } -func (o URLMapHeaderActionResponseHeadersToAddOutput) ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddOutput { - return o +type SubnetworkLogConfig struct { + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // Toggles the aggregation interval for collecting flow logs. Increasing the + // interval time will reduce the amount of generated flow logs for long + // lasting connections. Default is an interval of 5 seconds per connection. + // Default value is `INTERVAL_5_SEC`. + // Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. + AggregationInterval *string `pulumi:"aggregationInterval"` + // Export filter used to define which VPC flow logs should be logged, as as CEL expression. See + // https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. + // The default value is 'true', which evaluates to include everything. + FilterExpr *string `pulumi:"filterExpr"` + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // The value of the field must be in [0, 1]. Set the sampling rate of VPC + // flow logs within the subnetwork where 1.0 means all collected logs are + // reported and 0.0 means no logs are reported. Default is 0.5 which means + // half of all collected logs are reported. + FlowSampling *float64 `pulumi:"flowSampling"` + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // Configures whether metadata fields should be added to the reported VPC + // flow logs. + // Default value is `INCLUDE_ALL_METADATA`. + // Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. + Metadata *string `pulumi:"metadata"` + // List of metadata fields that should be added to reported logs. + // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. + MetadataFields []string `pulumi:"metadataFields"` } -// The name of the header to add. -func (o URLMapHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v URLMapHeaderActionResponseHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) -} +// SubnetworkLogConfigInput is an input type that accepts SubnetworkLogConfigArgs and SubnetworkLogConfigOutput values. +// You can construct a concrete instance of `SubnetworkLogConfigInput` via: +// +// SubnetworkLogConfigArgs{...} +type SubnetworkLogConfigInput interface { + pulumi.Input -// The value of the header to add. -func (o URLMapHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v URLMapHeaderActionResponseHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) + ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput + ToSubnetworkLogConfigOutputWithContext(context.Context) SubnetworkLogConfigOutput } -// 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. -func (o URLMapHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v URLMapHeaderActionResponseHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) +type SubnetworkLogConfigArgs struct { + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // Toggles the aggregation interval for collecting flow logs. Increasing the + // interval time will reduce the amount of generated flow logs for long + // lasting connections. Default is an interval of 5 seconds per connection. + // Default value is `INTERVAL_5_SEC`. + // Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. + AggregationInterval pulumi.StringPtrInput `pulumi:"aggregationInterval"` + // Export filter used to define which VPC flow logs should be logged, as as CEL expression. See + // https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. + // The default value is 'true', which evaluates to include everything. + FilterExpr pulumi.StringPtrInput `pulumi:"filterExpr"` + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // The value of the field must be in [0, 1]. Set the sampling rate of VPC + // flow logs within the subnetwork where 1.0 means all collected logs are + // reported and 0.0 means no logs are reported. Default is 0.5 which means + // half of all collected logs are reported. + FlowSampling pulumi.Float64PtrInput `pulumi:"flowSampling"` + // Can only be specified if VPC flow logging for this subnetwork is enabled. + // Configures whether metadata fields should be added to the reported VPC + // flow logs. + // Default value is `INCLUDE_ALL_METADATA`. + // Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. + Metadata pulumi.StringPtrInput `pulumi:"metadata"` + // List of metadata fields that should be added to reported logs. + // Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. + MetadataFields pulumi.StringArrayInput `pulumi:"metadataFields"` } -type URLMapHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } - -func (URLMapHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (SubnetworkLogConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkLogConfig)(nil)).Elem() } -func (o URLMapHeaderActionResponseHeadersToAddArrayOutput) ToURLMapHeaderActionResponseHeadersToAddArrayOutput() URLMapHeaderActionResponseHeadersToAddArrayOutput { - return o +func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput { + return i.ToSubnetworkLogConfigOutputWithContext(context.Background()) } -func (o URLMapHeaderActionResponseHeadersToAddArrayOutput) ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddArrayOutput { - return o +func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigOutputWithContext(ctx context.Context) SubnetworkLogConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigOutput) } -func (o URLMapHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapHeaderActionResponseHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapHeaderActionResponseHeadersToAdd { - return vs[0].([]URLMapHeaderActionResponseHeadersToAdd)[vs[1].(int)] - }).(URLMapHeaderActionResponseHeadersToAddOutput) +func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { + return i.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) } -type URLMapHostRule struct { - // An optional description of this resource. Provide this property when you create - // the resource. - Description *string `pulumi:"description"` - // The list of host patterns to match. They must be valid hostnames, except * will - // match any string of ([a-z0-9-.]*). In that case, * must be the first character - // and must be followed in the pattern by either - or .. - Hosts []string `pulumi:"hosts"` - // The name of the PathMatcher to use to match the path portion of the URL if the - // hostRule matches the URL's host portion. - PathMatcher string `pulumi:"pathMatcher"` +func (i SubnetworkLogConfigArgs) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigOutput).ToSubnetworkLogConfigPtrOutputWithContext(ctx) } -// URLMapHostRuleInput is an input type that accepts URLMapHostRuleArgs and URLMapHostRuleOutput values. -// You can construct a concrete instance of `URLMapHostRuleInput` via: +// SubnetworkLogConfigPtrInput is an input type that accepts SubnetworkLogConfigArgs, SubnetworkLogConfigPtr and SubnetworkLogConfigPtrOutput values. +// You can construct a concrete instance of `SubnetworkLogConfigPtrInput` via: // -// URLMapHostRuleArgs{...} -type URLMapHostRuleInput interface { +// SubnetworkLogConfigArgs{...} +// +// or: +// +// nil +type SubnetworkLogConfigPtrInput interface { pulumi.Input - ToURLMapHostRuleOutput() URLMapHostRuleOutput - ToURLMapHostRuleOutputWithContext(context.Context) URLMapHostRuleOutput + ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput + ToSubnetworkLogConfigPtrOutputWithContext(context.Context) SubnetworkLogConfigPtrOutput } -type URLMapHostRuleArgs struct { - // An optional description of this resource. Provide this property when you create - // the resource. - Description pulumi.StringPtrInput `pulumi:"description"` - // The list of host patterns to match. They must be valid hostnames, except * will - // match any string of ([a-z0-9-.]*). In that case, * must be the first character - // and must be followed in the pattern by either - or .. - Hosts pulumi.StringArrayInput `pulumi:"hosts"` - // The name of the PathMatcher to use to match the path portion of the URL if the - // hostRule matches the URL's host portion. - PathMatcher pulumi.StringInput `pulumi:"pathMatcher"` -} +type subnetworkLogConfigPtrType SubnetworkLogConfigArgs -func (URLMapHostRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHostRule)(nil)).Elem() +func SubnetworkLogConfigPtr(v *SubnetworkLogConfigArgs) SubnetworkLogConfigPtrInput { + return (*subnetworkLogConfigPtrType)(v) } -func (i URLMapHostRuleArgs) ToURLMapHostRuleOutput() URLMapHostRuleOutput { - return i.ToURLMapHostRuleOutputWithContext(context.Background()) +func (*subnetworkLogConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetworkLogConfig)(nil)).Elem() } -func (i URLMapHostRuleArgs) ToURLMapHostRuleOutputWithContext(ctx context.Context) URLMapHostRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHostRuleOutput) +func (i *subnetworkLogConfigPtrType) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { + return i.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) } -// URLMapHostRuleArrayInput is an input type that accepts URLMapHostRuleArray and URLMapHostRuleArrayOutput values. -// You can construct a concrete instance of `URLMapHostRuleArrayInput` via: -// -// URLMapHostRuleArray{ URLMapHostRuleArgs{...} } -type URLMapHostRuleArrayInput interface { - pulumi.Input - - ToURLMapHostRuleArrayOutput() URLMapHostRuleArrayOutput - ToURLMapHostRuleArrayOutputWithContext(context.Context) URLMapHostRuleArrayOutput +func (i *subnetworkLogConfigPtrType) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkLogConfigPtrOutput) } -type URLMapHostRuleArray []URLMapHostRuleInput +type SubnetworkLogConfigOutput struct{ *pulumi.OutputState } -func (URLMapHostRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapHostRule)(nil)).Elem() +func (SubnetworkLogConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkLogConfig)(nil)).Elem() } -func (i URLMapHostRuleArray) ToURLMapHostRuleArrayOutput() URLMapHostRuleArrayOutput { - return i.ToURLMapHostRuleArrayOutputWithContext(context.Background()) +func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigOutput() SubnetworkLogConfigOutput { + return o } -func (i URLMapHostRuleArray) ToURLMapHostRuleArrayOutputWithContext(ctx context.Context) URLMapHostRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapHostRuleArrayOutput) +func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigOutputWithContext(ctx context.Context) SubnetworkLogConfigOutput { + return o } -type URLMapHostRuleOutput struct{ *pulumi.OutputState } +func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { + return o.ToSubnetworkLogConfigPtrOutputWithContext(context.Background()) +} -func (URLMapHostRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapHostRule)(nil)).Elem() +func (o SubnetworkLogConfigOutput) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SubnetworkLogConfig) *SubnetworkLogConfig { + return &v + }).(SubnetworkLogConfigPtrOutput) } -func (o URLMapHostRuleOutput) ToURLMapHostRuleOutput() URLMapHostRuleOutput { - return o +// Can only be specified if VPC flow logging for this subnetwork is enabled. +// Toggles the aggregation interval for collecting flow logs. Increasing the +// interval time will reduce the amount of generated flow logs for long +// lasting connections. Default is an interval of 5 seconds per connection. +// Default value is `INTERVAL_5_SEC`. +// Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. +func (o SubnetworkLogConfigOutput) AggregationInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetworkLogConfig) *string { return v.AggregationInterval }).(pulumi.StringPtrOutput) } -func (o URLMapHostRuleOutput) ToURLMapHostRuleOutputWithContext(ctx context.Context) URLMapHostRuleOutput { - return o +// Export filter used to define which VPC flow logs should be logged, as as CEL expression. See +// https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. +// The default value is 'true', which evaluates to include everything. +func (o SubnetworkLogConfigOutput) FilterExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetworkLogConfig) *string { return v.FilterExpr }).(pulumi.StringPtrOutput) } -// An optional description of this resource. Provide this property when you create -// the resource. -func (o URLMapHostRuleOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapHostRule) *string { return v.Description }).(pulumi.StringPtrOutput) +// Can only be specified if VPC flow logging for this subnetwork is enabled. +// The value of the field must be in [0, 1]. Set the sampling rate of VPC +// flow logs within the subnetwork where 1.0 means all collected logs are +// reported and 0.0 means no logs are reported. Default is 0.5 which means +// half of all collected logs are reported. +func (o SubnetworkLogConfigOutput) FlowSampling() pulumi.Float64PtrOutput { + return o.ApplyT(func(v SubnetworkLogConfig) *float64 { return v.FlowSampling }).(pulumi.Float64PtrOutput) } -// The list of host patterns to match. They must be valid hostnames, except * will -// match any string of ([a-z0-9-.]*). In that case, * must be the first character -// and must be followed in the pattern by either - or .. -func (o URLMapHostRuleOutput) Hosts() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapHostRule) []string { return v.Hosts }).(pulumi.StringArrayOutput) +// Can only be specified if VPC flow logging for this subnetwork is enabled. +// Configures whether metadata fields should be added to the reported VPC +// flow logs. +// Default value is `INCLUDE_ALL_METADATA`. +// Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. +func (o SubnetworkLogConfigOutput) Metadata() pulumi.StringPtrOutput { + return o.ApplyT(func(v SubnetworkLogConfig) *string { return v.Metadata }).(pulumi.StringPtrOutput) } -// The name of the PathMatcher to use to match the path portion of the URL if the -// hostRule matches the URL's host portion. -func (o URLMapHostRuleOutput) PathMatcher() pulumi.StringOutput { - return o.ApplyT(func(v URLMapHostRule) string { return v.PathMatcher }).(pulumi.StringOutput) +// List of metadata fields that should be added to reported logs. +// Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. +func (o SubnetworkLogConfigOutput) MetadataFields() pulumi.StringArrayOutput { + return o.ApplyT(func(v SubnetworkLogConfig) []string { return v.MetadataFields }).(pulumi.StringArrayOutput) } -type URLMapHostRuleArrayOutput struct{ *pulumi.OutputState } +type SubnetworkLogConfigPtrOutput struct{ *pulumi.OutputState } -func (URLMapHostRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapHostRule)(nil)).Elem() +func (SubnetworkLogConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SubnetworkLogConfig)(nil)).Elem() } -func (o URLMapHostRuleArrayOutput) ToURLMapHostRuleArrayOutput() URLMapHostRuleArrayOutput { +func (o SubnetworkLogConfigPtrOutput) ToSubnetworkLogConfigPtrOutput() SubnetworkLogConfigPtrOutput { return o } -func (o URLMapHostRuleArrayOutput) ToURLMapHostRuleArrayOutputWithContext(ctx context.Context) URLMapHostRuleArrayOutput { +func (o SubnetworkLogConfigPtrOutput) ToSubnetworkLogConfigPtrOutputWithContext(ctx context.Context) SubnetworkLogConfigPtrOutput { return o } -func (o URLMapHostRuleArrayOutput) Index(i pulumi.IntInput) URLMapHostRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapHostRule { - return vs[0].([]URLMapHostRule)[vs[1].(int)] - }).(URLMapHostRuleOutput) +func (o SubnetworkLogConfigPtrOutput) Elem() SubnetworkLogConfigOutput { + return o.ApplyT(func(v *SubnetworkLogConfig) SubnetworkLogConfig { + if v != nil { + return *v + } + var ret SubnetworkLogConfig + return ret + }).(SubnetworkLogConfigOutput) } -type URLMapPathMatcher struct { - // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. - // This 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. - // For example, consider a UrlMap with the following configuration: - // UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors - // A RouteRule for /coming_soon/ is configured for the error code 404. - // If 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. - // When 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. - // defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. - // Structure is documented below. - DefaultCustomErrorResponsePolicy *URLMapPathMatcherDefaultCustomErrorResponsePolicy `pulumi:"defaultCustomErrorResponsePolicy"` - // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs - // advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request - // to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. - // Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. - // Only one of defaultRouteAction or defaultUrlRedirect must be set. - // Structure is documented below. - DefaultRouteAction *URLMapPathMatcherDefaultRouteAction `pulumi:"defaultRouteAction"` - // The backend service or backend bucket to use when none of the given paths match. - DefaultService *string `pulumi:"defaultService"` - // When none of the specified hostRules match, the request is redirected to a URL specified - // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or - // defaultRouteAction must not be set. - // Structure is documented below. - DefaultUrlRedirect *URLMapPathMatcherDefaultUrlRedirect `pulumi:"defaultUrlRedirect"` - // An optional description of this resource. Provide this property when you create - // the resource. - Description *string `pulumi:"description"` - // Specifies changes to request and response headers that need to take effect for - // the selected backendService. HeaderAction specified here are applied after the - // matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap - // Structure is documented below. - HeaderAction *URLMapPathMatcherHeaderAction `pulumi:"headerAction"` - // The name to which this PathMatcher is referred by the HostRule. - Name string `pulumi:"name"` - // The list of path rules. Use this list instead of routeRules when routing based - // on simple path matching is all that's required. The order by which path rules - // are specified does not matter. Matches are always done on the longest-path-first - // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* - // irrespective of the order in which those paths appear in this list. Within a - // given pathMatcher, only one of pathRules or routeRules must be set. - // Structure is documented below. - PathRules []URLMapPathMatcherPathRule `pulumi:"pathRules"` - // The list of ordered HTTP route rules. Use this list instead of pathRules when - // advanced route matching and routing actions are desired. The order of specifying - // routeRules matters: the first rule that matches will cause its specified routing - // action to take effect. Within a given pathMatcher, only one of pathRules or - // routeRules must be set. routeRules are not supported in UrlMaps intended for - // External load balancers. - // Structure is documented below. - RouteRules []URLMapPathMatcherRouteRule `pulumi:"routeRules"` +// Can only be specified if VPC flow logging for this subnetwork is enabled. +// Toggles the aggregation interval for collecting flow logs. Increasing the +// interval time will reduce the amount of generated flow logs for long +// lasting connections. Default is an interval of 5 seconds per connection. +// Default value is `INTERVAL_5_SEC`. +// Possible values are: `INTERVAL_5_SEC`, `INTERVAL_30_SEC`, `INTERVAL_1_MIN`, `INTERVAL_5_MIN`, `INTERVAL_10_MIN`, `INTERVAL_15_MIN`. +func (o SubnetworkLogConfigPtrOutput) AggregationInterval() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkLogConfig) *string { + if v == nil { + return nil + } + return v.AggregationInterval + }).(pulumi.StringPtrOutput) } -// URLMapPathMatcherInput is an input type that accepts URLMapPathMatcherArgs and URLMapPathMatcherOutput values. -// You can construct a concrete instance of `URLMapPathMatcherInput` via: -// -// URLMapPathMatcherArgs{...} -type URLMapPathMatcherInput interface { - pulumi.Input - - ToURLMapPathMatcherOutput() URLMapPathMatcherOutput - ToURLMapPathMatcherOutputWithContext(context.Context) URLMapPathMatcherOutput +// Export filter used to define which VPC flow logs should be logged, as as CEL expression. See +// https://cloud.google.com/vpc/docs/flow-logs#filtering for details on how to format this field. +// The default value is 'true', which evaluates to include everything. +func (o SubnetworkLogConfigPtrOutput) FilterExpr() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkLogConfig) *string { + if v == nil { + return nil + } + return v.FilterExpr + }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherArgs struct { - // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. - // This 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. - // For example, consider a UrlMap with the following configuration: - // UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors - // A RouteRule for /coming_soon/ is configured for the error code 404. - // If 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. - // When 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. - // defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. - // Structure is documented below. - DefaultCustomErrorResponsePolicy URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput `pulumi:"defaultCustomErrorResponsePolicy"` - // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs - // advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request - // to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. - // Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. - // Only one of defaultRouteAction or defaultUrlRedirect must be set. - // Structure is documented below. - DefaultRouteAction URLMapPathMatcherDefaultRouteActionPtrInput `pulumi:"defaultRouteAction"` - // The backend service or backend bucket to use when none of the given paths match. - DefaultService pulumi.StringPtrInput `pulumi:"defaultService"` - // When none of the specified hostRules match, the request is redirected to a URL specified - // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or - // defaultRouteAction must not be set. - // Structure is documented below. - DefaultUrlRedirect URLMapPathMatcherDefaultUrlRedirectPtrInput `pulumi:"defaultUrlRedirect"` - // An optional description of this resource. Provide this property when you create - // the resource. - Description pulumi.StringPtrInput `pulumi:"description"` - // Specifies changes to request and response headers that need to take effect for - // the selected backendService. HeaderAction specified here are applied after the - // matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap - // Structure is documented below. - HeaderAction URLMapPathMatcherHeaderActionPtrInput `pulumi:"headerAction"` - // The name to which this PathMatcher is referred by the HostRule. - Name pulumi.StringInput `pulumi:"name"` - // The list of path rules. Use this list instead of routeRules when routing based - // on simple path matching is all that's required. The order by which path rules - // are specified does not matter. Matches are always done on the longest-path-first - // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* - // irrespective of the order in which those paths appear in this list. Within a - // given pathMatcher, only one of pathRules or routeRules must be set. - // Structure is documented below. - PathRules URLMapPathMatcherPathRuleArrayInput `pulumi:"pathRules"` - // The list of ordered HTTP route rules. Use this list instead of pathRules when - // advanced route matching and routing actions are desired. The order of specifying - // routeRules matters: the first rule that matches will cause its specified routing - // action to take effect. Within a given pathMatcher, only one of pathRules or - // routeRules must be set. routeRules are not supported in UrlMaps intended for - // External load balancers. - // Structure is documented below. - RouteRules URLMapPathMatcherRouteRuleArrayInput `pulumi:"routeRules"` +// Can only be specified if VPC flow logging for this subnetwork is enabled. +// The value of the field must be in [0, 1]. Set the sampling rate of VPC +// flow logs within the subnetwork where 1.0 means all collected logs are +// reported and 0.0 means no logs are reported. Default is 0.5 which means +// half of all collected logs are reported. +func (o SubnetworkLogConfigPtrOutput) FlowSampling() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *SubnetworkLogConfig) *float64 { + if v == nil { + return nil + } + return v.FlowSampling + }).(pulumi.Float64PtrOutput) } -func (URLMapPathMatcherArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcher)(nil)).Elem() +// Can only be specified if VPC flow logging for this subnetwork is enabled. +// Configures whether metadata fields should be added to the reported VPC +// flow logs. +// Default value is `INCLUDE_ALL_METADATA`. +// Possible values are: `EXCLUDE_ALL_METADATA`, `INCLUDE_ALL_METADATA`, `CUSTOM_METADATA`. +func (o SubnetworkLogConfigPtrOutput) Metadata() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SubnetworkLogConfig) *string { + if v == nil { + return nil + } + return v.Metadata + }).(pulumi.StringPtrOutput) } -func (i URLMapPathMatcherArgs) ToURLMapPathMatcherOutput() URLMapPathMatcherOutput { - return i.ToURLMapPathMatcherOutputWithContext(context.Background()) +// List of metadata fields that should be added to reported logs. +// Can only be specified if VPC flow logs for this subnetwork is enabled and "metadata" is set to CUSTOM_METADATA. +func (o SubnetworkLogConfigPtrOutput) MetadataFields() pulumi.StringArrayOutput { + return o.ApplyT(func(v *SubnetworkLogConfig) []string { + if v == nil { + return nil + } + return v.MetadataFields + }).(pulumi.StringArrayOutput) } -func (i URLMapPathMatcherArgs) ToURLMapPathMatcherOutputWithContext(ctx context.Context) URLMapPathMatcherOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherOutput) +type SubnetworkSecondaryIpRange struct { + // The range of IP addresses belonging to this subnetwork secondary + // range. Provide this property when you create the subnetwork. + // Ranges must be unique and non-overlapping with all primary and + // secondary IP ranges within a network. Only IPv4 is supported. + IpCidrRange string `pulumi:"ipCidrRange"` + // The name associated with this subnetwork secondary range, used + // when adding an alias IP range to a VM instance. The name must + // be 1-63 characters long, and comply with RFC1035. The name + // must be unique within the subnetwork. + RangeName string `pulumi:"rangeName"` } -// URLMapPathMatcherArrayInput is an input type that accepts URLMapPathMatcherArray and URLMapPathMatcherArrayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherArrayInput` via: +// SubnetworkSecondaryIpRangeInput is an input type that accepts SubnetworkSecondaryIpRangeArgs and SubnetworkSecondaryIpRangeOutput values. +// You can construct a concrete instance of `SubnetworkSecondaryIpRangeInput` via: // -// URLMapPathMatcherArray{ URLMapPathMatcherArgs{...} } -type URLMapPathMatcherArrayInput interface { +// SubnetworkSecondaryIpRangeArgs{...} +type SubnetworkSecondaryIpRangeInput interface { pulumi.Input - ToURLMapPathMatcherArrayOutput() URLMapPathMatcherArrayOutput - ToURLMapPathMatcherArrayOutputWithContext(context.Context) URLMapPathMatcherArrayOutput + ToSubnetworkSecondaryIpRangeOutput() SubnetworkSecondaryIpRangeOutput + ToSubnetworkSecondaryIpRangeOutputWithContext(context.Context) SubnetworkSecondaryIpRangeOutput } -type URLMapPathMatcherArray []URLMapPathMatcherInput - -func (URLMapPathMatcherArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcher)(nil)).Elem() +type SubnetworkSecondaryIpRangeArgs struct { + // The range of IP addresses belonging to this subnetwork secondary + // range. Provide this property when you create the subnetwork. + // Ranges must be unique and non-overlapping with all primary and + // secondary IP ranges within a network. Only IPv4 is supported. + IpCidrRange pulumi.StringInput `pulumi:"ipCidrRange"` + // The name associated with this subnetwork secondary range, used + // when adding an alias IP range to a VM instance. The name must + // be 1-63 characters long, and comply with RFC1035. The name + // must be unique within the subnetwork. + RangeName pulumi.StringInput `pulumi:"rangeName"` } -func (i URLMapPathMatcherArray) ToURLMapPathMatcherArrayOutput() URLMapPathMatcherArrayOutput { - return i.ToURLMapPathMatcherArrayOutputWithContext(context.Background()) +func (SubnetworkSecondaryIpRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkSecondaryIpRange)(nil)).Elem() } -func (i URLMapPathMatcherArray) ToURLMapPathMatcherArrayOutputWithContext(ctx context.Context) URLMapPathMatcherArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherArrayOutput) +func (i SubnetworkSecondaryIpRangeArgs) ToSubnetworkSecondaryIpRangeOutput() SubnetworkSecondaryIpRangeOutput { + return i.ToSubnetworkSecondaryIpRangeOutputWithContext(context.Background()) } -type URLMapPathMatcherOutput struct{ *pulumi.OutputState } - -func (URLMapPathMatcherOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcher)(nil)).Elem() +func (i SubnetworkSecondaryIpRangeArgs) ToSubnetworkSecondaryIpRangeOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkSecondaryIpRangeOutput) } -func (o URLMapPathMatcherOutput) ToURLMapPathMatcherOutput() URLMapPathMatcherOutput { - return o -} +// SubnetworkSecondaryIpRangeArrayInput is an input type that accepts SubnetworkSecondaryIpRangeArray and SubnetworkSecondaryIpRangeArrayOutput values. +// You can construct a concrete instance of `SubnetworkSecondaryIpRangeArrayInput` via: +// +// SubnetworkSecondaryIpRangeArray{ SubnetworkSecondaryIpRangeArgs{...} } +type SubnetworkSecondaryIpRangeArrayInput interface { + pulumi.Input -func (o URLMapPathMatcherOutput) ToURLMapPathMatcherOutputWithContext(ctx context.Context) URLMapPathMatcherOutput { - return o + ToSubnetworkSecondaryIpRangeArrayOutput() SubnetworkSecondaryIpRangeArrayOutput + ToSubnetworkSecondaryIpRangeArrayOutputWithContext(context.Context) SubnetworkSecondaryIpRangeArrayOutput } -// defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. -// This 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. -// For example, consider a UrlMap with the following configuration: -// UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors -// A RouteRule for /coming_soon/ is configured for the error code 404. -// If 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. -// When 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. -// defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. -// Structure is documented below. -func (o URLMapPathMatcherOutput) DefaultCustomErrorResponsePolicy() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { - return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherDefaultCustomErrorResponsePolicy { - return v.DefaultCustomErrorResponsePolicy - }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) -} +type SubnetworkSecondaryIpRangeArray []SubnetworkSecondaryIpRangeInput -// defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs -// advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request -// to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. -// Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. -// Only one of defaultRouteAction or defaultUrlRedirect must be set. -// Structure is documented below. -func (o URLMapPathMatcherOutput) DefaultRouteAction() URLMapPathMatcherDefaultRouteActionPtrOutput { - return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherDefaultRouteAction { return v.DefaultRouteAction }).(URLMapPathMatcherDefaultRouteActionPtrOutput) +func (SubnetworkSecondaryIpRangeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubnetworkSecondaryIpRange)(nil)).Elem() } -// The backend service or backend bucket to use when none of the given paths match. -func (o URLMapPathMatcherOutput) DefaultService() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcher) *string { return v.DefaultService }).(pulumi.StringPtrOutput) +func (i SubnetworkSecondaryIpRangeArray) ToSubnetworkSecondaryIpRangeArrayOutput() SubnetworkSecondaryIpRangeArrayOutput { + return i.ToSubnetworkSecondaryIpRangeArrayOutputWithContext(context.Background()) } -// When none of the specified hostRules match, the request is redirected to a URL specified -// by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or -// defaultRouteAction must not be set. -// Structure is documented below. -func (o URLMapPathMatcherOutput) DefaultUrlRedirect() URLMapPathMatcherDefaultUrlRedirectPtrOutput { - return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherDefaultUrlRedirect { return v.DefaultUrlRedirect }).(URLMapPathMatcherDefaultUrlRedirectPtrOutput) +func (i SubnetworkSecondaryIpRangeArray) ToSubnetworkSecondaryIpRangeArrayOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SubnetworkSecondaryIpRangeArrayOutput) } -// An optional description of this resource. Provide this property when you create -// the resource. -func (o URLMapPathMatcherOutput) Description() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcher) *string { return v.Description }).(pulumi.StringPtrOutput) +type SubnetworkSecondaryIpRangeOutput struct{ *pulumi.OutputState } + +func (SubnetworkSecondaryIpRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SubnetworkSecondaryIpRange)(nil)).Elem() } -// Specifies changes to request and response headers that need to take effect for -// the selected backendService. HeaderAction specified here are applied after the -// matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap -// Structure is documented below. -func (o URLMapPathMatcherOutput) HeaderAction() URLMapPathMatcherHeaderActionPtrOutput { - return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherHeaderAction { return v.HeaderAction }).(URLMapPathMatcherHeaderActionPtrOutput) +func (o SubnetworkSecondaryIpRangeOutput) ToSubnetworkSecondaryIpRangeOutput() SubnetworkSecondaryIpRangeOutput { + return o } -// The name to which this PathMatcher is referred by the HostRule. -func (o URLMapPathMatcherOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v URLMapPathMatcher) string { return v.Name }).(pulumi.StringOutput) +func (o SubnetworkSecondaryIpRangeOutput) ToSubnetworkSecondaryIpRangeOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeOutput { + return o } -// The list of path rules. Use this list instead of routeRules when routing based -// on simple path matching is all that's required. The order by which path rules -// are specified does not matter. Matches are always done on the longest-path-first -// basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* -// irrespective of the order in which those paths appear in this list. Within a -// given pathMatcher, only one of pathRules or routeRules must be set. -// Structure is documented below. -func (o URLMapPathMatcherOutput) PathRules() URLMapPathMatcherPathRuleArrayOutput { - return o.ApplyT(func(v URLMapPathMatcher) []URLMapPathMatcherPathRule { return v.PathRules }).(URLMapPathMatcherPathRuleArrayOutput) +// The range of IP addresses belonging to this subnetwork secondary +// range. Provide this property when you create the subnetwork. +// Ranges must be unique and non-overlapping with all primary and +// secondary IP ranges within a network. Only IPv4 is supported. +func (o SubnetworkSecondaryIpRangeOutput) IpCidrRange() pulumi.StringOutput { + return o.ApplyT(func(v SubnetworkSecondaryIpRange) string { return v.IpCidrRange }).(pulumi.StringOutput) } -// The list of ordered HTTP route rules. Use this list instead of pathRules when -// advanced route matching and routing actions are desired. The order of specifying -// routeRules matters: the first rule that matches will cause its specified routing -// action to take effect. Within a given pathMatcher, only one of pathRules or -// routeRules must be set. routeRules are not supported in UrlMaps intended for -// External load balancers. -// Structure is documented below. -func (o URLMapPathMatcherOutput) RouteRules() URLMapPathMatcherRouteRuleArrayOutput { - return o.ApplyT(func(v URLMapPathMatcher) []URLMapPathMatcherRouteRule { return v.RouteRules }).(URLMapPathMatcherRouteRuleArrayOutput) +// The name associated with this subnetwork secondary range, used +// when adding an alias IP range to a VM instance. The name must +// be 1-63 characters long, and comply with RFC1035. The name +// must be unique within the subnetwork. +func (o SubnetworkSecondaryIpRangeOutput) RangeName() pulumi.StringOutput { + return o.ApplyT(func(v SubnetworkSecondaryIpRange) string { return v.RangeName }).(pulumi.StringOutput) } -type URLMapPathMatcherArrayOutput struct{ *pulumi.OutputState } +type SubnetworkSecondaryIpRangeArrayOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcher)(nil)).Elem() +func (SubnetworkSecondaryIpRangeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SubnetworkSecondaryIpRange)(nil)).Elem() } -func (o URLMapPathMatcherArrayOutput) ToURLMapPathMatcherArrayOutput() URLMapPathMatcherArrayOutput { +func (o SubnetworkSecondaryIpRangeArrayOutput) ToSubnetworkSecondaryIpRangeArrayOutput() SubnetworkSecondaryIpRangeArrayOutput { return o } -func (o URLMapPathMatcherArrayOutput) ToURLMapPathMatcherArrayOutputWithContext(ctx context.Context) URLMapPathMatcherArrayOutput { +func (o SubnetworkSecondaryIpRangeArrayOutput) ToSubnetworkSecondaryIpRangeArrayOutputWithContext(ctx context.Context) SubnetworkSecondaryIpRangeArrayOutput { return o } -func (o URLMapPathMatcherArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcher { - return vs[0].([]URLMapPathMatcher)[vs[1].(int)] - }).(URLMapPathMatcherOutput) +func (o SubnetworkSecondaryIpRangeArrayOutput) Index(i pulumi.IntInput) SubnetworkSecondaryIpRangeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SubnetworkSecondaryIpRange { + return vs[0].([]SubnetworkSecondaryIpRange)[vs[1].(int)] + }).(SubnetworkSecondaryIpRangeOutput) } -type URLMapPathMatcherDefaultCustomErrorResponsePolicy struct { +type URLMapDefaultCustomErrorResponsePolicy struct { // Specifies rules for returning error responses. // In 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. // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). // If 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. // Structure is documented below. - ErrorResponseRules []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule `pulumi:"errorResponseRules"` + ErrorResponseRules []URLMapDefaultCustomErrorResponsePolicyErrorResponseRule `pulumi:"errorResponseRules"` // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket // compute/v1/projects/project/global/backendBuckets/myBackendBucket @@ -86396,24 +85379,24 @@ type URLMapPathMatcherDefaultCustomErrorResponsePolicy struct { ErrorService *string `pulumi:"errorService"` } -// URLMapPathMatcherDefaultCustomErrorResponsePolicyInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs and URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyInput` via: +// URLMapDefaultCustomErrorResponsePolicyInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyArgs and URLMapDefaultCustomErrorResponsePolicyOutput values. +// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyInput` via: // -// URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{...} -type URLMapPathMatcherDefaultCustomErrorResponsePolicyInput interface { +// URLMapDefaultCustomErrorResponsePolicyArgs{...} +type URLMapDefaultCustomErrorResponsePolicyInput interface { pulumi.Input - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput + ToURLMapDefaultCustomErrorResponsePolicyOutput() URLMapDefaultCustomErrorResponsePolicyOutput + ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyOutput } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs struct { +type URLMapDefaultCustomErrorResponsePolicyArgs struct { // Specifies rules for returning error responses. // In 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. // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). // If 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. // Structure is documented below. - ErrorResponseRules URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput `pulumi:"errorResponseRules"` + ErrorResponseRules URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput `pulumi:"errorResponseRules"` // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket // compute/v1/projects/project/global/backendBuckets/myBackendBucket @@ -86423,81 +85406,81 @@ type URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs struct { ErrorService pulumi.StringPtrInput `pulumi:"errorService"` } -func (URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +func (URLMapDefaultCustomErrorResponsePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { - return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(context.Background()) +func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyOutput() URLMapDefaultCustomErrorResponsePolicyOutput { + return i.ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) +func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyOutput) } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { + return i.ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput).ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx) +func (i URLMapDefaultCustomErrorResponsePolicyArgs) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyOutput).ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs, URLMapPathMatcherDefaultCustomErrorResponsePolicyPtr and URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput` via: +// URLMapDefaultCustomErrorResponsePolicyPtrInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyArgs, URLMapDefaultCustomErrorResponsePolicyPtr and URLMapDefaultCustomErrorResponsePolicyPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyPtrInput` via: // -// URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{...} +// URLMapDefaultCustomErrorResponsePolicyArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput interface { +type URLMapDefaultCustomErrorResponsePolicyPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput + ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput + ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput } -type urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs +type urlmapDefaultCustomErrorResponsePolicyPtrType URLMapDefaultCustomErrorResponsePolicyArgs -func URLMapPathMatcherDefaultCustomErrorResponsePolicyPtr(v *URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput { - return (*urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType)(v) +func URLMapDefaultCustomErrorResponsePolicyPtr(v *URLMapDefaultCustomErrorResponsePolicyArgs) URLMapDefaultCustomErrorResponsePolicyPtrInput { + return (*urlmapDefaultCustomErrorResponsePolicyPtrType)(v) } -func (*urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +func (*urlmapDefaultCustomErrorResponsePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultCustomErrorResponsePolicyPtrType) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { + return i.ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) +func (i *urlmapDefaultCustomErrorResponsePolicyPtrType) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyPtrOutput) } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput struct{ *pulumi.OutputState } +type URLMapDefaultCustomErrorResponsePolicyOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +func (URLMapDefaultCustomErrorResponsePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { +func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyOutput() URLMapDefaultCustomErrorResponsePolicyOutput { return o } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { +func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyOutput { return o } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { - return o.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { + return o.ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultCustomErrorResponsePolicy) *URLMapPathMatcherDefaultCustomErrorResponsePolicy { +func (o URLMapDefaultCustomErrorResponsePolicyOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultCustomErrorResponsePolicy) *URLMapDefaultCustomErrorResponsePolicy { return &v - }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) + }).(URLMapDefaultCustomErrorResponsePolicyPtrOutput) } // Specifies rules for returning error responses. @@ -86505,10 +85488,10 @@ func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMat // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). // If 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. // Structure is documented below. -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ErrorResponseRules() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicy) []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule { +func (o URLMapDefaultCustomErrorResponsePolicyOutput) ErrorResponseRules() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicy) []URLMapDefaultCustomErrorResponsePolicyErrorResponseRule { return v.ErrorResponseRules - }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) + }).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) } // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: @@ -86517,32 +85500,32 @@ func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ErrorResponseRu // global/backendBuckets/myBackendBucket // If 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. // If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ErrorService() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicy) *string { return v.ErrorService }).(pulumi.StringPtrOutput) +func (o URLMapDefaultCustomErrorResponsePolicyOutput) ErrorService() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicy) *string { return v.ErrorService }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultCustomErrorResponsePolicyPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +func (URLMapDefaultCustomErrorResponsePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultCustomErrorResponsePolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { +func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutput() URLMapDefaultCustomErrorResponsePolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { +func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) Elem() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultCustomErrorResponsePolicy) URLMapPathMatcherDefaultCustomErrorResponsePolicy { +func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) Elem() URLMapDefaultCustomErrorResponsePolicyOutput { + return o.ApplyT(func(v *URLMapDefaultCustomErrorResponsePolicy) URLMapDefaultCustomErrorResponsePolicy { if v != nil { return *v } - var ret URLMapPathMatcherDefaultCustomErrorResponsePolicy + var ret URLMapDefaultCustomErrorResponsePolicy return ret - }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) + }).(URLMapDefaultCustomErrorResponsePolicyOutput) } // Specifies rules for returning error responses. @@ -86550,13 +85533,13 @@ func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) Elem() URLMa // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). // If 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. // Structure is documented below. -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ErrorResponseRules() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultCustomErrorResponsePolicy) []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule { +func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ErrorResponseRules() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return o.ApplyT(func(v *URLMapDefaultCustomErrorResponsePolicy) []URLMapDefaultCustomErrorResponsePolicyErrorResponseRule { if v == nil { return nil } return v.ErrorResponseRules - }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) + }).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) } // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: @@ -86565,8 +85548,8 @@ func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ErrorRespons // global/backendBuckets/myBackendBucket // If 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. // If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ErrorService() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultCustomErrorResponsePolicy) *string { +func (o URLMapDefaultCustomErrorResponsePolicyPtrOutput) ErrorService() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultCustomErrorResponsePolicy) *string { if v == nil { return nil } @@ -86574,7 +85557,7 @@ func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ErrorService }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule struct { +type URLMapDefaultCustomErrorResponsePolicyErrorResponseRule struct { // Valid values include: // - 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. // - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. @@ -86591,18 +85574,18 @@ type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule struct { Path *string `pulumi:"path"` } -// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs and URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput` via: +// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs and URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput values. +// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput` via: // -// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} -type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput interface { +// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} +type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput interface { pulumi.Input - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput + ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput + ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs struct { +type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs struct { // Valid values include: // - 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. // - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. @@ -86619,54 +85602,54 @@ type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs stru Path pulumi.StringPtrInput `pulumi:"path"` } -func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { - return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Background()) +func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return i.ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) +func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) } -// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray and URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput` via: +// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput is an input type that accepts URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray and URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput values. +// You can construct a concrete instance of `URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput` via: // -// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray{ URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput interface { +// URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray{ URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} } +type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput interface { pulumi.Input - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput - ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput + ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput + ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput +type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray []URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleInput -func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Background()) +func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return i.ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) +func (i URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput struct{ *pulumi.OutputState } +type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { return o } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { return o } @@ -86675,76 +85658,72 @@ func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput // - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. // - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. // Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) MatchResponseCodes() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule) []string { - return v.MatchResponseCodes - }).(pulumi.StringArrayOutput) +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) MatchResponseCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicyErrorResponseRule) []string { return v.MatchResponseCodes }).(pulumi.StringArrayOutput) } // The HTTP status code returned with the response containing the custom error content. // If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) OverrideResponseCode() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule) *int { - return v.OverrideResponseCode - }).(pulumi.IntPtrOutput) +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) OverrideResponseCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicyErrorResponseRule) *int { return v.OverrideResponseCode }).(pulumi.IntPtrOutput) } // The full path to a file within backendBucket. For example: /errors/defaultError.html // path must start with a leading slash. path cannot have trailing slashes. // If 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. // The value must be from 1 to 1024 characters. -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) Path() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule) *string { return v.Path }).(pulumi.StringPtrOutput) +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultCustomErrorResponsePolicyErrorResponseRule) *string { return v.Path }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput struct{ *pulumi.OutputState } +type URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +func (URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { return o } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { return o } -func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule { - return vs[0].([]URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)[vs[1].(int)] - }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) +func (o URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) Index(i pulumi.IntInput) URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultCustomErrorResponsePolicyErrorResponseRule { + return vs[0].([]URLMapDefaultCustomErrorResponsePolicyErrorResponseRule)[vs[1].(int)] + }).(URLMapDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) } -type URLMapPathMatcherDefaultRouteAction struct { +type URLMapDefaultRouteAction struct { // The specification for allowing client side cross-origin requests. Please see // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) // Structure is documented below. - CorsPolicy *URLMapPathMatcherDefaultRouteActionCorsPolicy `pulumi:"corsPolicy"` + CorsPolicy *URLMapDefaultRouteActionCorsPolicy `pulumi:"corsPolicy"` // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. // As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a // percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted // by the Loadbalancer for a percentage of requests. // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. // Structure is documented below. - FaultInjectionPolicy *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` + FaultInjectionPolicy *URLMapDefaultRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, // the host / authority header is suffixed with -shadow. // Structure is documented below. - RequestMirrorPolicy *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` + RequestMirrorPolicy *URLMapDefaultRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` // Specifies the retry policy associated with this route. // Structure is documented below. - RetryPolicy *URLMapPathMatcherDefaultRouteActionRetryPolicy `pulumi:"retryPolicy"` + RetryPolicy *URLMapDefaultRouteActionRetryPolicy `pulumi:"retryPolicy"` // Specifies the timeout for the selected route. Timeout is computed from the time the request has been // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. // If not specified, will use the largest timeout among all backend services associated with the route. // Structure is documented below. - Timeout *URLMapPathMatcherDefaultRouteActionTimeout `pulumi:"timeout"` + Timeout *URLMapDefaultRouteActionTimeout `pulumi:"timeout"` // The spec to modify the URL of the request, prior to forwarding the request to the matched service. // Structure is documented below. - UrlRewrite *URLMapPathMatcherDefaultRouteActionUrlRewrite `pulumi:"urlRewrite"` + UrlRewrite *URLMapDefaultRouteActionUrlRewrite `pulumi:"urlRewrite"` // 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 @@ -86753,48 +85732,48 @@ type URLMapPathMatcherDefaultRouteAction struct { // advanced routing actions like Url rewrites and header transformations are applied depending on // additional settings specified in this HttpRouteAction. // Structure is documented below. - WeightedBackendServices []URLMapPathMatcherDefaultRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` + WeightedBackendServices []URLMapDefaultRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` } -// URLMapPathMatcherDefaultRouteActionInput is an input type that accepts URLMapPathMatcherDefaultRouteActionArgs and URLMapPathMatcherDefaultRouteActionOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionInput` via: +// URLMapDefaultRouteActionInput is an input type that accepts URLMapDefaultRouteActionArgs and URLMapDefaultRouteActionOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionInput` via: // -// URLMapPathMatcherDefaultRouteActionArgs{...} -type URLMapPathMatcherDefaultRouteActionInput interface { +// URLMapDefaultRouteActionArgs{...} +type URLMapDefaultRouteActionInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionOutput() URLMapPathMatcherDefaultRouteActionOutput - ToURLMapPathMatcherDefaultRouteActionOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionOutput + ToURLMapDefaultRouteActionOutput() URLMapDefaultRouteActionOutput + ToURLMapDefaultRouteActionOutputWithContext(context.Context) URLMapDefaultRouteActionOutput } -type URLMapPathMatcherDefaultRouteActionArgs struct { +type URLMapDefaultRouteActionArgs struct { // The specification for allowing client side cross-origin requests. Please see // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) // Structure is documented below. - CorsPolicy URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` + CorsPolicy URLMapDefaultRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. // As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a // percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted // by the Loadbalancer for a percentage of requests. // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. // Structure is documented below. - FaultInjectionPolicy URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` + FaultInjectionPolicy URLMapDefaultRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, // the host / authority header is suffixed with -shadow. // Structure is documented below. - RequestMirrorPolicy URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` + RequestMirrorPolicy URLMapDefaultRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` // Specifies the retry policy associated with this route. // Structure is documented below. - RetryPolicy URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` + RetryPolicy URLMapDefaultRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` // Specifies the timeout for the selected route. Timeout is computed from the time the request has been // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. // If not specified, will use the largest timeout among all backend services associated with the route. // Structure is documented below. - Timeout URLMapPathMatcherDefaultRouteActionTimeoutPtrInput `pulumi:"timeout"` + Timeout URLMapDefaultRouteActionTimeoutPtrInput `pulumi:"timeout"` // The spec to modify the URL of the request, prior to forwarding the request to the matched service. // Structure is documented below. - UrlRewrite URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` + UrlRewrite URLMapDefaultRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` // 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 @@ -86803,93 +85782,91 @@ type URLMapPathMatcherDefaultRouteActionArgs struct { // advanced routing actions like Url rewrites and header transformations are applied depending on // additional settings specified in this HttpRouteAction. // Structure is documented below. - WeightedBackendServices URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` + WeightedBackendServices URLMapDefaultRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` } -func (URLMapPathMatcherDefaultRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +func (URLMapDefaultRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteAction)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionOutput() URLMapPathMatcherDefaultRouteActionOutput { - return i.ToURLMapPathMatcherDefaultRouteActionOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionOutput() URLMapDefaultRouteActionOutput { + return i.ToURLMapDefaultRouteActionOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionOutput) +func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionOutput) } -func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { + return i.ToURLMapDefaultRouteActionPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionOutput).ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionArgs) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionOutput).ToURLMapDefaultRouteActionPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionArgs, URLMapPathMatcherDefaultRouteActionPtr and URLMapPathMatcherDefaultRouteActionPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionPtrInput` via: +// URLMapDefaultRouteActionPtrInput is an input type that accepts URLMapDefaultRouteActionArgs, URLMapDefaultRouteActionPtr and URLMapDefaultRouteActionPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionArgs{...} +// URLMapDefaultRouteActionArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionPtrInput interface { +type URLMapDefaultRouteActionPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput - ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput + ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput + ToURLMapDefaultRouteActionPtrOutputWithContext(context.Context) URLMapDefaultRouteActionPtrOutput } -type urlmapPathMatcherDefaultRouteActionPtrType URLMapPathMatcherDefaultRouteActionArgs +type urlmapDefaultRouteActionPtrType URLMapDefaultRouteActionArgs -func URLMapPathMatcherDefaultRouteActionPtr(v *URLMapPathMatcherDefaultRouteActionArgs) URLMapPathMatcherDefaultRouteActionPtrInput { - return (*urlmapPathMatcherDefaultRouteActionPtrType)(v) +func URLMapDefaultRouteActionPtr(v *URLMapDefaultRouteActionArgs) URLMapDefaultRouteActionPtrInput { + return (*urlmapDefaultRouteActionPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +func (*urlmapDefaultRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteAction)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionPtrType) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionPtrType) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { + return i.ToURLMapDefaultRouteActionPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionPtrType) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionPtrOutput) +func (i *urlmapDefaultRouteActionPtrType) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionPtrOutput) } -type URLMapPathMatcherDefaultRouteActionOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +func (URLMapDefaultRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteAction)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionOutput() URLMapPathMatcherDefaultRouteActionOutput { +func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionOutput() URLMapDefaultRouteActionOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionOutput { +func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { + return o.ToURLMapDefaultRouteActionPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteAction { +func (o URLMapDefaultRouteActionOutput) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteAction) *URLMapDefaultRouteAction { return &v - }).(URLMapPathMatcherDefaultRouteActionPtrOutput) + }).(URLMapDefaultRouteActionPtrOutput) } // The specification for allowing client side cross-origin requests. Please see // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionOutput) CorsPolicy() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionCorsPolicy { - return v.CorsPolicy - }).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) +func (o URLMapDefaultRouteActionOutput) CorsPolicy() URLMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionCorsPolicy { return v.CorsPolicy }).(URLMapDefaultRouteActionCorsPolicyPtrOutput) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. @@ -86898,46 +85875,40 @@ func (o URLMapPathMatcherDefaultRouteActionOutput) CorsPolicy() URLMapPathMatche // by the Loadbalancer for a percentage of requests. // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionOutput) FaultInjectionPolicy() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { +func (o URLMapDefaultRouteActionOutput) FaultInjectionPolicy() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionFaultInjectionPolicy { return v.FaultInjectionPolicy - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) } // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, // the host / authority header is suffixed with -shadow. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionOutput) RequestMirrorPolicy() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { +func (o URLMapDefaultRouteActionOutput) RequestMirrorPolicy() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionRequestMirrorPolicy { return v.RequestMirrorPolicy - }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) + }).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } // Specifies the retry policy associated with this route. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionOutput) RetryPolicy() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRetryPolicy { - return v.RetryPolicy - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) +func (o URLMapDefaultRouteActionOutput) RetryPolicy() URLMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionRetryPolicy { return v.RetryPolicy }).(URLMapDefaultRouteActionRetryPolicyPtrOutput) } // Specifies the timeout for the selected route. Timeout is computed from the time the request has been // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. // If not specified, will use the largest timeout among all backend services associated with the route. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionOutput) Timeout() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionTimeout { - return v.Timeout - }).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) +func (o URLMapDefaultRouteActionOutput) Timeout() URLMapDefaultRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionTimeout { return v.Timeout }).(URLMapDefaultRouteActionTimeoutPtrOutput) } // The spec to modify the URL of the request, prior to forwarding the request to the matched service. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionOutput) UrlRewrite() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionUrlRewrite { - return v.UrlRewrite - }).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) +func (o URLMapDefaultRouteActionOutput) UrlRewrite() URLMapDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteAction) *URLMapDefaultRouteActionUrlRewrite { return v.UrlRewrite }).(URLMapDefaultRouteActionUrlRewritePtrOutput) } // A list of weighted backend services to send traffic to when a route match occurs. @@ -86948,46 +85919,46 @@ func (o URLMapPathMatcherDefaultRouteActionOutput) UrlRewrite() URLMapPathMatche // advanced routing actions like Url rewrites and header transformations are applied depending on // additional settings specified in this HttpRouteAction. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionOutput) WeightedBackendServices() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendService { +func (o URLMapDefaultRouteActionOutput) WeightedBackendServices() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteAction) []URLMapDefaultRouteActionWeightedBackendService { return v.WeightedBackendServices - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) } -type URLMapPathMatcherDefaultRouteActionPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +func (URLMapDefaultRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteAction)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { +func (o URLMapDefaultRouteActionPtrOutput) ToURLMapDefaultRouteActionPtrOutput() URLMapDefaultRouteActionPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { +func (o URLMapDefaultRouteActionPtrOutput) ToURLMapDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) URLMapPathMatcherDefaultRouteAction { +func (o URLMapDefaultRouteActionPtrOutput) Elem() URLMapDefaultRouteActionOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) URLMapDefaultRouteAction { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteAction + var ret URLMapDefaultRouteAction return ret - }).(URLMapPathMatcherDefaultRouteActionOutput) + }).(URLMapDefaultRouteActionOutput) } // The specification for allowing client side cross-origin requests. Please see // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) CorsPolicy() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionCorsPolicy { +func (o URLMapDefaultRouteActionPtrOutput) CorsPolicy() URLMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionCorsPolicy { if v == nil { return nil } return v.CorsPolicy - }).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) + }).(URLMapDefaultRouteActionCorsPolicyPtrOutput) } // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. @@ -86996,61 +85967,61 @@ func (o URLMapPathMatcherDefaultRouteActionPtrOutput) CorsPolicy() URLMapPathMat // by the Loadbalancer for a percentage of requests. // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) FaultInjectionPolicy() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { +func (o URLMapDefaultRouteActionPtrOutput) FaultInjectionPolicy() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionFaultInjectionPolicy { if v == nil { return nil } return v.FaultInjectionPolicy - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) } // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, // the host / authority header is suffixed with -shadow. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) RequestMirrorPolicy() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { +func (o URLMapDefaultRouteActionPtrOutput) RequestMirrorPolicy() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionRequestMirrorPolicy { if v == nil { return nil } return v.RequestMirrorPolicy - }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) + }).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } // Specifies the retry policy associated with this route. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) RetryPolicy() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRetryPolicy { +func (o URLMapDefaultRouteActionPtrOutput) RetryPolicy() URLMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionRetryPolicy { if v == nil { return nil } return v.RetryPolicy - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) + }).(URLMapDefaultRouteActionRetryPolicyPtrOutput) } // Specifies the timeout for the selected route. Timeout is computed from the time the request has been // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. // If not specified, will use the largest timeout among all backend services associated with the route. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) Timeout() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionTimeout { +func (o URLMapDefaultRouteActionPtrOutput) Timeout() URLMapDefaultRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionTimeout { if v == nil { return nil } return v.Timeout - }).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) + }).(URLMapDefaultRouteActionTimeoutPtrOutput) } // The spec to modify the URL of the request, prior to forwarding the request to the matched service. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) UrlRewrite() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionUrlRewrite { +func (o URLMapDefaultRouteActionPtrOutput) UrlRewrite() URLMapDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) *URLMapDefaultRouteActionUrlRewrite { if v == nil { return nil } return v.UrlRewrite - }).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) + }).(URLMapDefaultRouteActionUrlRewritePtrOutput) } // A list of weighted backend services to send traffic to when a route match occurs. @@ -87061,16 +86032,16 @@ func (o URLMapPathMatcherDefaultRouteActionPtrOutput) UrlRewrite() URLMapPathMat // advanced routing actions like Url rewrites and header transformations are applied depending on // additional settings specified in this HttpRouteAction. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionPtrOutput) WeightedBackendServices() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendService { +func (o URLMapDefaultRouteActionPtrOutput) WeightedBackendServices() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteAction) []URLMapDefaultRouteActionWeightedBackendService { if v == nil { return nil } return v.WeightedBackendServices - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) } -type URLMapPathMatcherDefaultRouteActionCorsPolicy struct { +type URLMapDefaultRouteActionCorsPolicy struct { // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. // This translates to the Access-Control-Allow-Credentials header. AllowCredentials *bool `pulumi:"allowCredentials"` @@ -87094,18 +86065,18 @@ type URLMapPathMatcherDefaultRouteActionCorsPolicy struct { MaxAge *int `pulumi:"maxAge"` } -// URLMapPathMatcherDefaultRouteActionCorsPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionCorsPolicyArgs and URLMapPathMatcherDefaultRouteActionCorsPolicyOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionCorsPolicyInput` via: +// URLMapDefaultRouteActionCorsPolicyInput is an input type that accepts URLMapDefaultRouteActionCorsPolicyArgs and URLMapDefaultRouteActionCorsPolicyOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionCorsPolicyInput` via: // -// URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{...} -type URLMapPathMatcherDefaultRouteActionCorsPolicyInput interface { +// URLMapDefaultRouteActionCorsPolicyArgs{...} +type URLMapDefaultRouteActionCorsPolicyInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput - ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyOutput + ToURLMapDefaultRouteActionCorsPolicyOutput() URLMapDefaultRouteActionCorsPolicyOutput + ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionCorsPolicyOutput } -type URLMapPathMatcherDefaultRouteActionCorsPolicyArgs struct { +type URLMapDefaultRouteActionCorsPolicyArgs struct { // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. // This translates to the Access-Control-Allow-Credentials header. AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` @@ -87129,156 +86100,156 @@ type URLMapPathMatcherDefaultRouteActionCorsPolicyArgs struct { MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` } -func (URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionCorsPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { - return i.ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyOutput() URLMapDefaultRouteActionCorsPolicyOutput { + return i.ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) +func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionCorsPolicyOutput) } -func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput).ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionCorsPolicyArgs) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionCorsPolicyOutput).ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionCorsPolicyArgs, URLMapPathMatcherDefaultRouteActionCorsPolicyPtr and URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput` via: +// URLMapDefaultRouteActionCorsPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionCorsPolicyArgs, URLMapDefaultRouteActionCorsPolicyPtr and URLMapDefaultRouteActionCorsPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionCorsPolicyPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{...} +// URLMapDefaultRouteActionCorsPolicyArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput interface { +type URLMapDefaultRouteActionCorsPolicyPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput - ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput + ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput + ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput } -type urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType URLMapPathMatcherDefaultRouteActionCorsPolicyArgs +type urlmapDefaultRouteActionCorsPolicyPtrType URLMapDefaultRouteActionCorsPolicyArgs -func URLMapPathMatcherDefaultRouteActionCorsPolicyPtr(v *URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput { - return (*urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType)(v) +func URLMapDefaultRouteActionCorsPolicyPtr(v *URLMapDefaultRouteActionCorsPolicyArgs) URLMapDefaultRouteActionCorsPolicyPtrInput { + return (*urlmapDefaultRouteActionCorsPolicyPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +func (*urlmapDefaultRouteActionCorsPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionCorsPolicyPtrType) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) +func (i *urlmapDefaultRouteActionCorsPolicyPtrType) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionCorsPolicyPtrOutput) } -type URLMapPathMatcherDefaultRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionCorsPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { +func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyOutput() URLMapDefaultRouteActionCorsPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { +func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionCorsPolicy) *URLMapPathMatcherDefaultRouteActionCorsPolicy { +func (o URLMapDefaultRouteActionCorsPolicyOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionCorsPolicy) *URLMapDefaultRouteActionCorsPolicy { return &v - }).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) + }).(URLMapDefaultRouteActionCorsPolicyPtrOutput) } // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. // This translates to the Access-Control-Allow-Credentials header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) } // Specifies the content for the Access-Control-Allow-Headers header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) } // Specifies the content for the Access-Control-Allow-Methods header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) } // Specifies the regular expression patterns that match allowed origins. For regular expression grammar // please see en.cppreference.com/w/cpp/regex/ecmascript // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) } // Specifies the list of origins that will be allowed to do CORS requests. // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) } // If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) } // Specifies the content for the Access-Control-Expose-Headers header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) } // Specifies how long results of a preflight request can be cached in seconds. // This translates to the Access-Control-Max-Age header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +func (o URLMapDefaultRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) } -type URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionCorsPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutput() URLMapDefaultRouteActionCorsPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) ToURLMapDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionCorsPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) URLMapPathMatcherDefaultRouteActionCorsPolicy { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) Elem() URLMapDefaultRouteActionCorsPolicyOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) URLMapDefaultRouteActionCorsPolicy { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionCorsPolicy + var ret URLMapDefaultRouteActionCorsPolicy return ret - }).(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) + }).(URLMapDefaultRouteActionCorsPolicyOutput) } // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. // This translates to the Access-Control-Allow-Credentials header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) *bool { if v == nil { return nil } @@ -87287,8 +86258,8 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowCredentials } // Specifies the content for the Access-Control-Allow-Headers header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } @@ -87297,8 +86268,8 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowHeaders() p } // Specifies the content for the Access-Control-Allow-Methods header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } @@ -87309,8 +86280,8 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowMethods() p // Specifies the regular expression patterns that match allowed origins. For regular expression grammar // please see en.cppreference.com/w/cpp/regex/ecmascript // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } @@ -87320,8 +86291,8 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowOriginRegex // Specifies the list of origins that will be allowed to do CORS requests. // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } @@ -87330,8 +86301,8 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowOrigins() p } // If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) *bool { if v == nil { return nil } @@ -87340,8 +86311,8 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) Disabled() pulum } // Specifies the content for the Access-Control-Expose-Headers header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) []string { if v == nil { return nil } @@ -87351,8 +86322,8 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ExposeHeaders() // Specifies how long results of a preflight request can be cached in seconds. // This translates to the Access-Control-Max-Age header. -func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) *int { +func (o URLMapDefaultRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionCorsPolicy) *int { if v == nil { return nil } @@ -87360,175 +86331,175 @@ func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) MaxAge() pulumi. }).(pulumi.IntPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy struct { +type URLMapDefaultRouteActionFaultInjectionPolicy struct { // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. - Abort *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` + Abort *URLMapDefaultRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. - Delay *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` + Delay *URLMapDefaultRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyArgs and URLMapDefaultRouteActionFaultInjectionPolicyOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{...} -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput interface { +// URLMapDefaultRouteActionFaultInjectionPolicyArgs{...} +type URLMapDefaultRouteActionFaultInjectionPolicyInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyOutput() URLMapDefaultRouteActionFaultInjectionPolicyOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyOutput } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs struct { +type URLMapDefaultRouteActionFaultInjectionPolicyArgs struct { // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. - Abort URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` + Abort URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. - Delay URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` + Delay URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyOutput() URLMapDefaultRouteActionFaultInjectionPolicyOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) +func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyOutput) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyArgs, URLMapDefaultRouteActionFaultInjectionPolicyPtr and URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{...} +// URLMapDefaultRouteActionFaultInjectionPolicyArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput interface { +type URLMapDefaultRouteActionFaultInjectionPolicyPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput } -type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs +type urlmapDefaultRouteActionFaultInjectionPolicyPtrType URLMapDefaultRouteActionFaultInjectionPolicyArgs -func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput { - return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType)(v) +func URLMapDefaultRouteActionFaultInjectionPolicyPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyArgs) URLMapDefaultRouteActionFaultInjectionPolicyPtrInput { + return (*urlmapDefaultRouteActionFaultInjectionPolicyPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (*urlmapDefaultRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyOutput() URLMapDefaultRouteActionFaultInjectionPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { +func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicy { return &v - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) } // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) Abort() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { +func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) Abort() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyAbort { return v.Abort - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) Delay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyOutput) Delay() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyDelay { return v.Delay - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { +func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicy) URLMapDefaultRouteActionFaultInjectionPolicy { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy + var ret URLMapDefaultRouteActionFaultInjectionPolicy return ret - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyOutput) } // The specification for how client requests are aborted as part of fault injection. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) Abort() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { +func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Abort() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyAbort { if v == nil { return nil } return v.Abort - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) Delay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyPtrOutput) Delay() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicy) *URLMapDefaultRouteActionFaultInjectionPolicyDelay { if v == nil { return nil } return v.Delay - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort struct { +type URLMapDefaultRouteActionFaultInjectionPolicyAbort struct { // The HTTP status code used to abort the request. // The value must be between 200 and 599 inclusive. HttpStatus *int `pulumi:"httpStatus"` @@ -87537,18 +86508,18 @@ type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort struct { Percentage *float64 `pulumi:"percentage"` } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyAbortInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs and URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyAbortInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{...} -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput interface { +// URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} +type URLMapDefaultRouteActionFaultInjectionPolicyAbortInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs struct { +type URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs struct { // The HTTP status code used to abort the request. // The value must be between 200 and 599 inclusive. HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` @@ -87557,123 +86528,123 @@ type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs struct { Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) +func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs, URLMapDefaultRouteActionFaultInjectionPolicyAbortPtr and URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{...} +// URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput interface { +type URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput } -type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs +type urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs -func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput { - return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType)(v) +func URLMapDefaultRouteActionFaultInjectionPolicyAbortPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyAbortArgs) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrInput { + return (*urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (*urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicyAbort) *URLMapDefaultRouteActionFaultInjectionPolicyAbort { return &v - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) } // The HTTP status code used to abort the request. // The value must be between 200 and 599 inclusive. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) } // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. // The value must be between 0.0 and 100.0 inclusive. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyAbort) URLMapDefaultRouteActionFaultInjectionPolicyAbort { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort + var ret URLMapDefaultRouteActionFaultInjectionPolicyAbort return ret - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyAbortOutput) } // The HTTP status code used to abort the request. // The value must be between 200 and 599 inclusive. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *int { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyAbort) *int { if v == nil { return nil } @@ -87683,8 +86654,8 @@ func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) H // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. // The value must be between 0.0 and 100.0 inclusive. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *float64 { +func (o URLMapDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyAbort) *float64 { if v == nil { return nil } @@ -87692,165 +86663,165 @@ func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) P }).(pulumi.Float64PtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay struct { +type URLMapDefaultRouteActionFaultInjectionPolicyDelay struct { // Specifies the value of the fixed delay interval. // Structure is documented below. - FixedDelay *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` + FixedDelay *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. // The value must be between 0.0 and 100.0 inclusive. Percentage *float64 `pulumi:"percentage"` } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyDelayInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs and URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{...} -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput interface { +// URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} +type URLMapDefaultRouteActionFaultInjectionPolicyDelayInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs struct { +type URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs struct { // Specifies the value of the fixed delay interval. // Structure is documented below. - FixedDelay URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` + FixedDelay URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. // The value must be between 0.0 and 100.0 inclusive. Percentage pulumi.Float64PtrInput `pulumi:"percentage"` } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs, URLMapDefaultRouteActionFaultInjectionPolicyDelayPtr and URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{...} +// URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput interface { +type URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput } -type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs +type urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs -func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput { - return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType)(v) +func URLMapDefaultRouteActionFaultInjectionPolicyDelayPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayArgs) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrInput { + return (*urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (*urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicyDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelay { return &v - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) } // Specifies the value of the fixed delay interval. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { return v.FixedDelay - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. // The value must be between 0.0 and 100.0 inclusive. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelay) URLMapDefaultRouteActionFaultInjectionPolicyDelay { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay + var ret URLMapDefaultRouteActionFaultInjectionPolicyDelay return ret - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayOutput) } // Specifies the value of the fixed delay interval. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { if v == nil { return nil } return v.FixedDelay - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. // The value must be between 0.0 and 100.0 inclusive. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *float64 { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelay) *float64 { if v == nil { return nil } @@ -87858,7 +86829,7 @@ func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) P }).(pulumi.Float64PtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay struct { +type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay struct { // 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. Nanos *int `pulumi:"nanos"` @@ -87867,18 +86838,18 @@ type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay stru Seconds *string `pulumi:"seconds"` } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs and URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { +// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { +type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { // 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. Nanos pulumi.IntPtrInput `pulumi:"nanos"` @@ -87887,125 +86858,123 @@ type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs Seconds pulumi.StringPtrInput `pulumi:"seconds"` } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: +// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs, URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr and URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +// URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { +type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput - ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput } -type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs +type urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs -func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { - return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) +func URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { + return (*urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (*urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +func (i *urlmapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { return &v - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { return v.Nanos }).(pulumi.IntPtrOutput) +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { return v.Nanos }).(pulumi.IntPtrOutput) } // 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 -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { - return v.Seconds - }).(pulumi.StringPtrOutput) +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { return v.Seconds }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +func (URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay + var ret URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay return ret - }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) + }).(URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { if v == nil { return nil } @@ -88015,8 +86984,8 @@ func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPt // 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 -func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { +func (o URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { if v == nil { return nil } @@ -88024,136 +86993,136 @@ func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPt }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy struct { +type URLMapDefaultRouteActionRequestMirrorPolicy struct { // The full or partial URL to the BackendService resource being mirrored to. BackendService string `pulumi:"backendService"` } -// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs and URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput` via: +// URLMapDefaultRouteActionRequestMirrorPolicyInput is an input type that accepts URLMapDefaultRouteActionRequestMirrorPolicyArgs and URLMapDefaultRouteActionRequestMirrorPolicyOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionRequestMirrorPolicyInput` via: // -// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{...} -type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput interface { +// URLMapDefaultRouteActionRequestMirrorPolicyArgs{...} +type URLMapDefaultRouteActionRequestMirrorPolicyInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput - ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput + ToURLMapDefaultRouteActionRequestMirrorPolicyOutput() URLMapDefaultRouteActionRequestMirrorPolicyOutput + ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionRequestMirrorPolicyOutput } -type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs struct { +type URLMapDefaultRouteActionRequestMirrorPolicyArgs struct { // The full or partial URL to the BackendService resource being mirrored to. BackendService pulumi.StringInput `pulumi:"backendService"` } -func (URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyOutput() URLMapDefaultRouteActionRequestMirrorPolicyOutput { + return i.ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) +func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRequestMirrorPolicyOutput) } -func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput).ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRequestMirrorPolicyOutput).ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs, URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtr and URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput` via: +// URLMapDefaultRouteActionRequestMirrorPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionRequestMirrorPolicyArgs, URLMapDefaultRouteActionRequestMirrorPolicyPtr and URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionRequestMirrorPolicyPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{...} +// URLMapDefaultRouteActionRequestMirrorPolicyArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput interface { +type URLMapDefaultRouteActionRequestMirrorPolicyPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput - ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput + ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput + ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput } -type urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs +type urlmapDefaultRouteActionRequestMirrorPolicyPtrType URLMapDefaultRouteActionRequestMirrorPolicyArgs -func URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtr(v *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput { - return (*urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType)(v) +func URLMapDefaultRouteActionRequestMirrorPolicyPtr(v *URLMapDefaultRouteActionRequestMirrorPolicyArgs) URLMapDefaultRouteActionRequestMirrorPolicyPtrInput { + return (*urlmapDefaultRouteActionRequestMirrorPolicyPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (*urlmapDefaultRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) +func (i *urlmapDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } -type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { +func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyOutput() URLMapDefaultRouteActionRequestMirrorPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { +func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { +func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionRequestMirrorPolicy) *URLMapDefaultRouteActionRequestMirrorPolicy { return &v - }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) + }).(URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) } // The full or partial URL to the BackendService resource being mirrored to. -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) +func (o URLMapDefaultRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) } -type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { +func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { +func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { +func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) Elem() URLMapDefaultRouteActionRequestMirrorPolicyOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRequestMirrorPolicy) URLMapDefaultRouteActionRequestMirrorPolicy { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy + var ret URLMapDefaultRouteActionRequestMirrorPolicy return ret - }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) + }).(URLMapDefaultRouteActionRequestMirrorPolicyOutput) } // The full or partial URL to the BackendService resource being mirrored to. -func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) *string { +func (o URLMapDefaultRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRequestMirrorPolicy) *string { if v == nil { return nil } @@ -88161,14 +87130,14 @@ func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) Backend }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionRetryPolicy struct { +type URLMapDefaultRouteActionRetryPolicy struct { // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. NumRetries *int `pulumi:"numRetries"` // Specifies a non-zero timeout per retry attempt. // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, // will use the largest timeout among all backend services associated with the route. // Structure is documented below. - PerTryTimeout *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` + PerTryTimeout *URLMapDefaultRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` // Specfies one or more conditions when this retry rule applies. Valid values are: // * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, // or if the backend service does not respond at all, example: disconnects, reset, read timeout, @@ -88187,25 +87156,25 @@ type URLMapPathMatcherDefaultRouteActionRetryPolicy struct { RetryConditions []string `pulumi:"retryConditions"` } -// URLMapPathMatcherDefaultRouteActionRetryPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyArgs and URLMapPathMatcherDefaultRouteActionRetryPolicyOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyInput` via: +// URLMapDefaultRouteActionRetryPolicyInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyArgs and URLMapDefaultRouteActionRetryPolicyOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyInput` via: // -// URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{...} -type URLMapPathMatcherDefaultRouteActionRetryPolicyInput interface { +// URLMapDefaultRouteActionRetryPolicyArgs{...} +type URLMapDefaultRouteActionRetryPolicyInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput - ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyOutput + ToURLMapDefaultRouteActionRetryPolicyOutput() URLMapDefaultRouteActionRetryPolicyOutput + ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyOutput } -type URLMapPathMatcherDefaultRouteActionRetryPolicyArgs struct { +type URLMapDefaultRouteActionRetryPolicyArgs struct { // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` // Specifies a non-zero timeout per retry attempt. // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, // will use the largest timeout among all backend services associated with the route. // Structure is documented below. - PerTryTimeout URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` + PerTryTimeout URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` // Specfies one or more conditions when this retry rule applies. Valid values are: // * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, // or if the backend service does not respond at all, example: disconnects, reset, read timeout, @@ -88224,96 +87193,96 @@ type URLMapPathMatcherDefaultRouteActionRetryPolicyArgs struct { RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` } -func (URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyOutput() URLMapDefaultRouteActionRetryPolicyOutput { + return i.ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) +func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyOutput) } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput).ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionRetryPolicyArgs) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyOutput).ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyArgs, URLMapPathMatcherDefaultRouteActionRetryPolicyPtr and URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput` via: +// URLMapDefaultRouteActionRetryPolicyPtrInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyArgs, URLMapDefaultRouteActionRetryPolicyPtr and URLMapDefaultRouteActionRetryPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{...} +// URLMapDefaultRouteActionRetryPolicyArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput interface { +type URLMapDefaultRouteActionRetryPolicyPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput - ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput + ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput + ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput } -type urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType URLMapPathMatcherDefaultRouteActionRetryPolicyArgs +type urlmapDefaultRouteActionRetryPolicyPtrType URLMapDefaultRouteActionRetryPolicyArgs -func URLMapPathMatcherDefaultRouteActionRetryPolicyPtr(v *URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput { - return (*urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType)(v) +func URLMapDefaultRouteActionRetryPolicyPtr(v *URLMapDefaultRouteActionRetryPolicyArgs) URLMapDefaultRouteActionRetryPolicyPtrInput { + return (*urlmapDefaultRouteActionRetryPolicyPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +func (*urlmapDefaultRouteActionRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionRetryPolicyPtrType) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { + return i.ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) +func (i *urlmapDefaultRouteActionRetryPolicyPtrType) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPtrOutput) } -type URLMapPathMatcherDefaultRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { +func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyOutput() URLMapDefaultRouteActionRetryPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { +func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionRetryPolicy) *URLMapPathMatcherDefaultRouteActionRetryPolicy { +func (o URLMapDefaultRouteActionRetryPolicyOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionRetryPolicy) *URLMapDefaultRouteActionRetryPolicy { return &v - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) + }).(URLMapDefaultRouteActionRetryPolicyPtrOutput) } // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) +func (o URLMapDefaultRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) } // Specifies a non-zero timeout per retry attempt. // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, // will use the largest timeout among all backend services associated with the route. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) PerTryTimeout() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicy) *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { +func (o URLMapDefaultRouteActionRetryPolicyOutput) PerTryTimeout() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicy) *URLMapDefaultRouteActionRetryPolicyPerTryTimeout { return v.PerTryTimeout - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) + }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } // Specfies one or more conditions when this retry rule applies. Valid values are: @@ -88331,37 +87300,37 @@ func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) PerTryTimeout() UR // - deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded // - resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted // - unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +func (o URLMapDefaultRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) } -type URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +func (URLMapDefaultRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicy)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { +func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutput() URLMapDefaultRouteActionRetryPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { +func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) URLMapPathMatcherDefaultRouteActionRetryPolicy { +func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) Elem() URLMapDefaultRouteActionRetryPolicyOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) URLMapDefaultRouteActionRetryPolicy { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionRetryPolicy + var ret URLMapDefaultRouteActionRetryPolicy return ret - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) + }).(URLMapDefaultRouteActionRetryPolicyOutput) } // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) *int { +func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) *int { if v == nil { return nil } @@ -88373,13 +87342,13 @@ func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) NumRetries() pu // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, // will use the largest timeout among all backend services associated with the route. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) PerTryTimeout() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { +func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) PerTryTimeout() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) *URLMapDefaultRouteActionRetryPolicyPerTryTimeout { if v == nil { return nil } return v.PerTryTimeout - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) + }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } // Specfies one or more conditions when this retry rule applies. Valid values are: @@ -88397,8 +87366,8 @@ func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) PerTryTimeout() // - deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded // - resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted // - unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) []string { +func (o URLMapDefaultRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicy) []string { if v == nil { return nil } @@ -88406,7 +87375,7 @@ func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) RetryConditions }).(pulumi.StringArrayOutput) } -type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout struct { +type URLMapDefaultRouteActionRetryPolicyPerTryTimeout struct { // 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. Nanos *int `pulumi:"nanos"` @@ -88415,18 +87384,18 @@ type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout struct { Seconds *string `pulumi:"seconds"` } -// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs and URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput` via: +// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs and URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyPerTryTimeoutInput` via: // -// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} -type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput interface { +// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} +type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput - ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput + ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput + ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput } -type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs struct { +type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs struct { // 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. Nanos pulumi.IntPtrInput `pulumi:"nanos"` @@ -88435,123 +87404,123 @@ type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs struct { Seconds pulumi.StringPtrInput `pulumi:"seconds"` } -func (URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return i.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) +func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput).ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput).ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs, URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtr and URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput` via: +// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs, URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr and URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} +// URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput interface { +type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput - ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput } -type urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs +type urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs -func URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtr(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput { - return (*urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType)(v) +func URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtr(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeoutArgs) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput { + return (*urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (*urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +func (i *urlmapDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } -type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *URLMapDefaultRouteActionRetryPolicyPerTryTimeout { return &v - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) + }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) } // 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 -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +func (URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeout) URLMapDefaultRouteActionRetryPolicyPerTryTimeout { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout + var ret URLMapDefaultRouteActionRetryPolicyPerTryTimeout return ret - }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) + }).(URLMapDefaultRouteActionRetryPolicyPerTryTimeoutOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *int { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *int { if v == nil { return nil } @@ -88561,8 +87530,8 @@ func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Na // 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 -func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *string { +func (o URLMapDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionRetryPolicyPerTryTimeout) *string { if v == nil { return nil } @@ -88570,7 +87539,7 @@ func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Se }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionTimeout struct { +type URLMapDefaultRouteActionTimeout struct { // 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. Nanos *int `pulumi:"nanos"` @@ -88579,18 +87548,18 @@ type URLMapPathMatcherDefaultRouteActionTimeout struct { Seconds *string `pulumi:"seconds"` } -// URLMapPathMatcherDefaultRouteActionTimeoutInput is an input type that accepts URLMapPathMatcherDefaultRouteActionTimeoutArgs and URLMapPathMatcherDefaultRouteActionTimeoutOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionTimeoutInput` via: +// URLMapDefaultRouteActionTimeoutInput is an input type that accepts URLMapDefaultRouteActionTimeoutArgs and URLMapDefaultRouteActionTimeoutOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionTimeoutInput` via: // -// URLMapPathMatcherDefaultRouteActionTimeoutArgs{...} -type URLMapPathMatcherDefaultRouteActionTimeoutInput interface { +// URLMapDefaultRouteActionTimeoutArgs{...} +type URLMapDefaultRouteActionTimeoutInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionTimeoutOutput() URLMapPathMatcherDefaultRouteActionTimeoutOutput - ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionTimeoutOutput + ToURLMapDefaultRouteActionTimeoutOutput() URLMapDefaultRouteActionTimeoutOutput + ToURLMapDefaultRouteActionTimeoutOutputWithContext(context.Context) URLMapDefaultRouteActionTimeoutOutput } -type URLMapPathMatcherDefaultRouteActionTimeoutArgs struct { +type URLMapDefaultRouteActionTimeoutArgs struct { // 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. Nanos pulumi.IntPtrInput `pulumi:"nanos"` @@ -88599,123 +87568,123 @@ type URLMapPathMatcherDefaultRouteActionTimeoutArgs struct { Seconds pulumi.StringPtrInput `pulumi:"seconds"` } -func (URLMapPathMatcherDefaultRouteActionTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +func (URLMapDefaultRouteActionTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionTimeout)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutOutput() URLMapPathMatcherDefaultRouteActionTimeoutOutput { - return i.ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutOutput() URLMapDefaultRouteActionTimeoutOutput { + return i.ToURLMapDefaultRouteActionTimeoutOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionTimeoutOutput) +func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionTimeoutOutput) } -func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { + return i.ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionTimeoutOutput).ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionTimeoutArgs) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionTimeoutOutput).ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionTimeoutPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionTimeoutArgs, URLMapPathMatcherDefaultRouteActionTimeoutPtr and URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionTimeoutPtrInput` via: +// URLMapDefaultRouteActionTimeoutPtrInput is an input type that accepts URLMapDefaultRouteActionTimeoutArgs, URLMapDefaultRouteActionTimeoutPtr and URLMapDefaultRouteActionTimeoutPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionTimeoutPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionTimeoutArgs{...} +// URLMapDefaultRouteActionTimeoutArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionTimeoutPtrInput interface { +type URLMapDefaultRouteActionTimeoutPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput - ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput + ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput + ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Context) URLMapDefaultRouteActionTimeoutPtrOutput } -type urlmapPathMatcherDefaultRouteActionTimeoutPtrType URLMapPathMatcherDefaultRouteActionTimeoutArgs +type urlmapDefaultRouteActionTimeoutPtrType URLMapDefaultRouteActionTimeoutArgs -func URLMapPathMatcherDefaultRouteActionTimeoutPtr(v *URLMapPathMatcherDefaultRouteActionTimeoutArgs) URLMapPathMatcherDefaultRouteActionTimeoutPtrInput { - return (*urlmapPathMatcherDefaultRouteActionTimeoutPtrType)(v) +func URLMapDefaultRouteActionTimeoutPtr(v *URLMapDefaultRouteActionTimeoutArgs) URLMapDefaultRouteActionTimeoutPtrInput { + return (*urlmapDefaultRouteActionTimeoutPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +func (*urlmapDefaultRouteActionTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionTimeout)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionTimeoutPtrType) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { + return i.ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) +func (i *urlmapDefaultRouteActionTimeoutPtrType) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionTimeoutPtrOutput) } -type URLMapPathMatcherDefaultRouteActionTimeoutOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionTimeoutOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +func (URLMapDefaultRouteActionTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionTimeout)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutOutput() URLMapPathMatcherDefaultRouteActionTimeoutOutput { +func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutOutput() URLMapDefaultRouteActionTimeoutOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutOutput { +func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { + return o.ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionTimeout) *URLMapPathMatcherDefaultRouteActionTimeout { +func (o URLMapDefaultRouteActionTimeoutOutput) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionTimeout) *URLMapDefaultRouteActionTimeout { return &v - }).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) + }).(URLMapDefaultRouteActionTimeoutPtrOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +func (o URLMapDefaultRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) } // 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 -func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +func (o URLMapDefaultRouteActionTimeoutOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +func (URLMapDefaultRouteActionTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionTimeout)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { +func (o URLMapDefaultRouteActionTimeoutPtrOutput) ToURLMapDefaultRouteActionTimeoutPtrOutput() URLMapDefaultRouteActionTimeoutPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { +func (o URLMapDefaultRouteActionTimeoutPtrOutput) ToURLMapDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionTimeoutPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionTimeoutOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionTimeout) URLMapPathMatcherDefaultRouteActionTimeout { +func (o URLMapDefaultRouteActionTimeoutPtrOutput) Elem() URLMapDefaultRouteActionTimeoutOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionTimeout) URLMapDefaultRouteActionTimeout { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionTimeout + var ret URLMapDefaultRouteActionTimeout return ret - }).(URLMapPathMatcherDefaultRouteActionTimeoutOutput) + }).(URLMapDefaultRouteActionTimeoutOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionTimeout) *int { +func (o URLMapDefaultRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionTimeout) *int { if v == nil { return nil } @@ -88725,8 +87694,8 @@ func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Nanos() pulumi.IntP // 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 -func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionTimeout) *string { +func (o URLMapDefaultRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionTimeout) *string { if v == nil { return nil } @@ -88734,7 +87703,7 @@ func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Seconds() pulumi.St }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionUrlRewrite struct { +type URLMapDefaultRouteActionUrlRewrite struct { // Prior to forwarding the request to the selected service, the request's host header is replaced // with contents of hostRewrite. // The value must be between 1 and 255 characters. @@ -88745,18 +87714,18 @@ type URLMapPathMatcherDefaultRouteActionUrlRewrite struct { PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` } -// URLMapPathMatcherDefaultRouteActionUrlRewriteInput is an input type that accepts URLMapPathMatcherDefaultRouteActionUrlRewriteArgs and URLMapPathMatcherDefaultRouteActionUrlRewriteOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionUrlRewriteInput` via: +// URLMapDefaultRouteActionUrlRewriteInput is an input type that accepts URLMapDefaultRouteActionUrlRewriteArgs and URLMapDefaultRouteActionUrlRewriteOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionUrlRewriteInput` via: // -// URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{...} -type URLMapPathMatcherDefaultRouteActionUrlRewriteInput interface { +// URLMapDefaultRouteActionUrlRewriteArgs{...} +type URLMapDefaultRouteActionUrlRewriteInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutput() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput - ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionUrlRewriteOutput + ToURLMapDefaultRouteActionUrlRewriteOutput() URLMapDefaultRouteActionUrlRewriteOutput + ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(context.Context) URLMapDefaultRouteActionUrlRewriteOutput } -type URLMapPathMatcherDefaultRouteActionUrlRewriteArgs struct { +type URLMapDefaultRouteActionUrlRewriteArgs struct { // Prior to forwarding the request to the selected service, the request's host header is replaced // with contents of hostRewrite. // The value must be between 1 and 255 characters. @@ -88767,126 +87736,126 @@ type URLMapPathMatcherDefaultRouteActionUrlRewriteArgs struct { PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` } -func (URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +func (URLMapDefaultRouteActionUrlRewriteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutput() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { - return i.ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewriteOutput() URLMapDefaultRouteActionUrlRewriteOutput { + return i.ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) +func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewriteOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionUrlRewriteOutput) } -func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { + return i.ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput).ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionUrlRewriteArgs) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionUrlRewriteOutput).ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionUrlRewriteArgs, URLMapPathMatcherDefaultRouteActionUrlRewritePtr and URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput` via: +// URLMapDefaultRouteActionUrlRewritePtrInput is an input type that accepts URLMapDefaultRouteActionUrlRewriteArgs, URLMapDefaultRouteActionUrlRewritePtr and URLMapDefaultRouteActionUrlRewritePtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionUrlRewritePtrInput` via: // -// URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{...} +// URLMapDefaultRouteActionUrlRewriteArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput interface { +type URLMapDefaultRouteActionUrlRewritePtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput - ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput + ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput + ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput } -type urlmapPathMatcherDefaultRouteActionUrlRewritePtrType URLMapPathMatcherDefaultRouteActionUrlRewriteArgs +type urlmapDefaultRouteActionUrlRewritePtrType URLMapDefaultRouteActionUrlRewriteArgs -func URLMapPathMatcherDefaultRouteActionUrlRewritePtr(v *URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput { - return (*urlmapPathMatcherDefaultRouteActionUrlRewritePtrType)(v) +func URLMapDefaultRouteActionUrlRewritePtr(v *URLMapDefaultRouteActionUrlRewriteArgs) URLMapDefaultRouteActionUrlRewritePtrInput { + return (*urlmapDefaultRouteActionUrlRewritePtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionUrlRewritePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +func (*urlmapDefaultRouteActionUrlRewritePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionUrlRewritePtrType) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionUrlRewritePtrType) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { + return i.ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionUrlRewritePtrType) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) +func (i *urlmapDefaultRouteActionUrlRewritePtrType) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionUrlRewritePtrOutput) } -type URLMapPathMatcherDefaultRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +func (URLMapDefaultRouteActionUrlRewriteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutput() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { +func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewriteOutput() URLMapDefaultRouteActionUrlRewriteOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { +func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewriteOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { + return o.ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionUrlRewrite) *URLMapPathMatcherDefaultRouteActionUrlRewrite { +func (o URLMapDefaultRouteActionUrlRewriteOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionUrlRewrite) *URLMapDefaultRouteActionUrlRewrite { return &v - }).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) + }).(URLMapDefaultRouteActionUrlRewritePtrOutput) } // Prior to forwarding the request to the selected service, the request's host header is replaced // with contents of hostRewrite. // The value must be between 1 and 255 characters. -func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) +func (o URLMapDefaultRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) } // Prior to forwarding the request to the selected backend service, the matching portion of the // request's path is replaced by pathPrefixRewrite. // The value must be between 1 and 1024 characters. -func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) +func (o URLMapDefaultRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +func (URLMapDefaultRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionUrlRewrite)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { +func (o URLMapDefaultRouteActionUrlRewritePtrOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutput() URLMapDefaultRouteActionUrlRewritePtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { +func (o URLMapDefaultRouteActionUrlRewritePtrOutput) ToURLMapDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionUrlRewritePtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) Elem() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionUrlRewrite) URLMapPathMatcherDefaultRouteActionUrlRewrite { +func (o URLMapDefaultRouteActionUrlRewritePtrOutput) Elem() URLMapDefaultRouteActionUrlRewriteOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionUrlRewrite) URLMapDefaultRouteActionUrlRewrite { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionUrlRewrite + var ret URLMapDefaultRouteActionUrlRewrite return ret - }).(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) + }).(URLMapDefaultRouteActionUrlRewriteOutput) } // Prior to forwarding the request to the selected service, the request's host header is replaced // with contents of hostRewrite. // The value must be between 1 and 255 characters. -func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { +func (o URLMapDefaultRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionUrlRewrite) *string { if v == nil { return nil } @@ -88897,8 +87866,8 @@ func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) HostRewrite() pu // Prior to forwarding the request to the selected backend service, the matching portion of the // request's path is replaced by pathPrefixRewrite. // The value must be between 1 and 1024 characters. -func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { +func (o URLMapDefaultRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionUrlRewrite) *string { if v == nil { return nil } @@ -88906,7 +87875,7 @@ func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) PathPrefixRewrit }).(pulumi.StringPtrOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendService struct { +type URLMapDefaultRouteActionWeightedBackendService struct { // The full or partial URL to the default BackendService resource. Before forwarding the // request to backendService, the loadbalancer applies any relevant headerActions // specified as part of this backendServiceWeight. @@ -88916,7 +87885,7 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendService struct { // headerAction specified here take effect before headerAction in the enclosing // HttpRouteRule, PathMatcher and UrlMap. // Structure is documented below. - HeaderAction *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` + HeaderAction *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` // Specifies the fraction of traffic sent to backendService, computed as // weight / (sum of all weightedBackendService weights in routeAction) . // The selection of a backend service is determined only for new traffic. Once a user's request @@ -88926,18 +87895,18 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendService struct { Weight *int `pulumi:"weight"` } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceArgs and URLMapDefaultRouteActionWeightedBackendServiceOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs{...} -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput interface { +// URLMapDefaultRouteActionWeightedBackendServiceArgs{...} +type URLMapDefaultRouteActionWeightedBackendServiceInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput + ToURLMapDefaultRouteActionWeightedBackendServiceOutput() URLMapDefaultRouteActionWeightedBackendServiceOutput + ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceOutput } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs struct { +type URLMapDefaultRouteActionWeightedBackendServiceArgs struct { // The full or partial URL to the default BackendService resource. Before forwarding the // request to backendService, the loadbalancer applies any relevant headerActions // specified as part of this backendServiceWeight. @@ -88947,7 +87916,7 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs struct { // headerAction specified here take effect before headerAction in the enclosing // HttpRouteRule, PathMatcher and UrlMap. // Structure is documented below. - HeaderAction URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` + HeaderAction URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` // Specifies the fraction of traffic sent to backendService, computed as // weight / (sum of all weightedBackendService weights in routeAction) . // The selection of a backend service is determined only for new traffic. Once a user's request @@ -88957,62 +87926,62 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs struct { Weight pulumi.IntPtrInput `pulumi:"weight"` } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceArgs) ToURLMapDefaultRouteActionWeightedBackendServiceOutput() URLMapDefaultRouteActionWeightedBackendServiceOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) +func (i URLMapDefaultRouteActionWeightedBackendServiceArgs) ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceOutput) } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceArrayInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceArray and URLMapDefaultRouteActionWeightedBackendServiceArrayOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceArrayInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray{ URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs{...} } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput interface { +// URLMapDefaultRouteActionWeightedBackendServiceArray{ URLMapDefaultRouteActionWeightedBackendServiceArgs{...} } +type URLMapDefaultRouteActionWeightedBackendServiceArrayInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput + ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput + ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceArrayOutput } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput +type URLMapDefaultRouteActionWeightedBackendServiceArray []URLMapDefaultRouteActionWeightedBackendServiceInput -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceArray) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) +func (i URLMapDefaultRouteActionWeightedBackendServiceArray) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) ToURLMapDefaultRouteActionWeightedBackendServiceOutput() URLMapDefaultRouteActionWeightedBackendServiceOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) ToURLMapDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceOutput { return o } // The full or partial URL to the default BackendService resource. Before forwarding the // request to backendService, the loadbalancer applies any relevant headerActions // specified as part of this backendServiceWeight. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendService) *string { return v.BackendService }).(pulumi.StringPtrOutput) +func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendService) *string { return v.BackendService }).(pulumi.StringPtrOutput) } // Specifies changes to request and response headers that need to take effect for @@ -89020,10 +87989,10 @@ func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) Backend // headerAction specified here take effect before headerAction in the enclosing // HttpRouteRule, PathMatcher and UrlMap. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) HeaderAction() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendService) *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction { +func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) HeaderAction() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendService) *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction { return v.HeaderAction - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) } // Specifies the fraction of traffic sent to backendService, computed as @@ -89032,219 +88001,219 @@ func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) HeaderA // has been directed to a backendService, subsequent requests will be sent to the same backendService // as determined by the BackendService's session affinity policy. // The value must be between 0 and 1000 -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendService) *int { return v.Weight }).(pulumi.IntPtrOutput) +func (o URLMapDefaultRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendService) *int { return v.Weight }).(pulumi.IntPtrOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendService)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceArrayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultRouteActionWeightedBackendService { - return vs[0].([]URLMapPathMatcherDefaultRouteActionWeightedBackendService)[vs[1].(int)] - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) +func (o URLMapDefaultRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) URLMapDefaultRouteActionWeightedBackendServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultRouteActionWeightedBackendService { + return vs[0].([]URLMapDefaultRouteActionWeightedBackendService)[vs[1].(int)] + }).(URLMapDefaultRouteActionWeightedBackendServiceOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction struct { +type URLMapDefaultRouteActionWeightedBackendServiceHeaderAction struct { // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. - RequestHeadersToAdds []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + RequestHeadersToAdds []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` // Headers to add the response prior to sending the response back to the client. // Structure is documented below. - ResponseHeadersToAdds []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + ResponseHeadersToAdds []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput interface { +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs struct { +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs struct { // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. - RequestHeadersToAdds URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + RequestHeadersToAdds URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` // Headers to add the response prior to sending the response back to the client. // Structure is documented below. - ResponseHeadersToAdds URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + ResponseHeadersToAdds URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput).ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput).ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs, URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtr and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs, URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput interface { +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput } -type urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs +type urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs -func URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtr(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput { - return (*urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType)(v) +func URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtr(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderActionArgs) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput { + return (*urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType)(v) } -func (*urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (*urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +func (i *urlmapDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction { return &v - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) } // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { return v.RequestHeadersToAdds - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { return v.RequestHeadersToRemoves }).(pulumi.StringArrayOutput) } // Headers to add the response prior to sending the response back to the client. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { return v.ResponseHeadersToAdds - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { return v.ResponseHeadersToRemoves }).(pulumi.StringArrayOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) URLMapDefaultRouteActionWeightedBackendServiceHeaderAction { if v != nil { return *v } - var ret URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction + var ret URLMapDefaultRouteActionWeightedBackendServiceHeaderAction return ret - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionOutput) } // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { if v == nil { return nil } return v.RequestHeadersToAdds - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { if v == nil { return nil } @@ -89254,19 +88223,19 @@ func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtr // Headers to add the response prior to sending the response back to the client. // Structure is documented below. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { if v == nil { return nil } return v.ResponseHeadersToAdds - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapDefaultRouteActionWeightedBackendServiceHeaderAction) []string { if v == nil { return nil } @@ -89274,7 +88243,7 @@ func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtr }).(pulumi.StringArrayOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { // The name of the header to add. HeaderName *string `pulumi:"headerName"` // The value of the header to add. @@ -89284,18 +88253,18 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionReques Replace *bool `pulumi:"replace"` } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { // The name of the header to add. HeaderName pulumi.StringPtrInput `pulumi:"headerName"` // The value of the header to add. @@ -89305,100 +88274,100 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionReques Replace pulumi.BoolPtrInput `pulumi:"replace"` } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { return o } // The name of the header to add. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { return v.HeaderName }).(pulumi.StringPtrOutput) } // The value of the header to add. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *bool { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *bool { return v.Replace }).(pulumi.BoolPtrOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { - return vs[0].([]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return vs[0].([]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { // The name of the header to add. HeaderName *string `pulumi:"headerName"` // The value of the header to add. @@ -89408,18 +88377,18 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRespon Replace *bool `pulumi:"replace"` } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { // The name of the header to add. HeaderName pulumi.StringPtrInput `pulumi:"headerName"` // The value of the header to add. @@ -89429,100 +88398,100 @@ type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRespon Replace pulumi.BoolPtrInput `pulumi:"replace"` } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. +// You can construct a concrete instance of `URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: // -// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { +// URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { pulumi.Input - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput - ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return i.ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +func (i URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { return o } // The name of the header to add. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { return v.HeaderName }).(pulumi.StringPtrOutput) } // The value of the header to add. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { return v.HeaderValue }).(pulumi.StringPtrOutput) } // 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. -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *bool { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *bool { return v.Replace }).(pulumi.BoolPtrOutput) } -type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } +type URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +func (URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { return o } -func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { - return vs[0].([]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] - }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +func (o URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return vs[0].([]URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] + }).(URLMapDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) } -type URLMapPathMatcherDefaultUrlRedirect struct { +type URLMapDefaultUrlRedirect struct { // The host that will be used in the redirect response instead of the one that was // supplied in the request. The value must be between 1 and 255 characters. HostRedirect *string `pulumi:"hostRedirect"` @@ -89559,18 +88528,18 @@ type URLMapPathMatcherDefaultUrlRedirect struct { StripQuery bool `pulumi:"stripQuery"` } -// URLMapPathMatcherDefaultUrlRedirectInput is an input type that accepts URLMapPathMatcherDefaultUrlRedirectArgs and URLMapPathMatcherDefaultUrlRedirectOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultUrlRedirectInput` via: +// URLMapDefaultUrlRedirectInput is an input type that accepts URLMapDefaultUrlRedirectArgs and URLMapDefaultUrlRedirectOutput values. +// You can construct a concrete instance of `URLMapDefaultUrlRedirectInput` via: // -// URLMapPathMatcherDefaultUrlRedirectArgs{...} -type URLMapPathMatcherDefaultUrlRedirectInput interface { +// URLMapDefaultUrlRedirectArgs{...} +type URLMapDefaultUrlRedirectInput interface { pulumi.Input - ToURLMapPathMatcherDefaultUrlRedirectOutput() URLMapPathMatcherDefaultUrlRedirectOutput - ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Context) URLMapPathMatcherDefaultUrlRedirectOutput + ToURLMapDefaultUrlRedirectOutput() URLMapDefaultUrlRedirectOutput + ToURLMapDefaultUrlRedirectOutputWithContext(context.Context) URLMapDefaultUrlRedirectOutput } -type URLMapPathMatcherDefaultUrlRedirectArgs struct { +type URLMapDefaultUrlRedirectArgs struct { // The host that will be used in the redirect response instead of the one that was // supplied in the request. The value must be between 1 and 255 characters. HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` @@ -89607,95 +88576,95 @@ type URLMapPathMatcherDefaultUrlRedirectArgs struct { StripQuery pulumi.BoolInput `pulumi:"stripQuery"` } -func (URLMapPathMatcherDefaultUrlRedirectArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +func (URLMapDefaultUrlRedirectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultUrlRedirect)(nil)).Elem() } -func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectOutput() URLMapPathMatcherDefaultUrlRedirectOutput { - return i.ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Background()) +func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectOutput() URLMapDefaultUrlRedirectOutput { + return i.ToURLMapDefaultUrlRedirectOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultUrlRedirectOutput) +func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultUrlRedirectOutput) } -func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { - return i.ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { + return i.ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultUrlRedirectOutput).ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx) +func (i URLMapDefaultUrlRedirectArgs) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultUrlRedirectOutput).ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx) } -// URLMapPathMatcherDefaultUrlRedirectPtrInput is an input type that accepts URLMapPathMatcherDefaultUrlRedirectArgs, URLMapPathMatcherDefaultUrlRedirectPtr and URLMapPathMatcherDefaultUrlRedirectPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherDefaultUrlRedirectPtrInput` via: +// URLMapDefaultUrlRedirectPtrInput is an input type that accepts URLMapDefaultUrlRedirectArgs, URLMapDefaultUrlRedirectPtr and URLMapDefaultUrlRedirectPtrOutput values. +// You can construct a concrete instance of `URLMapDefaultUrlRedirectPtrInput` via: // -// URLMapPathMatcherDefaultUrlRedirectArgs{...} +// URLMapDefaultUrlRedirectArgs{...} // // or: // // nil -type URLMapPathMatcherDefaultUrlRedirectPtrInput interface { +type URLMapDefaultUrlRedirectPtrInput interface { pulumi.Input - ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput - ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput + ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput + ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Context) URLMapDefaultUrlRedirectPtrOutput } -type urlmapPathMatcherDefaultUrlRedirectPtrType URLMapPathMatcherDefaultUrlRedirectArgs +type urlmapDefaultUrlRedirectPtrType URLMapDefaultUrlRedirectArgs -func URLMapPathMatcherDefaultUrlRedirectPtr(v *URLMapPathMatcherDefaultUrlRedirectArgs) URLMapPathMatcherDefaultUrlRedirectPtrInput { - return (*urlmapPathMatcherDefaultUrlRedirectPtrType)(v) +func URLMapDefaultUrlRedirectPtr(v *URLMapDefaultUrlRedirectArgs) URLMapDefaultUrlRedirectPtrInput { + return (*urlmapDefaultUrlRedirectPtrType)(v) } -func (*urlmapPathMatcherDefaultUrlRedirectPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +func (*urlmapDefaultUrlRedirectPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultUrlRedirect)(nil)).Elem() } -func (i *urlmapPathMatcherDefaultUrlRedirectPtrType) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { - return i.ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (i *urlmapDefaultUrlRedirectPtrType) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { + return i.ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherDefaultUrlRedirectPtrType) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultUrlRedirectPtrOutput) +func (i *urlmapDefaultUrlRedirectPtrType) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapDefaultUrlRedirectPtrOutput) } -type URLMapPathMatcherDefaultUrlRedirectOutput struct{ *pulumi.OutputState } +type URLMapDefaultUrlRedirectOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultUrlRedirectOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +func (URLMapDefaultUrlRedirectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapDefaultUrlRedirect)(nil)).Elem() } -func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectOutput() URLMapPathMatcherDefaultUrlRedirectOutput { +func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectOutput() URLMapDefaultUrlRedirectOutput { return o } -func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectOutput { +func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectOutput { return o } -func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { - return o.ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { + return o.ToURLMapDefaultUrlRedirectPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultUrlRedirect) *URLMapPathMatcherDefaultUrlRedirect { +func (o URLMapDefaultUrlRedirectOutput) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapDefaultUrlRedirect) *URLMapDefaultUrlRedirect { return &v - }).(URLMapPathMatcherDefaultUrlRedirectPtrOutput) + }).(URLMapDefaultUrlRedirectPtrOutput) } // The host that will be used in the redirect response instead of the one that was // supplied in the request. The value must be between 1 and 255 characters. -func (o URLMapPathMatcherDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) +func (o URLMapDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) } // If set to true, the URL scheme in the redirected request is set to https. If set to // false, the URL scheme of the redirected request will remain the same as that of the // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this // true for TargetHttpsProxy is not permitted. The default is set to false. -func (o URLMapPathMatcherDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) +func (o URLMapDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) } // The path that will be used in the redirect response instead of the one that was @@ -89703,8 +88672,8 @@ func (o URLMapPathMatcherDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPt // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the // original request will be used for the redirect. The value must be between 1 and 1024 // characters. -func (o URLMapPathMatcherDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) +func (o URLMapDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) } // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, @@ -89712,8 +88681,8 @@ func (o URLMapPathMatcherDefaultUrlRedirectOutput) PathRedirect() pulumi.StringP // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or // neither. If neither is supplied, the path of the original request will be used for // the redirect. The value must be between 1 and 1024 characters. -func (o URLMapPathMatcherDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) +func (o URLMapDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) } // The HTTP Status code to use for this RedirectAction. Supported values are: @@ -89724,46 +88693,46 @@ func (o URLMapPathMatcherDefaultUrlRedirectOutput) PrefixRedirect() pulumi.Strin // will be retained. // - PERMANENT_REDIRECT, which corresponds to 308. In this case, // the request method will be retained. -func (o URLMapPathMatcherDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) +func (o URLMapDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) } // If set to true, any accompanying query portion of the original URL is removed prior // to redirecting the request. If set to false, the query portion of the original URL is // retained. The default is set to false. // This field is required to ensure an empty block is not set. The normal default value is false. -func (o URLMapPathMatcherDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { - return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) +func (o URLMapDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { + return o.ApplyT(func(v URLMapDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) } -type URLMapPathMatcherDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } +type URLMapDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +func (URLMapDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapDefaultUrlRedirect)(nil)).Elem() } -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { +func (o URLMapDefaultUrlRedirectPtrOutput) ToURLMapDefaultUrlRedirectPtrOutput() URLMapDefaultUrlRedirectPtrOutput { return o } -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { +func (o URLMapDefaultUrlRedirectPtrOutput) ToURLMapDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapDefaultUrlRedirectPtrOutput { return o } -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) Elem() URLMapPathMatcherDefaultUrlRedirectOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) URLMapPathMatcherDefaultUrlRedirect { +func (o URLMapDefaultUrlRedirectPtrOutput) Elem() URLMapDefaultUrlRedirectOutput { + return o.ApplyT(func(v *URLMapDefaultUrlRedirect) URLMapDefaultUrlRedirect { if v != nil { return *v } - var ret URLMapPathMatcherDefaultUrlRedirect + var ret URLMapDefaultUrlRedirect return ret - }).(URLMapPathMatcherDefaultUrlRedirectOutput) + }).(URLMapDefaultUrlRedirectOutput) } // The host that will be used in the redirect response instead of the one that was // supplied in the request. The value must be between 1 and 255 characters. -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { +func (o URLMapDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { if v == nil { return nil } @@ -89775,8 +88744,8 @@ func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.Stri // false, the URL scheme of the redirected request will remain the same as that of the // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this // true for TargetHttpsProxy is not permitted. The default is set to false. -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *bool { +func (o URLMapDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *bool { if v == nil { return nil } @@ -89789,8 +88758,8 @@ func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.Boo // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the // original request will be used for the redirect. The value must be between 1 and 1024 // characters. -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { +func (o URLMapDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { if v == nil { return nil } @@ -89803,8 +88772,8 @@ func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.Stri // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or // neither. If neither is supplied, the path of the original request will be used for // the redirect. The value must be between 1 and 1024 characters. -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { +func (o URLMapDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { if v == nil { return nil } @@ -89820,8 +88789,8 @@ func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.St // will be retained. // - PERMANENT_REDIRECT, which corresponds to 308. In this case, // the request method will be retained. -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { +func (o URLMapDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *string { if v == nil { return nil } @@ -89833,8 +88802,8 @@ func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) RedirectResponseCode() pul // to redirecting the request. If set to false, the query portion of the original URL is // retained. The default is set to false. // This field is required to ensure an empty block is not set. The normal default value is false. -func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *bool { +func (o URLMapDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapDefaultUrlRedirect) *bool { if v == nil { return nil } @@ -89842,191 +88811,187 @@ func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPt }).(pulumi.BoolPtrOutput) } -type URLMapPathMatcherHeaderAction struct { +type URLMapHeaderAction struct { // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. - RequestHeadersToAdds []URLMapPathMatcherHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + RequestHeadersToAdds []URLMapHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` // Headers to add the response prior to sending the response back to the client. // Structure is documented below. - ResponseHeadersToAdds []URLMapPathMatcherHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + ResponseHeadersToAdds []URLMapHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` } -// URLMapPathMatcherHeaderActionInput is an input type that accepts URLMapPathMatcherHeaderActionArgs and URLMapPathMatcherHeaderActionOutput values. -// You can construct a concrete instance of `URLMapPathMatcherHeaderActionInput` via: +// URLMapHeaderActionInput is an input type that accepts URLMapHeaderActionArgs and URLMapHeaderActionOutput values. +// You can construct a concrete instance of `URLMapHeaderActionInput` via: // -// URLMapPathMatcherHeaderActionArgs{...} -type URLMapPathMatcherHeaderActionInput interface { +// URLMapHeaderActionArgs{...} +type URLMapHeaderActionInput interface { pulumi.Input - ToURLMapPathMatcherHeaderActionOutput() URLMapPathMatcherHeaderActionOutput - ToURLMapPathMatcherHeaderActionOutputWithContext(context.Context) URLMapPathMatcherHeaderActionOutput + ToURLMapHeaderActionOutput() URLMapHeaderActionOutput + ToURLMapHeaderActionOutputWithContext(context.Context) URLMapHeaderActionOutput } -type URLMapPathMatcherHeaderActionArgs struct { +type URLMapHeaderActionArgs struct { // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. - RequestHeadersToAdds URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + RequestHeadersToAdds URLMapHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` // Headers to add the response prior to sending the response back to the client. // Structure is documented below. - ResponseHeadersToAdds URLMapPathMatcherHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + ResponseHeadersToAdds URLMapHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` } -func (URLMapPathMatcherHeaderActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherHeaderAction)(nil)).Elem() +func (URLMapHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHeaderAction)(nil)).Elem() } -func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionOutput() URLMapPathMatcherHeaderActionOutput { - return i.ToURLMapPathMatcherHeaderActionOutputWithContext(context.Background()) +func (i URLMapHeaderActionArgs) ToURLMapHeaderActionOutput() URLMapHeaderActionOutput { + return i.ToURLMapHeaderActionOutputWithContext(context.Background()) } -func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionOutput) +func (i URLMapHeaderActionArgs) ToURLMapHeaderActionOutputWithContext(ctx context.Context) URLMapHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionOutput) } -func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { - return i.ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Background()) +func (i URLMapHeaderActionArgs) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { + return i.ToURLMapHeaderActionPtrOutputWithContext(context.Background()) } -func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionOutput).ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx) +func (i URLMapHeaderActionArgs) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionOutput).ToURLMapHeaderActionPtrOutputWithContext(ctx) } -// URLMapPathMatcherHeaderActionPtrInput is an input type that accepts URLMapPathMatcherHeaderActionArgs, URLMapPathMatcherHeaderActionPtr and URLMapPathMatcherHeaderActionPtrOutput values. -// You can construct a concrete instance of `URLMapPathMatcherHeaderActionPtrInput` via: +// URLMapHeaderActionPtrInput is an input type that accepts URLMapHeaderActionArgs, URLMapHeaderActionPtr and URLMapHeaderActionPtrOutput values. +// You can construct a concrete instance of `URLMapHeaderActionPtrInput` via: // -// URLMapPathMatcherHeaderActionArgs{...} +// URLMapHeaderActionArgs{...} // // or: // // nil -type URLMapPathMatcherHeaderActionPtrInput interface { +type URLMapHeaderActionPtrInput interface { pulumi.Input - ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput - ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Context) URLMapPathMatcherHeaderActionPtrOutput + ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput + ToURLMapHeaderActionPtrOutputWithContext(context.Context) URLMapHeaderActionPtrOutput } -type urlmapPathMatcherHeaderActionPtrType URLMapPathMatcherHeaderActionArgs +type urlmapHeaderActionPtrType URLMapHeaderActionArgs -func URLMapPathMatcherHeaderActionPtr(v *URLMapPathMatcherHeaderActionArgs) URLMapPathMatcherHeaderActionPtrInput { - return (*urlmapPathMatcherHeaderActionPtrType)(v) +func URLMapHeaderActionPtr(v *URLMapHeaderActionArgs) URLMapHeaderActionPtrInput { + return (*urlmapHeaderActionPtrType)(v) } -func (*urlmapPathMatcherHeaderActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherHeaderAction)(nil)).Elem() +func (*urlmapHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapHeaderAction)(nil)).Elem() } -func (i *urlmapPathMatcherHeaderActionPtrType) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { - return i.ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Background()) +func (i *urlmapHeaderActionPtrType) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { + return i.ToURLMapHeaderActionPtrOutputWithContext(context.Background()) } -func (i *urlmapPathMatcherHeaderActionPtrType) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionPtrOutput) +func (i *urlmapHeaderActionPtrType) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionPtrOutput) } -type URLMapPathMatcherHeaderActionOutput struct{ *pulumi.OutputState } +type URLMapHeaderActionOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherHeaderActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherHeaderAction)(nil)).Elem() +func (URLMapHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHeaderAction)(nil)).Elem() } -func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionOutput() URLMapPathMatcherHeaderActionOutput { +func (o URLMapHeaderActionOutput) ToURLMapHeaderActionOutput() URLMapHeaderActionOutput { return o } -func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionOutput { +func (o URLMapHeaderActionOutput) ToURLMapHeaderActionOutputWithContext(ctx context.Context) URLMapHeaderActionOutput { return o } -func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { - return o.ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Background()) +func (o URLMapHeaderActionOutput) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { + return o.ToURLMapHeaderActionPtrOutputWithContext(context.Background()) } -func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherHeaderAction) *URLMapPathMatcherHeaderAction { +func (o URLMapHeaderActionOutput) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapHeaderAction) *URLMapHeaderAction { return &v - }).(URLMapPathMatcherHeaderActionPtrOutput) + }).(URLMapHeaderActionPtrOutput) } // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. -func (o URLMapPathMatcherHeaderActionOutput) RequestHeadersToAdds() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionRequestHeadersToAdd { - return v.RequestHeadersToAdds - }).(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) +func (o URLMapHeaderActionOutput) RequestHeadersToAdds() URLMapHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapHeaderAction) []URLMapHeaderActionRequestHeadersToAdd { return v.RequestHeadersToAdds }).(URLMapHeaderActionRequestHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. -func (o URLMapPathMatcherHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []string { return v.RequestHeadersToRemoves }).(pulumi.StringArrayOutput) +func (o URLMapHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapHeaderAction) []string { return v.RequestHeadersToRemoves }).(pulumi.StringArrayOutput) } // Headers to add the response prior to sending the response back to the client. // Structure is documented below. -func (o URLMapPathMatcherHeaderActionOutput) ResponseHeadersToAdds() URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionResponseHeadersToAdd { - return v.ResponseHeadersToAdds - }).(URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput) +func (o URLMapHeaderActionOutput) ResponseHeadersToAdds() URLMapHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapHeaderAction) []URLMapHeaderActionResponseHeadersToAdd { return v.ResponseHeadersToAdds }).(URLMapHeaderActionResponseHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. -func (o URLMapPathMatcherHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []string { return v.ResponseHeadersToRemoves }).(pulumi.StringArrayOutput) +func (o URLMapHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapHeaderAction) []string { return v.ResponseHeadersToRemoves }).(pulumi.StringArrayOutput) } -type URLMapPathMatcherHeaderActionPtrOutput struct{ *pulumi.OutputState } +type URLMapHeaderActionPtrOutput struct{ *pulumi.OutputState } -func (URLMapPathMatcherHeaderActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**URLMapPathMatcherHeaderAction)(nil)).Elem() +func (URLMapHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapHeaderAction)(nil)).Elem() } -func (o URLMapPathMatcherHeaderActionPtrOutput) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { +func (o URLMapHeaderActionPtrOutput) ToURLMapHeaderActionPtrOutput() URLMapHeaderActionPtrOutput { return o } -func (o URLMapPathMatcherHeaderActionPtrOutput) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { +func (o URLMapHeaderActionPtrOutput) ToURLMapHeaderActionPtrOutputWithContext(ctx context.Context) URLMapHeaderActionPtrOutput { return o } -func (o URLMapPathMatcherHeaderActionPtrOutput) Elem() URLMapPathMatcherHeaderActionOutput { - return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) URLMapPathMatcherHeaderAction { +func (o URLMapHeaderActionPtrOutput) Elem() URLMapHeaderActionOutput { + return o.ApplyT(func(v *URLMapHeaderAction) URLMapHeaderAction { if v != nil { return *v } - var ret URLMapPathMatcherHeaderAction + var ret URLMapHeaderAction return ret - }).(URLMapPathMatcherHeaderActionOutput) + }).(URLMapHeaderActionOutput) } // Headers to add to a matching request prior to forwarding the request to the backendService. // Structure is documented below. -func (o URLMapPathMatcherHeaderActionPtrOutput) RequestHeadersToAdds() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionRequestHeadersToAdd { +func (o URLMapHeaderActionPtrOutput) RequestHeadersToAdds() URLMapHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapHeaderAction) []URLMapHeaderActionRequestHeadersToAdd { if v == nil { return nil } return v.RequestHeadersToAdds - }).(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) + }).(URLMapHeaderActionRequestHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the request prior to // forwarding the request to the backendService. -func (o URLMapPathMatcherHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []string { +func (o URLMapHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapHeaderAction) []string { if v == nil { return nil } @@ -90036,19 +89001,19 @@ func (o URLMapPathMatcherHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi // Headers to add the response prior to sending the response back to the client. // Structure is documented below. -func (o URLMapPathMatcherHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionResponseHeadersToAdd { +func (o URLMapHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapHeaderAction) []URLMapHeaderActionResponseHeadersToAdd { if v == nil { return nil } return v.ResponseHeadersToAdds - }).(URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput) + }).(URLMapHeaderActionResponseHeadersToAddArrayOutput) } // A list of header names for headers that need to be removed from the response prior to sending the // response back to the client. -func (o URLMapPathMatcherHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { - return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []string { +func (o URLMapHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapHeaderAction) []string { if v == nil { return nil } @@ -90056,124 +89021,6 @@ func (o URLMapPathMatcherHeaderActionPtrOutput) ResponseHeadersToRemoves() pulum }).(pulumi.StringArrayOutput) } -type URLMapPathMatcherHeaderActionRequestHeadersToAdd struct { - // The name of the header to add. - HeaderName string `pulumi:"headerName"` - // The value of the header to add. - HeaderValue string `pulumi:"headerValue"` - // 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. - Replace bool `pulumi:"replace"` -} - -// URLMapPathMatcherHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapPathMatcherHeaderActionRequestHeadersToAddArgs and URLMapPathMatcherHeaderActionRequestHeadersToAddOutput values. -// You can construct a concrete instance of `URLMapPathMatcherHeaderActionRequestHeadersToAddInput` via: -// -// URLMapPathMatcherHeaderActionRequestHeadersToAddArgs{...} -type URLMapPathMatcherHeaderActionRequestHeadersToAddInput interface { - pulumi.Input - - ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddOutput - ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput -} - -type URLMapPathMatcherHeaderActionRequestHeadersToAddArgs struct { - // The name of the header to add. - HeaderName pulumi.StringInput `pulumi:"headerName"` - // The value of the header to add. - HeaderValue pulumi.StringInput `pulumi:"headerValue"` - // 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. - Replace pulumi.BoolInput `pulumi:"replace"` -} - -func (URLMapPathMatcherHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { - return i.ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) -} - -func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) -} - -// URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapPathMatcherHeaderActionRequestHeadersToAddArray and URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput values. -// You can construct a concrete instance of `URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput` via: -// -// URLMapPathMatcherHeaderActionRequestHeadersToAddArray{ URLMapPathMatcherHeaderActionRequestHeadersToAddArgs{...} } -type URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput interface { - pulumi.Input - - ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput - ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput -} - -type URLMapPathMatcherHeaderActionRequestHeadersToAddArray []URLMapPathMatcherHeaderActionRequestHeadersToAddInput - -func (URLMapPathMatcherHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { - return i.ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) -} - -func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) -} - -type URLMapPathMatcherHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } - -func (URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { - return reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { - return o -} - -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { - return o -} - -// The name of the header to add. -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { - return o.ApplyT(func(v URLMapPathMatcherHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) -} - -// The value of the header to add. -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { - return o.ApplyT(func(v URLMapPathMatcherHeaderActionRequestHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) -} - -// 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. -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { - return o.ApplyT(func(v URLMapPathMatcherHeaderActionRequestHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) -} - -type URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } - -func (URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() -} - -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { - return o -} - -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { - return o -} - -func (o URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherHeaderActionRequestHeadersToAdd { - return vs[0].([]URLMapPathMatcherHeaderActionRequestHeadersToAdd)[vs[1].(int)] - }).(URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) -} - func init() { pulumi.RegisterInputType(reflect.TypeOf((*AutoscalerAutoscalingPolicyInput)(nil)).Elem(), AutoscalerAutoscalingPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AutoscalerAutoscalingPolicyPtrInput)(nil)).Elem(), AutoscalerAutoscalingPolicyArgs{}) @@ -90247,6 +89094,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceOutlierDetectionIntervalPtrInput)(nil)).Elem(), BackendServiceOutlierDetectionIntervalArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceSecuritySettingsInput)(nil)).Elem(), BackendServiceSecuritySettingsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceSecuritySettingsPtrInput)(nil)).Elem(), BackendServiceSecuritySettingsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceSecuritySettingsAwsV4AuthenticationInput)(nil)).Elem(), BackendServiceSecuritySettingsAwsV4AuthenticationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackendServiceSecuritySettingsAwsV4AuthenticationPtrInput)(nil)).Elem(), BackendServiceSecuritySettingsAwsV4AuthenticationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DiskAsyncPrimaryDiskInput)(nil)).Elem(), DiskAsyncPrimaryDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DiskAsyncPrimaryDiskPtrInput)(nil)).Elem(), DiskAsyncPrimaryDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*DiskAsyncReplicationSecondaryDiskInput)(nil)).Elem(), DiskAsyncReplicationSecondaryDiskArgs{}) @@ -90961,6 +89810,44 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayInput)(nil)).Elem(), ReservationSpecificReservationInstancePropertiesGuestAcceleratorArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesLocalSsdInput)(nil)).Elem(), ReservationSpecificReservationInstancePropertiesLocalSsdArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ReservationSpecificReservationInstancePropertiesLocalSsdArrayInput)(nil)).Elem(), ReservationSpecificReservationInstancePropertiesLocalSsdArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestRequestedRunDurationInput)(nil)).Elem(), ResizeRequestRequestedRunDurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestRequestedRunDurationPtrInput)(nil)).Elem(), ResizeRequestRequestedRunDurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusInput)(nil)).Elem(), ResizeRequestStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusArrayInput)(nil)).Elem(), ResizeRequestStatusArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorInput)(nil)).Elem(), ResizeRequestStatusErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorArrayInput)(nil)).Elem(), ResizeRequestStatusErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorInput)(nil)).Elem(), ResizeRequestStatusErrorErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorArrayInput)(nil)).Elem(), ResizeRequestStatusErrorErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailArrayInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfoInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailErrorInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailHelpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpArrayInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailHelpArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLinkInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailHelpLinkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfoInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayInput)(nil)).Elem(), ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptInput)(nil)).Elem(), ResizeRequestStatusLastAttemptArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayInput)(nil)).Elem(), ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicyInput)(nil)).Elem(), ResourcePolicyDiskConsistencyGroupPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyDiskConsistencyGroupPolicyPtrInput)(nil)).Elem(), ResourcePolicyDiskConsistencyGroupPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ResourcePolicyGroupPlacementPolicyInput)(nil)).Elem(), ResourcePolicyGroupPlacementPolicyArgs{}) @@ -91003,8 +89890,16 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*RouterPeerAdvertisedIpRangeArrayInput)(nil)).Elem(), RouterPeerAdvertisedIpRangeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterPeerBfdInput)(nil)).Elem(), RouterPeerBfdArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterPeerBfdPtrInput)(nil)).Elem(), RouterPeerBfdArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterPeerCustomLearnedIpRangeInput)(nil)).Elem(), RouterPeerCustomLearnedIpRangeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterPeerCustomLearnedIpRangeArrayInput)(nil)).Elem(), RouterPeerCustomLearnedIpRangeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterPeerMd5AuthenticationKeyInput)(nil)).Elem(), RouterPeerMd5AuthenticationKeyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterPeerMd5AuthenticationKeyPtrInput)(nil)).Elem(), RouterPeerMd5AuthenticationKeyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyTermInput)(nil)).Elem(), RouterRoutePolicyTermArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyTermArrayInput)(nil)).Elem(), RouterRoutePolicyTermArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyTermActionInput)(nil)).Elem(), RouterRoutePolicyTermActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyTermActionArrayInput)(nil)).Elem(), RouterRoutePolicyTermActionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyTermMatchInput)(nil)).Elem(), RouterRoutePolicyTermMatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyTermMatchPtrInput)(nil)).Elem(), RouterRoutePolicyTermMatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterStatusBestRouteInput)(nil)).Elem(), RouterStatusBestRouteArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterStatusBestRouteArrayInput)(nil)).Elem(), RouterStatusBestRouteArray{}) pulumi.RegisterInputType(reflect.TypeOf((*RouterStatusBestRoutesForRouterInput)(nil)).Elem(), RouterStatusBestRoutesForRouterArgs{}) @@ -91127,54 +90022,6 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*URLMapDefaultUrlRedirectPtrInput)(nil)).Elem(), URLMapDefaultUrlRedirectArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionInput)(nil)).Elem(), URLMapHeaderActionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionPtrInput)(nil)).Elem(), URLMapHeaderActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAddInput)(nil)).Elem(), URLMapHeaderActionRequestHeadersToAddArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), URLMapHeaderActionRequestHeadersToAddArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAddInput)(nil)).Elem(), URLMapHeaderActionResponseHeadersToAddArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAddArrayInput)(nil)).Elem(), URLMapHeaderActionResponseHeadersToAddArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapHostRuleInput)(nil)).Elem(), URLMapHostRuleArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapHostRuleArrayInput)(nil)).Elem(), URLMapHostRuleArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherInput)(nil)).Elem(), URLMapPathMatcherArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherArrayInput)(nil)).Elem(), URLMapPathMatcherArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeoutInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionTimeoutArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeoutPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionTimeoutArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewriteInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirectInput)(nil)).Elem(), URLMapPathMatcherDefaultUrlRedirectArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirectPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultUrlRedirectArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionInput)(nil)).Elem(), URLMapPathMatcherHeaderActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionPtrInput)(nil)).Elem(), URLMapPathMatcherHeaderActionArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAddInput)(nil)).Elem(), URLMapPathMatcherHeaderActionRequestHeadersToAddArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), URLMapPathMatcherHeaderActionRequestHeadersToAddArray{}) pulumi.RegisterOutputType(AutoscalerAutoscalingPolicyOutput{}) pulumi.RegisterOutputType(AutoscalerAutoscalingPolicyPtrOutput{}) pulumi.RegisterOutputType(AutoscalerAutoscalingPolicyCpuUtilizationOutput{}) @@ -91247,6 +90094,8 @@ func init() { pulumi.RegisterOutputType(BackendServiceOutlierDetectionIntervalPtrOutput{}) pulumi.RegisterOutputType(BackendServiceSecuritySettingsOutput{}) pulumi.RegisterOutputType(BackendServiceSecuritySettingsPtrOutput{}) + pulumi.RegisterOutputType(BackendServiceSecuritySettingsAwsV4AuthenticationOutput{}) + pulumi.RegisterOutputType(BackendServiceSecuritySettingsAwsV4AuthenticationPtrOutput{}) pulumi.RegisterOutputType(DiskAsyncPrimaryDiskOutput{}) pulumi.RegisterOutputType(DiskAsyncPrimaryDiskPtrOutput{}) pulumi.RegisterOutputType(DiskAsyncReplicationSecondaryDiskOutput{}) @@ -91961,6 +90810,44 @@ func init() { pulumi.RegisterOutputType(ReservationSpecificReservationInstancePropertiesGuestAcceleratorArrayOutput{}) pulumi.RegisterOutputType(ReservationSpecificReservationInstancePropertiesLocalSsdOutput{}) pulumi.RegisterOutputType(ReservationSpecificReservationInstancePropertiesLocalSsdArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestRequestedRunDurationOutput{}) + pulumi.RegisterOutputType(ResizeRequestRequestedRunDurationPtrOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailErrorInfoOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailHelpOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailHelpArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailHelpLinkOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoOutput{}) + pulumi.RegisterOutputType(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArrayOutput{}) pulumi.RegisterOutputType(ResourcePolicyDiskConsistencyGroupPolicyOutput{}) pulumi.RegisterOutputType(ResourcePolicyDiskConsistencyGroupPolicyPtrOutput{}) pulumi.RegisterOutputType(ResourcePolicyGroupPlacementPolicyOutput{}) @@ -92003,8 +90890,16 @@ func init() { pulumi.RegisterOutputType(RouterPeerAdvertisedIpRangeArrayOutput{}) pulumi.RegisterOutputType(RouterPeerBfdOutput{}) pulumi.RegisterOutputType(RouterPeerBfdPtrOutput{}) + pulumi.RegisterOutputType(RouterPeerCustomLearnedIpRangeOutput{}) + pulumi.RegisterOutputType(RouterPeerCustomLearnedIpRangeArrayOutput{}) pulumi.RegisterOutputType(RouterPeerMd5AuthenticationKeyOutput{}) pulumi.RegisterOutputType(RouterPeerMd5AuthenticationKeyPtrOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyTermOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyTermArrayOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyTermActionOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyTermActionArrayOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyTermMatchOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyTermMatchPtrOutput{}) pulumi.RegisterOutputType(RouterStatusBestRouteOutput{}) pulumi.RegisterOutputType(RouterStatusBestRouteArrayOutput{}) pulumi.RegisterOutputType(RouterStatusBestRoutesForRouterOutput{}) @@ -92127,52 +91022,4 @@ func init() { pulumi.RegisterOutputType(URLMapDefaultUrlRedirectPtrOutput{}) pulumi.RegisterOutputType(URLMapHeaderActionOutput{}) pulumi.RegisterOutputType(URLMapHeaderActionPtrOutput{}) - pulumi.RegisterOutputType(URLMapHeaderActionRequestHeadersToAddOutput{}) - pulumi.RegisterOutputType(URLMapHeaderActionRequestHeadersToAddArrayOutput{}) - pulumi.RegisterOutputType(URLMapHeaderActionResponseHeadersToAddOutput{}) - pulumi.RegisterOutputType(URLMapHeaderActionResponseHeadersToAddArrayOutput{}) - pulumi.RegisterOutputType(URLMapHostRuleOutput{}) - pulumi.RegisterOutputType(URLMapHostRuleArrayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherArrayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionTimeoutOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultUrlRedirectOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherDefaultUrlRedirectPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionPtrOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionRequestHeadersToAddOutput{}) - pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput{}) } diff --git a/sdk/go/gcp/compute/pulumiTypes1.go b/sdk/go/gcp/compute/pulumiTypes1.go index 84ba68b694..e69ca6ecab 100644 --- a/sdk/go/gcp/compute/pulumiTypes1.go +++ b/sdk/go/gcp/compute/pulumiTypes1.go @@ -13,6 +13,4430 @@ import ( var _ = internal.GetEnvOrDefault +type URLMapHeaderActionRequestHeadersToAdd struct { + // The name of the header to add. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // 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. + Replace bool `pulumi:"replace"` +} + +// URLMapHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapHeaderActionRequestHeadersToAddArgs and URLMapHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `URLMapHeaderActionRequestHeadersToAddInput` via: +// +// URLMapHeaderActionRequestHeadersToAddArgs{...} +type URLMapHeaderActionRequestHeadersToAddInput interface { + pulumi.Input + + ToURLMapHeaderActionRequestHeadersToAddOutput() URLMapHeaderActionRequestHeadersToAddOutput + ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapHeaderActionRequestHeadersToAddOutput +} + +type URLMapHeaderActionRequestHeadersToAddArgs struct { + // The name of the header to add. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // 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. + Replace pulumi.BoolInput `pulumi:"replace"` +} + +func (URLMapHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i URLMapHeaderActionRequestHeadersToAddArgs) ToURLMapHeaderActionRequestHeadersToAddOutput() URLMapHeaderActionRequestHeadersToAddOutput { + return i.ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +} + +func (i URLMapHeaderActionRequestHeadersToAddArgs) ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionRequestHeadersToAddOutput) +} + +// URLMapHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapHeaderActionRequestHeadersToAddArray and URLMapHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `URLMapHeaderActionRequestHeadersToAddArrayInput` via: +// +// URLMapHeaderActionRequestHeadersToAddArray{ URLMapHeaderActionRequestHeadersToAddArgs{...} } +type URLMapHeaderActionRequestHeadersToAddArrayInput interface { + pulumi.Input + + ToURLMapHeaderActionRequestHeadersToAddArrayOutput() URLMapHeaderActionRequestHeadersToAddArrayOutput + ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapHeaderActionRequestHeadersToAddArrayOutput +} + +type URLMapHeaderActionRequestHeadersToAddArray []URLMapHeaderActionRequestHeadersToAddInput + +func (URLMapHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i URLMapHeaderActionRequestHeadersToAddArray) ToURLMapHeaderActionRequestHeadersToAddArrayOutput() URLMapHeaderActionRequestHeadersToAddArrayOutput { + return i.ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +} + +func (i URLMapHeaderActionRequestHeadersToAddArray) ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionRequestHeadersToAddArrayOutput) +} + +type URLMapHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } + +func (URLMapHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o URLMapHeaderActionRequestHeadersToAddOutput) ToURLMapHeaderActionRequestHeadersToAddOutput() URLMapHeaderActionRequestHeadersToAddOutput { + return o +} + +func (o URLMapHeaderActionRequestHeadersToAddOutput) ToURLMapHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddOutput { + return o +} + +// The name of the header to add. +func (o URLMapHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v URLMapHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) +} + +// The value of the header to add. +func (o URLMapHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v URLMapHeaderActionRequestHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) +} + +// 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. +func (o URLMapHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v URLMapHeaderActionRequestHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) +} + +type URLMapHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } + +func (URLMapHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o URLMapHeaderActionRequestHeadersToAddArrayOutput) ToURLMapHeaderActionRequestHeadersToAddArrayOutput() URLMapHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o URLMapHeaderActionRequestHeadersToAddArrayOutput) ToURLMapHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o URLMapHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapHeaderActionRequestHeadersToAdd { + return vs[0].([]URLMapHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(URLMapHeaderActionRequestHeadersToAddOutput) +} + +type URLMapHeaderActionResponseHeadersToAdd struct { + // The name of the header to add. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // 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. + Replace bool `pulumi:"replace"` +} + +// URLMapHeaderActionResponseHeadersToAddInput is an input type that accepts URLMapHeaderActionResponseHeadersToAddArgs and URLMapHeaderActionResponseHeadersToAddOutput values. +// You can construct a concrete instance of `URLMapHeaderActionResponseHeadersToAddInput` via: +// +// URLMapHeaderActionResponseHeadersToAddArgs{...} +type URLMapHeaderActionResponseHeadersToAddInput interface { + pulumi.Input + + ToURLMapHeaderActionResponseHeadersToAddOutput() URLMapHeaderActionResponseHeadersToAddOutput + ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(context.Context) URLMapHeaderActionResponseHeadersToAddOutput +} + +type URLMapHeaderActionResponseHeadersToAddArgs struct { + // The name of the header to add. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // 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. + Replace pulumi.BoolInput `pulumi:"replace"` +} + +func (URLMapHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (i URLMapHeaderActionResponseHeadersToAddArgs) ToURLMapHeaderActionResponseHeadersToAddOutput() URLMapHeaderActionResponseHeadersToAddOutput { + return i.ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) +} + +func (i URLMapHeaderActionResponseHeadersToAddArgs) ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionResponseHeadersToAddOutput) +} + +// URLMapHeaderActionResponseHeadersToAddArrayInput is an input type that accepts URLMapHeaderActionResponseHeadersToAddArray and URLMapHeaderActionResponseHeadersToAddArrayOutput values. +// You can construct a concrete instance of `URLMapHeaderActionResponseHeadersToAddArrayInput` via: +// +// URLMapHeaderActionResponseHeadersToAddArray{ URLMapHeaderActionResponseHeadersToAddArgs{...} } +type URLMapHeaderActionResponseHeadersToAddArrayInput interface { + pulumi.Input + + ToURLMapHeaderActionResponseHeadersToAddArrayOutput() URLMapHeaderActionResponseHeadersToAddArrayOutput + ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) URLMapHeaderActionResponseHeadersToAddArrayOutput +} + +type URLMapHeaderActionResponseHeadersToAddArray []URLMapHeaderActionResponseHeadersToAddInput + +func (URLMapHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (i URLMapHeaderActionResponseHeadersToAddArray) ToURLMapHeaderActionResponseHeadersToAddArrayOutput() URLMapHeaderActionResponseHeadersToAddArrayOutput { + return i.ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +} + +func (i URLMapHeaderActionResponseHeadersToAddArray) ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHeaderActionResponseHeadersToAddArrayOutput) +} + +type URLMapHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } + +func (URLMapHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (o URLMapHeaderActionResponseHeadersToAddOutput) ToURLMapHeaderActionResponseHeadersToAddOutput() URLMapHeaderActionResponseHeadersToAddOutput { + return o +} + +func (o URLMapHeaderActionResponseHeadersToAddOutput) ToURLMapHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddOutput { + return o +} + +// The name of the header to add. +func (o URLMapHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v URLMapHeaderActionResponseHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) +} + +// The value of the header to add. +func (o URLMapHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v URLMapHeaderActionResponseHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) +} + +// 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. +func (o URLMapHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v URLMapHeaderActionResponseHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) +} + +type URLMapHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } + +func (URLMapHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (o URLMapHeaderActionResponseHeadersToAddArrayOutput) ToURLMapHeaderActionResponseHeadersToAddArrayOutput() URLMapHeaderActionResponseHeadersToAddArrayOutput { + return o +} + +func (o URLMapHeaderActionResponseHeadersToAddArrayOutput) ToURLMapHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapHeaderActionResponseHeadersToAddArrayOutput { + return o +} + +func (o URLMapHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapHeaderActionResponseHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapHeaderActionResponseHeadersToAdd { + return vs[0].([]URLMapHeaderActionResponseHeadersToAdd)[vs[1].(int)] + }).(URLMapHeaderActionResponseHeadersToAddOutput) +} + +type URLMapHostRule struct { + // An optional description of this resource. Provide this property when you create + // the resource. + Description *string `pulumi:"description"` + // The list of host patterns to match. They must be valid hostnames, except * will + // match any string of ([a-z0-9-.]*). In that case, * must be the first character + // and must be followed in the pattern by either - or .. + Hosts []string `pulumi:"hosts"` + // The name of the PathMatcher to use to match the path portion of the URL if the + // hostRule matches the URL's host portion. + PathMatcher string `pulumi:"pathMatcher"` +} + +// URLMapHostRuleInput is an input type that accepts URLMapHostRuleArgs and URLMapHostRuleOutput values. +// You can construct a concrete instance of `URLMapHostRuleInput` via: +// +// URLMapHostRuleArgs{...} +type URLMapHostRuleInput interface { + pulumi.Input + + ToURLMapHostRuleOutput() URLMapHostRuleOutput + ToURLMapHostRuleOutputWithContext(context.Context) URLMapHostRuleOutput +} + +type URLMapHostRuleArgs struct { + // An optional description of this resource. Provide this property when you create + // the resource. + Description pulumi.StringPtrInput `pulumi:"description"` + // The list of host patterns to match. They must be valid hostnames, except * will + // match any string of ([a-z0-9-.]*). In that case, * must be the first character + // and must be followed in the pattern by either - or .. + Hosts pulumi.StringArrayInput `pulumi:"hosts"` + // The name of the PathMatcher to use to match the path portion of the URL if the + // hostRule matches the URL's host portion. + PathMatcher pulumi.StringInput `pulumi:"pathMatcher"` +} + +func (URLMapHostRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHostRule)(nil)).Elem() +} + +func (i URLMapHostRuleArgs) ToURLMapHostRuleOutput() URLMapHostRuleOutput { + return i.ToURLMapHostRuleOutputWithContext(context.Background()) +} + +func (i URLMapHostRuleArgs) ToURLMapHostRuleOutputWithContext(ctx context.Context) URLMapHostRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHostRuleOutput) +} + +// URLMapHostRuleArrayInput is an input type that accepts URLMapHostRuleArray and URLMapHostRuleArrayOutput values. +// You can construct a concrete instance of `URLMapHostRuleArrayInput` via: +// +// URLMapHostRuleArray{ URLMapHostRuleArgs{...} } +type URLMapHostRuleArrayInput interface { + pulumi.Input + + ToURLMapHostRuleArrayOutput() URLMapHostRuleArrayOutput + ToURLMapHostRuleArrayOutputWithContext(context.Context) URLMapHostRuleArrayOutput +} + +type URLMapHostRuleArray []URLMapHostRuleInput + +func (URLMapHostRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapHostRule)(nil)).Elem() +} + +func (i URLMapHostRuleArray) ToURLMapHostRuleArrayOutput() URLMapHostRuleArrayOutput { + return i.ToURLMapHostRuleArrayOutputWithContext(context.Background()) +} + +func (i URLMapHostRuleArray) ToURLMapHostRuleArrayOutputWithContext(ctx context.Context) URLMapHostRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapHostRuleArrayOutput) +} + +type URLMapHostRuleOutput struct{ *pulumi.OutputState } + +func (URLMapHostRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapHostRule)(nil)).Elem() +} + +func (o URLMapHostRuleOutput) ToURLMapHostRuleOutput() URLMapHostRuleOutput { + return o +} + +func (o URLMapHostRuleOutput) ToURLMapHostRuleOutputWithContext(ctx context.Context) URLMapHostRuleOutput { + return o +} + +// An optional description of this resource. Provide this property when you create +// the resource. +func (o URLMapHostRuleOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapHostRule) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// The list of host patterns to match. They must be valid hostnames, except * will +// match any string of ([a-z0-9-.]*). In that case, * must be the first character +// and must be followed in the pattern by either - or .. +func (o URLMapHostRuleOutput) Hosts() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapHostRule) []string { return v.Hosts }).(pulumi.StringArrayOutput) +} + +// The name of the PathMatcher to use to match the path portion of the URL if the +// hostRule matches the URL's host portion. +func (o URLMapHostRuleOutput) PathMatcher() pulumi.StringOutput { + return o.ApplyT(func(v URLMapHostRule) string { return v.PathMatcher }).(pulumi.StringOutput) +} + +type URLMapHostRuleArrayOutput struct{ *pulumi.OutputState } + +func (URLMapHostRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapHostRule)(nil)).Elem() +} + +func (o URLMapHostRuleArrayOutput) ToURLMapHostRuleArrayOutput() URLMapHostRuleArrayOutput { + return o +} + +func (o URLMapHostRuleArrayOutput) ToURLMapHostRuleArrayOutputWithContext(ctx context.Context) URLMapHostRuleArrayOutput { + return o +} + +func (o URLMapHostRuleArrayOutput) Index(i pulumi.IntInput) URLMapHostRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapHostRule { + return vs[0].([]URLMapHostRule)[vs[1].(int)] + }).(URLMapHostRuleOutput) +} + +type URLMapPathMatcher struct { + // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. + // This 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. + // For example, consider a UrlMap with the following configuration: + // UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors + // A RouteRule for /coming_soon/ is configured for the error code 404. + // If 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. + // When 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. + // defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. + // Structure is documented below. + DefaultCustomErrorResponsePolicy *URLMapPathMatcherDefaultCustomErrorResponsePolicy `pulumi:"defaultCustomErrorResponsePolicy"` + // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs + // advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request + // to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. + // Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. + // Only one of defaultRouteAction or defaultUrlRedirect must be set. + // Structure is documented below. + DefaultRouteAction *URLMapPathMatcherDefaultRouteAction `pulumi:"defaultRouteAction"` + // The backend service or backend bucket to use when none of the given paths match. + DefaultService *string `pulumi:"defaultService"` + // When none of the specified hostRules match, the request is redirected to a URL specified + // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or + // defaultRouteAction must not be set. + // Structure is documented below. + DefaultUrlRedirect *URLMapPathMatcherDefaultUrlRedirect `pulumi:"defaultUrlRedirect"` + // An optional description of this resource. Provide this property when you create + // the resource. + Description *string `pulumi:"description"` + // Specifies changes to request and response headers that need to take effect for + // the selected backendService. HeaderAction specified here are applied after the + // matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap + // Structure is documented below. + HeaderAction *URLMapPathMatcherHeaderAction `pulumi:"headerAction"` + // The name to which this PathMatcher is referred by the HostRule. + Name string `pulumi:"name"` + // The list of path rules. Use this list instead of routeRules when routing based + // on simple path matching is all that's required. The order by which path rules + // are specified does not matter. Matches are always done on the longest-path-first + // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* + // irrespective of the order in which those paths appear in this list. Within a + // given pathMatcher, only one of pathRules or routeRules must be set. + // Structure is documented below. + PathRules []URLMapPathMatcherPathRule `pulumi:"pathRules"` + // The list of ordered HTTP route rules. Use this list instead of pathRules when + // advanced route matching and routing actions are desired. The order of specifying + // routeRules matters: the first rule that matches will cause its specified routing + // action to take effect. Within a given pathMatcher, only one of pathRules or + // routeRules must be set. routeRules are not supported in UrlMaps intended for + // External load balancers. + // Structure is documented below. + RouteRules []URLMapPathMatcherRouteRule `pulumi:"routeRules"` +} + +// URLMapPathMatcherInput is an input type that accepts URLMapPathMatcherArgs and URLMapPathMatcherOutput values. +// You can construct a concrete instance of `URLMapPathMatcherInput` via: +// +// URLMapPathMatcherArgs{...} +type URLMapPathMatcherInput interface { + pulumi.Input + + ToURLMapPathMatcherOutput() URLMapPathMatcherOutput + ToURLMapPathMatcherOutputWithContext(context.Context) URLMapPathMatcherOutput +} + +type URLMapPathMatcherArgs struct { + // defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. + // This 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. + // For example, consider a UrlMap with the following configuration: + // UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors + // A RouteRule for /coming_soon/ is configured for the error code 404. + // If 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. + // When 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. + // defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. + // Structure is documented below. + DefaultCustomErrorResponsePolicy URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput `pulumi:"defaultCustomErrorResponsePolicy"` + // defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs + // advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request + // to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. + // Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. + // Only one of defaultRouteAction or defaultUrlRedirect must be set. + // Structure is documented below. + DefaultRouteAction URLMapPathMatcherDefaultRouteActionPtrInput `pulumi:"defaultRouteAction"` + // The backend service or backend bucket to use when none of the given paths match. + DefaultService pulumi.StringPtrInput `pulumi:"defaultService"` + // When none of the specified hostRules match, the request is redirected to a URL specified + // by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or + // defaultRouteAction must not be set. + // Structure is documented below. + DefaultUrlRedirect URLMapPathMatcherDefaultUrlRedirectPtrInput `pulumi:"defaultUrlRedirect"` + // An optional description of this resource. Provide this property when you create + // the resource. + Description pulumi.StringPtrInput `pulumi:"description"` + // Specifies changes to request and response headers that need to take effect for + // the selected backendService. HeaderAction specified here are applied after the + // matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap + // Structure is documented below. + HeaderAction URLMapPathMatcherHeaderActionPtrInput `pulumi:"headerAction"` + // The name to which this PathMatcher is referred by the HostRule. + Name pulumi.StringInput `pulumi:"name"` + // The list of path rules. Use this list instead of routeRules when routing based + // on simple path matching is all that's required. The order by which path rules + // are specified does not matter. Matches are always done on the longest-path-first + // basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* + // irrespective of the order in which those paths appear in this list. Within a + // given pathMatcher, only one of pathRules or routeRules must be set. + // Structure is documented below. + PathRules URLMapPathMatcherPathRuleArrayInput `pulumi:"pathRules"` + // The list of ordered HTTP route rules. Use this list instead of pathRules when + // advanced route matching and routing actions are desired. The order of specifying + // routeRules matters: the first rule that matches will cause its specified routing + // action to take effect. Within a given pathMatcher, only one of pathRules or + // routeRules must be set. routeRules are not supported in UrlMaps intended for + // External load balancers. + // Structure is documented below. + RouteRules URLMapPathMatcherRouteRuleArrayInput `pulumi:"routeRules"` +} + +func (URLMapPathMatcherArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcher)(nil)).Elem() +} + +func (i URLMapPathMatcherArgs) ToURLMapPathMatcherOutput() URLMapPathMatcherOutput { + return i.ToURLMapPathMatcherOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherArgs) ToURLMapPathMatcherOutputWithContext(ctx context.Context) URLMapPathMatcherOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherOutput) +} + +// URLMapPathMatcherArrayInput is an input type that accepts URLMapPathMatcherArray and URLMapPathMatcherArrayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherArrayInput` via: +// +// URLMapPathMatcherArray{ URLMapPathMatcherArgs{...} } +type URLMapPathMatcherArrayInput interface { + pulumi.Input + + ToURLMapPathMatcherArrayOutput() URLMapPathMatcherArrayOutput + ToURLMapPathMatcherArrayOutputWithContext(context.Context) URLMapPathMatcherArrayOutput +} + +type URLMapPathMatcherArray []URLMapPathMatcherInput + +func (URLMapPathMatcherArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcher)(nil)).Elem() +} + +func (i URLMapPathMatcherArray) ToURLMapPathMatcherArrayOutput() URLMapPathMatcherArrayOutput { + return i.ToURLMapPathMatcherArrayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherArray) ToURLMapPathMatcherArrayOutputWithContext(ctx context.Context) URLMapPathMatcherArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherArrayOutput) +} + +type URLMapPathMatcherOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcher)(nil)).Elem() +} + +func (o URLMapPathMatcherOutput) ToURLMapPathMatcherOutput() URLMapPathMatcherOutput { + return o +} + +func (o URLMapPathMatcherOutput) ToURLMapPathMatcherOutputWithContext(ctx context.Context) URLMapPathMatcherOutput { + return o +} + +// defaultCustomErrorResponsePolicy specifies how the Load Balancer returns error responses when BackendServiceor BackendBucket responds with an error. +// This 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. +// For example, consider a UrlMap with the following configuration: +// UrlMap.defaultCustomErrorResponsePolicy is configured with policies for 5xx and 4xx errors +// A RouteRule for /coming_soon/ is configured for the error code 404. +// If 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. +// When 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. +// defaultCustomErrorResponsePolicy is supported only for global external Application Load Balancers. +// Structure is documented below. +func (o URLMapPathMatcherOutput) DefaultCustomErrorResponsePolicy() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherDefaultCustomErrorResponsePolicy { + return v.DefaultCustomErrorResponsePolicy + }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) +} + +// defaultRouteAction takes effect when none of the pathRules or routeRules match. The load balancer performs +// advanced routing actions like URL rewrites, header transformations, etc. prior to forwarding the request +// to the selected backend. If defaultRouteAction specifies any weightedBackendServices, defaultService must not be set. +// Conversely if defaultService is set, defaultRouteAction cannot contain any weightedBackendServices. +// Only one of defaultRouteAction or defaultUrlRedirect must be set. +// Structure is documented below. +func (o URLMapPathMatcherOutput) DefaultRouteAction() URLMapPathMatcherDefaultRouteActionPtrOutput { + return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherDefaultRouteAction { return v.DefaultRouteAction }).(URLMapPathMatcherDefaultRouteActionPtrOutput) +} + +// The backend service or backend bucket to use when none of the given paths match. +func (o URLMapPathMatcherOutput) DefaultService() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcher) *string { return v.DefaultService }).(pulumi.StringPtrOutput) +} + +// When none of the specified hostRules match, the request is redirected to a URL specified +// by defaultUrlRedirect. If defaultUrlRedirect is specified, defaultService or +// defaultRouteAction must not be set. +// Structure is documented below. +func (o URLMapPathMatcherOutput) DefaultUrlRedirect() URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherDefaultUrlRedirect { return v.DefaultUrlRedirect }).(URLMapPathMatcherDefaultUrlRedirectPtrOutput) +} + +// An optional description of this resource. Provide this property when you create +// the resource. +func (o URLMapPathMatcherOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcher) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Specifies changes to request and response headers that need to take effect for +// the selected backendService. HeaderAction specified here are applied after the +// matching HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap +// Structure is documented below. +func (o URLMapPathMatcherOutput) HeaderAction() URLMapPathMatcherHeaderActionPtrOutput { + return o.ApplyT(func(v URLMapPathMatcher) *URLMapPathMatcherHeaderAction { return v.HeaderAction }).(URLMapPathMatcherHeaderActionPtrOutput) +} + +// The name to which this PathMatcher is referred by the HostRule. +func (o URLMapPathMatcherOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v URLMapPathMatcher) string { return v.Name }).(pulumi.StringOutput) +} + +// The list of path rules. Use this list instead of routeRules when routing based +// on simple path matching is all that's required. The order by which path rules +// are specified does not matter. Matches are always done on the longest-path-first +// basis. For example: a pathRule with a path /a/b/c/* will match before /a/b/* +// irrespective of the order in which those paths appear in this list. Within a +// given pathMatcher, only one of pathRules or routeRules must be set. +// Structure is documented below. +func (o URLMapPathMatcherOutput) PathRules() URLMapPathMatcherPathRuleArrayOutput { + return o.ApplyT(func(v URLMapPathMatcher) []URLMapPathMatcherPathRule { return v.PathRules }).(URLMapPathMatcherPathRuleArrayOutput) +} + +// The list of ordered HTTP route rules. Use this list instead of pathRules when +// advanced route matching and routing actions are desired. The order of specifying +// routeRules matters: the first rule that matches will cause its specified routing +// action to take effect. Within a given pathMatcher, only one of pathRules or +// routeRules must be set. routeRules are not supported in UrlMaps intended for +// External load balancers. +// Structure is documented below. +func (o URLMapPathMatcherOutput) RouteRules() URLMapPathMatcherRouteRuleArrayOutput { + return o.ApplyT(func(v URLMapPathMatcher) []URLMapPathMatcherRouteRule { return v.RouteRules }).(URLMapPathMatcherRouteRuleArrayOutput) +} + +type URLMapPathMatcherArrayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcher)(nil)).Elem() +} + +func (o URLMapPathMatcherArrayOutput) ToURLMapPathMatcherArrayOutput() URLMapPathMatcherArrayOutput { + return o +} + +func (o URLMapPathMatcherArrayOutput) ToURLMapPathMatcherArrayOutputWithContext(ctx context.Context) URLMapPathMatcherArrayOutput { + return o +} + +func (o URLMapPathMatcherArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcher { + return vs[0].([]URLMapPathMatcher)[vs[1].(int)] + }).(URLMapPathMatcherOutput) +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicy struct { + // Specifies rules for returning error responses. + // In 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. + // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). + // If 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. + // Structure is documented below. + ErrorResponseRules []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule `pulumi:"errorResponseRules"` + // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: + // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket + // compute/v1/projects/project/global/backendBuckets/myBackendBucket + // global/backendBuckets/myBackendBucket + // If 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. + // If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). + ErrorService *string `pulumi:"errorService"` +} + +// URLMapPathMatcherDefaultCustomErrorResponsePolicyInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs and URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyInput` via: +// +// URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{...} +type URLMapPathMatcherDefaultCustomErrorResponsePolicyInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs struct { + // Specifies rules for returning error responses. + // In 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. + // For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). + // If 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. + // Structure is documented below. + ErrorResponseRules URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput `pulumi:"errorResponseRules"` + // The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: + // https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket + // compute/v1/projects/project/global/backendBuckets/myBackendBucket + // global/backendBuckets/myBackendBucket + // If 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. + // If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). + ErrorService pulumi.StringPtrInput `pulumi:"errorService"` +} + +func (URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { + return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput).ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs, URLMapPathMatcherDefaultCustomErrorResponsePolicyPtr and URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput` via: +// +// URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput +} + +type urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs + +func URLMapPathMatcherDefaultCustomErrorResponsePolicyPtr(v *URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput { + return (*urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType)(v) +} + +func (*urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultCustomErrorResponsePolicyPtrType) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return o.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultCustomErrorResponsePolicy) *URLMapPathMatcherDefaultCustomErrorResponsePolicy { + return &v + }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) +} + +// Specifies rules for returning error responses. +// In 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. +// For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). +// If 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. +// Structure is documented below. +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ErrorResponseRules() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicy) []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule { + return v.ErrorResponseRules + }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) +} + +// The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: +// https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket +// compute/v1/projects/project/global/backendBuckets/myBackendBucket +// global/backendBuckets/myBackendBucket +// If 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. +// If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) ErrorService() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicy) *string { return v.ErrorService }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultCustomErrorResponsePolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) Elem() URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultCustomErrorResponsePolicy) URLMapPathMatcherDefaultCustomErrorResponsePolicy { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultCustomErrorResponsePolicy + return ret + }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput) +} + +// Specifies rules for returning error responses. +// In 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. +// For example, assume that you configure a rule for 401 (Un-authorized) code, and another for all 4 series error codes (4XX). +// If 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. +// Structure is documented below. +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ErrorResponseRules() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultCustomErrorResponsePolicy) []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule { + if v == nil { + return nil + } + return v.ErrorResponseRules + }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) +} + +// The full or partial URL to the BackendBucket resource that contains the custom error content. Examples are: +// https://www.googleapis.com/compute/v1/projects/project/global/backendBuckets/myBackendBucket +// compute/v1/projects/project/global/backendBuckets/myBackendBucket +// global/backendBuckets/myBackendBucket +// If 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. +// If load balancer cannot reach the backendBucket, a simple Not Found Error will be returned, with the original response code (or overrideResponseCode if configured). +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput) ErrorService() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultCustomErrorResponsePolicy) *string { + if v == nil { + return nil + } + return v.ErrorService + }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule struct { + // Valid values include: + // - 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. + // - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. + // - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. + // Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. + MatchResponseCodes []string `pulumi:"matchResponseCodes"` + // The HTTP status code returned with the response containing the custom error content. + // If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. + OverrideResponseCode *int `pulumi:"overrideResponseCode"` + // The full path to a file within backendBucket. For example: /errors/defaultError.html + // path must start with a leading slash. path cannot have trailing slashes. + // If 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. + // The value must be from 1 to 1024 characters. + Path *string `pulumi:"path"` +} + +// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs and URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput` via: +// +// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} +type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs struct { + // Valid values include: + // - 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. + // - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. + // - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. + // Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. + MatchResponseCodes pulumi.StringArrayInput `pulumi:"matchResponseCodes"` + // The HTTP status code returned with the response containing the custom error content. + // If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. + OverrideResponseCode pulumi.IntPtrInput `pulumi:"overrideResponseCode"` + // The full path to a file within backendBucket. For example: /errors/defaultError.html + // path must start with a leading slash. path cannot have trailing slashes. + // If 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. + // The value must be from 1 to 1024 characters. + Path pulumi.StringPtrInput `pulumi:"path"` +} + +func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) +} + +// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput is an input type that accepts URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray and URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput` via: +// +// URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray{ URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{...} } +type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput + ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray []URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput + +func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return i.ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return o +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return o +} + +// Valid values include: +// - 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. +// - 5xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 500 to 599. +// - 4xx: Load Balancer will apply the policy if the backend service responds with any response code in the range of 400 to 499. +// Values must be unique within matchResponseCodes and across all errorResponseRules of CustomErrorResponsePolicy. +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) MatchResponseCodes() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule) []string { + return v.MatchResponseCodes + }).(pulumi.StringArrayOutput) +} + +// The HTTP status code returned with the response containing the custom error content. +// If overrideResponseCode is not supplied, the same response code returned by the original backend bucket or backend service is returned to the client. +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) OverrideResponseCode() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule) *int { + return v.OverrideResponseCode + }).(pulumi.IntPtrOutput) +} + +// The full path to a file within backendBucket. For example: /errors/defaultError.html +// path must start with a leading slash. path cannot have trailing slashes. +// If 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. +// The value must be from 1 to 1024 characters. +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput() URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) ToURLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule { + return vs[0].([]URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRule)[vs[1].(int)] + }).(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput) +} + +type URLMapPathMatcherDefaultRouteAction struct { + // The specification for allowing client side cross-origin requests. Please see + // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) + // Structure is documented below. + CorsPolicy *URLMapPathMatcherDefaultRouteActionCorsPolicy `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. + // As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a + // percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted + // by the Loadbalancer for a percentage of requests. + // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. + // Structure is documented below. + FaultInjectionPolicy *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. + // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, + // the host / authority header is suffixed with -shadow. + // Structure is documented below. + RequestMirrorPolicy *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy *URLMapPathMatcherDefaultRouteActionRetryPolicy `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time the request has been + // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. + // If not specified, will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + Timeout *URLMapPathMatcherDefaultRouteActionTimeout `pulumi:"timeout"` + // The spec to modify the URL of the request, prior to forwarding the request to the matched service. + // Structure is documented below. + UrlRewrite *URLMapPathMatcherDefaultRouteActionUrlRewrite `pulumi:"urlRewrite"` + // 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 0 number. + // Once a backendService is identified and before forwarding the request to the backend service, + // advanced routing actions like Url rewrites and header transformations are applied depending on + // additional settings specified in this HttpRouteAction. + // Structure is documented below. + WeightedBackendServices []URLMapPathMatcherDefaultRouteActionWeightedBackendService `pulumi:"weightedBackendServices"` +} + +// URLMapPathMatcherDefaultRouteActionInput is an input type that accepts URLMapPathMatcherDefaultRouteActionArgs and URLMapPathMatcherDefaultRouteActionOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionInput` via: +// +// URLMapPathMatcherDefaultRouteActionArgs{...} +type URLMapPathMatcherDefaultRouteActionInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionOutput() URLMapPathMatcherDefaultRouteActionOutput + ToURLMapPathMatcherDefaultRouteActionOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionOutput +} + +type URLMapPathMatcherDefaultRouteActionArgs struct { + // The specification for allowing client side cross-origin requests. Please see + // [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) + // Structure is documented below. + CorsPolicy URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput `pulumi:"corsPolicy"` + // The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. + // As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a + // percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted + // by the Loadbalancer for a percentage of requests. + // timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. + // Structure is documented below. + FaultInjectionPolicy URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput `pulumi:"faultInjectionPolicy"` + // Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. + // Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, + // the host / authority header is suffixed with -shadow. + // Structure is documented below. + RequestMirrorPolicy URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput `pulumi:"requestMirrorPolicy"` + // Specifies the retry policy associated with this route. + // Structure is documented below. + RetryPolicy URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput `pulumi:"retryPolicy"` + // Specifies the timeout for the selected route. Timeout is computed from the time the request has been + // fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. + // If not specified, will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + Timeout URLMapPathMatcherDefaultRouteActionTimeoutPtrInput `pulumi:"timeout"` + // The spec to modify the URL of the request, prior to forwarding the request to the matched service. + // Structure is documented below. + UrlRewrite URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput `pulumi:"urlRewrite"` + // 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 0 number. + // Once a backendService is identified and before forwarding the request to the backend service, + // advanced routing actions like Url rewrites and header transformations are applied depending on + // additional settings specified in this HttpRouteAction. + // Structure is documented below. + WeightedBackendServices URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput `pulumi:"weightedBackendServices"` +} + +func (URLMapPathMatcherDefaultRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionOutput() URLMapPathMatcherDefaultRouteActionOutput { + return i.ToURLMapPathMatcherDefaultRouteActionOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionArgs) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionOutput).ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionArgs, URLMapPathMatcherDefaultRouteActionPtr and URLMapPathMatcherDefaultRouteActionPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput + ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionPtrType URLMapPathMatcherDefaultRouteActionArgs + +func URLMapPathMatcherDefaultRouteActionPtr(v *URLMapPathMatcherDefaultRouteActionArgs) URLMapPathMatcherDefaultRouteActionPtrInput { + return (*urlmapPathMatcherDefaultRouteActionPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionPtrType) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionPtrType) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionOutput() URLMapPathMatcherDefaultRouteActionOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteAction { + return &v + }).(URLMapPathMatcherDefaultRouteActionPtrOutput) +} + +// The specification for allowing client side cross-origin requests. Please see +// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionOutput) CorsPolicy() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionCorsPolicy { + return v.CorsPolicy + }).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) +} + +// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. +// As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a +// percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted +// by the Loadbalancer for a percentage of requests. +// timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionOutput) FaultInjectionPolicy() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { + return v.FaultInjectionPolicy + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) +} + +// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. +// Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, +// the host / authority header is suffixed with -shadow. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionOutput) RequestMirrorPolicy() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { + return v.RequestMirrorPolicy + }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) +} + +// Specifies the retry policy associated with this route. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionOutput) RetryPolicy() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRetryPolicy { + return v.RetryPolicy + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) +} + +// Specifies the timeout for the selected route. Timeout is computed from the time the request has been +// fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. +// If not specified, will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionOutput) Timeout() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionTimeout { + return v.Timeout + }).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) +} + +// The spec to modify the URL of the request, prior to forwarding the request to the matched service. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionOutput) UrlRewrite() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionUrlRewrite { + return v.UrlRewrite + }).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) +} + +// 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 0 number. +// Once a backendService is identified and before forwarding the request to the backend service, +// advanced routing actions like Url rewrites and header transformations are applied depending on +// additional settings specified in this HttpRouteAction. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionOutput) WeightedBackendServices() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendService { + return v.WeightedBackendServices + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteAction)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutput() URLMapPathMatcherDefaultRouteActionPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) URLMapPathMatcherDefaultRouteAction { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteAction + return ret + }).(URLMapPathMatcherDefaultRouteActionOutput) +} + +// The specification for allowing client side cross-origin requests. Please see +// [W3C Recommendation for Cross Origin Resource Sharing](https://www.w3.org/TR/cors/) +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) CorsPolicy() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionCorsPolicy { + if v == nil { + return nil + } + return v.CorsPolicy + }).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) +} + +// The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. +// As part of fault injection, when clients send requests to a backend service, delays can be introduced by Loadbalancer on a +// percentage of requests before sending those request to the backend service. Similarly requests from clients can be aborted +// by the Loadbalancer for a percentage of requests. +// timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) FaultInjectionPolicy() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { + if v == nil { + return nil + } + return v.FaultInjectionPolicy + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) +} + +// Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service. +// Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service, +// the host / authority header is suffixed with -shadow. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) RequestMirrorPolicy() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { + if v == nil { + return nil + } + return v.RequestMirrorPolicy + }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) +} + +// Specifies the retry policy associated with this route. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) RetryPolicy() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionRetryPolicy { + if v == nil { + return nil + } + return v.RetryPolicy + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) +} + +// Specifies the timeout for the selected route. Timeout is computed from the time the request has been +// fully processed (i.e. end-of-stream) up until the response has been completely processed. Timeout includes all retries. +// If not specified, will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) Timeout() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionTimeout { + if v == nil { + return nil + } + return v.Timeout + }).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) +} + +// The spec to modify the URL of the request, prior to forwarding the request to the matched service. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) UrlRewrite() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) *URLMapPathMatcherDefaultRouteActionUrlRewrite { + if v == nil { + return nil + } + return v.UrlRewrite + }).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) +} + +// 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 0 number. +// Once a backendService is identified and before forwarding the request to the backend service, +// advanced routing actions like Url rewrites and header transformations are applied depending on +// additional settings specified in this HttpRouteAction. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionPtrOutput) WeightedBackendServices() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendService { + if v == nil { + return nil + } + return v.WeightedBackendServices + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionCorsPolicy struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. + // This translates to the Access-Control-Allow-Credentials header. + AllowCredentials *bool `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders []string `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods []string `pulumi:"allowMethods"` + // Specifies the regular expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes []string `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins []string `pulumi:"allowOrigins"` + // If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. + Disabled *bool `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders []string `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge *int `pulumi:"maxAge"` +} + +// URLMapPathMatcherDefaultRouteActionCorsPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionCorsPolicyArgs and URLMapPathMatcherDefaultRouteActionCorsPolicyOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionCorsPolicyInput` via: +// +// URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{...} +type URLMapPathMatcherDefaultRouteActionCorsPolicyInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput + ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyOutput +} + +type URLMapPathMatcherDefaultRouteActionCorsPolicyArgs struct { + // In response to a preflight request, setting this to true indicates that the actual request can include user credentials. + // This translates to the Access-Control-Allow-Credentials header. + AllowCredentials pulumi.BoolPtrInput `pulumi:"allowCredentials"` + // Specifies the content for the Access-Control-Allow-Headers header. + AllowHeaders pulumi.StringArrayInput `pulumi:"allowHeaders"` + // Specifies the content for the Access-Control-Allow-Methods header. + AllowMethods pulumi.StringArrayInput `pulumi:"allowMethods"` + // Specifies the regular expression patterns that match allowed origins. For regular expression grammar + // please see en.cppreference.com/w/cpp/regex/ecmascript + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOriginRegexes pulumi.StringArrayInput `pulumi:"allowOriginRegexes"` + // Specifies the list of origins that will be allowed to do CORS requests. + // An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. + AllowOrigins pulumi.StringArrayInput `pulumi:"allowOrigins"` + // If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. + Disabled pulumi.BoolPtrInput `pulumi:"disabled"` + // Specifies the content for the Access-Control-Expose-Headers header. + ExposeHeaders pulumi.StringArrayInput `pulumi:"exposeHeaders"` + // Specifies how long results of a preflight request can be cached in seconds. + // This translates to the Access-Control-Max-Age header. + MaxAge pulumi.IntPtrInput `pulumi:"maxAge"` +} + +func (URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { + return i.ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput).ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionCorsPolicyArgs, URLMapPathMatcherDefaultRouteActionCorsPolicyPtr and URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput + ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType URLMapPathMatcherDefaultRouteActionCorsPolicyArgs + +func URLMapPathMatcherDefaultRouteActionCorsPolicyPtr(v *URLMapPathMatcherDefaultRouteActionCorsPolicyArgs) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput { + return (*urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionCorsPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionCorsPolicyOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionCorsPolicy) *URLMapPathMatcherDefaultRouteActionCorsPolicy { + return &v + }).(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) +} + +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. +// This translates to the Access-Control-Allow-Credentials header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { return v.AllowCredentials }).(pulumi.BoolPtrOutput) +} + +// Specifies the content for the Access-Control-Allow-Headers header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowHeaders }).(pulumi.StringArrayOutput) +} + +// Specifies the content for the Access-Control-Allow-Methods header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowMethods }).(pulumi.StringArrayOutput) +} + +// Specifies the regular expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowOriginRegexes }).(pulumi.StringArrayOutput) +} + +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.AllowOrigins }).(pulumi.StringArrayOutput) +} + +// If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { return v.Disabled }).(pulumi.BoolPtrOutput) +} + +// Specifies the content for the Access-Control-Expose-Headers header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { return v.ExposeHeaders }).(pulumi.StringArrayOutput) +} + +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionCorsPolicy) *int { return v.MaxAge }).(pulumi.IntPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionCorsPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionCorsPolicyOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) URLMapPathMatcherDefaultRouteActionCorsPolicy { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionCorsPolicy + return ret + }).(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput) +} + +// In response to a preflight request, setting this to true indicates that the actual request can include user credentials. +// This translates to the Access-Control-Allow-Credentials header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowCredentials() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { + if v == nil { + return nil + } + return v.AllowCredentials + }).(pulumi.BoolPtrOutput) +} + +// Specifies the content for the Access-Control-Allow-Headers header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowHeaders + }).(pulumi.StringArrayOutput) +} + +// Specifies the content for the Access-Control-Allow-Methods header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowMethods() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowMethods + }).(pulumi.StringArrayOutput) +} + +// Specifies the regular expression patterns that match allowed origins. For regular expression grammar +// please see en.cppreference.com/w/cpp/regex/ecmascript +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowOriginRegexes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowOriginRegexes + }).(pulumi.StringArrayOutput) +} + +// Specifies the list of origins that will be allowed to do CORS requests. +// An origin is allowed if it matches either an item in allowOrigins or an item in allowOriginRegexes. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) AllowOrigins() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.AllowOrigins + }).(pulumi.StringArrayOutput) +} + +// If true, specifies the CORS policy is disabled. The default value is false, which indicates that the CORS policy is in effect. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) Disabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) *bool { + if v == nil { + return nil + } + return v.Disabled + }).(pulumi.BoolPtrOutput) +} + +// Specifies the content for the Access-Control-Expose-Headers header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) ExposeHeaders() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) []string { + if v == nil { + return nil + } + return v.ExposeHeaders + }).(pulumi.StringArrayOutput) +} + +// Specifies how long results of a preflight request can be cached in seconds. +// This translates to the Access-Control-Max-Age header. +func (o URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput) MaxAge() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionCorsPolicy) *int { + if v == nil { + return nil + } + return v.MaxAge + }).(pulumi.IntPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy struct { + // The specification for how client requests are aborted as part of fault injection. + // Structure is documented below. + Abort *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. + // Structure is documented below. + Delay *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay `pulumi:"delay"` +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{...} +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs struct { + // The specification for how client requests are aborted as part of fault injection. + // Structure is documented below. + Abort URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput `pulumi:"abort"` + // The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. + // Structure is documented below. + Delay URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput `pulumi:"delay"` +} + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs + +func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput { + return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { + return &v + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) +} + +// The specification for how client requests are aborted as part of fault injection. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) Abort() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { + return v.Abort + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +} + +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) Delay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { + return v.Delay + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy + return ret + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput) +} + +// The specification for how client requests are aborted as part of fault injection. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) Abort() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { + if v == nil { + return nil + } + return v.Abort + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +} + +// The specification for how client requests are delayed as part of fault injection, before being sent to a backend service. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput) Delay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { + if v == nil { + return nil + } + return v.Delay + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus *int `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage *float64 `pulumi:"percentage"` +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{...} +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs struct { + // The HTTP status code used to abort the request. + // The value must be between 200 and 599 inclusive. + HttpStatus pulumi.IntPtrInput `pulumi:"httpStatus"` + // The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64PtrInput `pulumi:"percentage"` +} + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs + +func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput { + return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { + return &v + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) +} + +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *int { return v.HttpStatus }).(pulumi.IntPtrOutput) +} + +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort + return ret + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput) +} + +// The HTTP status code used to abort the request. +// The value must be between 200 and 599 inclusive. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) HttpStatus() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *int { + if v == nil { + return nil + } + return v.HttpStatus + }).(pulumi.IntPtrOutput) +} + +// The percentage of traffic (connections/operations/requests) which will be aborted as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort) *float64 { + if v == nil { + return nil + } + return v.Percentage + }).(pulumi.Float64PtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay struct { + // Specifies the value of the fixed delay interval. + // Structure is documented below. + FixedDelay *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage *float64 `pulumi:"percentage"` +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{...} +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs struct { + // Specifies the value of the fixed delay interval. + // Structure is documented below. + FixedDelay URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput `pulumi:"fixedDelay"` + // The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. + // The value must be between 0.0 and 100.0 inclusive. + Percentage pulumi.Float64PtrInput `pulumi:"percentage"` +} + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs + +func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput { + return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { + return &v + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) +} + +// Specifies the value of the fixed delay interval. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) FixedDelay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { + return v.FixedDelay + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +} + +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *float64 { return v.Percentage }).(pulumi.Float64PtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay + return ret + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput) +} + +// Specifies the value of the fixed delay interval. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) FixedDelay() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { + if v == nil { + return nil + } + return v.FixedDelay + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +} + +// The percentage of traffic (connections/operations/requests) on which delay will be introduced as part of fault injection. +// The value must be between 0.0 and 100.0 inclusive. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput) Percentage() pulumi.Float64PtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay) *float64 { + if v == nil { + return nil + } + return v.Percentage + }).(pulumi.Float64PtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay struct { + // 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. + Nanos *int `pulumi:"nanos"` + // 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 + Seconds *string `pulumi:"seconds"` +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs struct { + // 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. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // 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 + Seconds pulumi.StringPtrInput `pulumi:"seconds"` +} + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput).ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs, URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr and URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput + ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs + +func URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtr(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput { + return (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrType) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { + return &v + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { return v.Nanos }).(pulumi.IntPtrOutput) +} + +// 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 +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { + return v.Seconds + }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) ToURLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay + return ret + }).(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *int { + if v == nil { + return nil + } + return v.Nanos + }).(pulumi.IntPtrOutput) +} + +// 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 +func (o URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay) *string { + if v == nil { + return nil + } + return v.Seconds + }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy struct { + // The full or partial URL to the BackendService resource being mirrored to. + BackendService string `pulumi:"backendService"` +} + +// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs and URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput` via: +// +// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{...} +type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput + ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput +} + +type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs struct { + // The full or partial URL to the BackendService resource being mirrored to. + BackendService pulumi.StringInput `pulumi:"backendService"` +} + +func (URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput).ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs, URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtr and URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput + ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs + +func URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtr(v *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput { + return (*urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { + return &v + }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) +} + +// The full or partial URL to the BackendService resource being mirrored to. +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) BackendService() pulumi.StringOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) string { return v.BackendService }).(pulumi.StringOutput) +} + +type URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy + return ret + }).(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput) +} + +// The full or partial URL to the BackendService resource being mirrored to. +func (o URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy) *string { + if v == nil { + return nil + } + return &v.BackendService + }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicy struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries *int `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + PerTryTimeout *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout `pulumi:"perTryTimeout"` + // Specfies one or more conditions when this retry rule applies. Valid values are: + // * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, + // or if the backend service does not respond at all, example: disconnects, reset, read timeout, + // * connection failure, and refused streams. + // * gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. + // * connect-failure: Loadbalancer will retry on failures connecting to backend services, + // for example due to connection timeouts. + // * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. + // Currently the only retriable error supported is 409. + // * refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. + // This reset type indicates that it is safe to retry. + // * cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled + // * deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded + // * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted + // * unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable + RetryConditions []string `pulumi:"retryConditions"` +} + +// URLMapPathMatcherDefaultRouteActionRetryPolicyInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyArgs and URLMapPathMatcherDefaultRouteActionRetryPolicyOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyInput` via: +// +// URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{...} +type URLMapPathMatcherDefaultRouteActionRetryPolicyInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput + ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyOutput +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicyArgs struct { + // Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. + NumRetries pulumi.IntPtrInput `pulumi:"numRetries"` + // Specifies a non-zero timeout per retry attempt. + // If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, + // will use the largest timeout among all backend services associated with the route. + // Structure is documented below. + PerTryTimeout URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput `pulumi:"perTryTimeout"` + // Specfies one or more conditions when this retry rule applies. Valid values are: + // * 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, + // or if the backend service does not respond at all, example: disconnects, reset, read timeout, + // * connection failure, and refused streams. + // * gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. + // * connect-failure: Loadbalancer will retry on failures connecting to backend services, + // for example due to connection timeouts. + // * retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. + // Currently the only retriable error supported is 409. + // * refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. + // This reset type indicates that it is safe to retry. + // * cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled + // * deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded + // * resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted + // * unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable + RetryConditions pulumi.StringArrayInput `pulumi:"retryConditions"` +} + +func (URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput).ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyArgs, URLMapPathMatcherDefaultRouteActionRetryPolicyPtr and URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput + ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType URLMapPathMatcherDefaultRouteActionRetryPolicyArgs + +func URLMapPathMatcherDefaultRouteActionRetryPolicyPtr(v *URLMapPathMatcherDefaultRouteActionRetryPolicyArgs) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput { + return (*urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicyOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionRetryPolicy) *URLMapPathMatcherDefaultRouteActionRetryPolicy { + return &v + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) +} + +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicy) *int { return v.NumRetries }).(pulumi.IntPtrOutput) +} + +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) PerTryTimeout() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicy) *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { + return v.PerTryTimeout + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +} + +// Specfies one or more conditions when this retry rule applies. Valid values are: +// - 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, +// or if the backend service does not respond at all, example: disconnects, reset, read timeout, +// - connection failure, and refused streams. +// - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure: Loadbalancer will retry on failures connecting to backend services, +// for example due to connection timeouts. +// - retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. +// Currently the only retriable error supported is 409. +// - refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. +// This reset type indicates that it is safe to retry. +// - cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled +// - deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded +// - resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted +// - unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicy) []string { return v.RetryConditions }).(pulumi.StringArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicy)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionRetryPolicyOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) URLMapPathMatcherDefaultRouteActionRetryPolicy { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionRetryPolicy + return ret + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput) +} + +// Specifies the allowed number retries. This number must be > 0. If not specified, defaults to 1. +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) NumRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) *int { + if v == nil { + return nil + } + return v.NumRetries + }).(pulumi.IntPtrOutput) +} + +// Specifies a non-zero timeout per retry attempt. +// If not specified, will use the timeout set in HttpRouteAction. If timeout in HttpRouteAction is not set, +// will use the largest timeout among all backend services associated with the route. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) PerTryTimeout() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { + if v == nil { + return nil + } + return v.PerTryTimeout + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +} + +// Specfies one or more conditions when this retry rule applies. Valid values are: +// - 5xx: Loadbalancer will attempt a retry if the backend service responds with any 5xx response code, +// or if the backend service does not respond at all, example: disconnects, reset, read timeout, +// - connection failure, and refused streams. +// - gateway-error: Similar to 5xx, but only applies to response codes 502, 503 or 504. +// - connect-failure: Loadbalancer will retry on failures connecting to backend services, +// for example due to connection timeouts. +// - retriable-4xx: Loadbalancer will retry for retriable 4xx response codes. +// Currently the only retriable error supported is 409. +// - refused-stream:Loadbalancer will retry if the backend service resets the stream with a REFUSED_STREAM error code. +// This reset type indicates that it is safe to retry. +// - cancelled: Loadbalancer will retry if the gRPC status code in the response header is set to cancelled +// - deadline-exceeded: Loadbalancer will retry if the gRPC status code in the response header is set to deadline-exceeded +// - resource-exhausted: Loadbalancer will retry if the gRPC status code in the response header is set to resource-exhausted +// - unavailable: Loadbalancer will retry if the gRPC status code in the response header is set to unavailable +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput) RetryConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicy) []string { + if v == nil { + return nil + } + return v.RetryConditions + }).(pulumi.StringArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout struct { + // 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. + Nanos *int `pulumi:"nanos"` + // 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 + Seconds *string `pulumi:"seconds"` +} + +// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs and URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput` via: +// +// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} +type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput + ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs struct { + // 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. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // 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 + Seconds pulumi.StringPtrInput `pulumi:"seconds"` +} + +func (URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput).ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs, URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtr and URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput + ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs + +func URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtr(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput { + return (*urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { + return &v + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +} + +// 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 +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout + return ret + }).(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *int { + if v == nil { + return nil + } + return v.Nanos + }).(pulumi.IntPtrOutput) +} + +// 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 +func (o URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout) *string { + if v == nil { + return nil + } + return v.Seconds + }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionTimeout struct { + // 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. + Nanos *int `pulumi:"nanos"` + // 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 + Seconds *string `pulumi:"seconds"` +} + +// URLMapPathMatcherDefaultRouteActionTimeoutInput is an input type that accepts URLMapPathMatcherDefaultRouteActionTimeoutArgs and URLMapPathMatcherDefaultRouteActionTimeoutOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionTimeoutInput` via: +// +// URLMapPathMatcherDefaultRouteActionTimeoutArgs{...} +type URLMapPathMatcherDefaultRouteActionTimeoutInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionTimeoutOutput() URLMapPathMatcherDefaultRouteActionTimeoutOutput + ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionTimeoutOutput +} + +type URLMapPathMatcherDefaultRouteActionTimeoutArgs struct { + // 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. + Nanos pulumi.IntPtrInput `pulumi:"nanos"` + // 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 + Seconds pulumi.StringPtrInput `pulumi:"seconds"` +} + +func (URLMapPathMatcherDefaultRouteActionTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutOutput() URLMapPathMatcherDefaultRouteActionTimeoutOutput { + return i.ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionTimeoutOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionTimeoutArgs) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionTimeoutOutput).ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionTimeoutPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionTimeoutArgs, URLMapPathMatcherDefaultRouteActionTimeoutPtr and URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionTimeoutPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionTimeoutArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionTimeoutPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput + ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionTimeoutPtrType URLMapPathMatcherDefaultRouteActionTimeoutArgs + +func URLMapPathMatcherDefaultRouteActionTimeoutPtr(v *URLMapPathMatcherDefaultRouteActionTimeoutArgs) URLMapPathMatcherDefaultRouteActionTimeoutPtrInput { + return (*urlmapPathMatcherDefaultRouteActionTimeoutPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionTimeoutPtrType) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionTimeoutOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutOutput() URLMapPathMatcherDefaultRouteActionTimeoutOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionTimeout) *URLMapPathMatcherDefaultRouteActionTimeout { + return &v + }).(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionTimeout) *int { return v.Nanos }).(pulumi.IntPtrOutput) +} + +// 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 +func (o URLMapPathMatcherDefaultRouteActionTimeoutOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionTimeout) *string { return v.Seconds }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionTimeout)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutput() URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) ToURLMapPathMatcherDefaultRouteActionTimeoutPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionTimeoutOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionTimeout) URLMapPathMatcherDefaultRouteActionTimeout { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionTimeout + return ret + }).(URLMapPathMatcherDefaultRouteActionTimeoutOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Nanos() pulumi.IntPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionTimeout) *int { + if v == nil { + return nil + } + return v.Nanos + }).(pulumi.IntPtrOutput) +} + +// 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 +func (o URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput) Seconds() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionTimeout) *string { + if v == nil { + return nil + } + return v.Seconds + }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionUrlRewrite struct { + // Prior to forwarding the request to the selected service, the request's host header is replaced + // with contents of hostRewrite. + // The value must be between 1 and 255 characters. + HostRewrite *string `pulumi:"hostRewrite"` + // Prior to forwarding the request to the selected backend service, the matching portion of the + // request's path is replaced by pathPrefixRewrite. + // The value must be between 1 and 1024 characters. + PathPrefixRewrite *string `pulumi:"pathPrefixRewrite"` +} + +// URLMapPathMatcherDefaultRouteActionUrlRewriteInput is an input type that accepts URLMapPathMatcherDefaultRouteActionUrlRewriteArgs and URLMapPathMatcherDefaultRouteActionUrlRewriteOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionUrlRewriteInput` via: +// +// URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{...} +type URLMapPathMatcherDefaultRouteActionUrlRewriteInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutput() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput + ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionUrlRewriteOutput +} + +type URLMapPathMatcherDefaultRouteActionUrlRewriteArgs struct { + // Prior to forwarding the request to the selected service, the request's host header is replaced + // with contents of hostRewrite. + // The value must be between 1 and 255 characters. + HostRewrite pulumi.StringPtrInput `pulumi:"hostRewrite"` + // Prior to forwarding the request to the selected backend service, the matching portion of the + // request's path is replaced by pathPrefixRewrite. + // The value must be between 1 and 1024 characters. + PathPrefixRewrite pulumi.StringPtrInput `pulumi:"pathPrefixRewrite"` +} + +func (URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutput() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { + return i.ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput).ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionUrlRewriteArgs, URLMapPathMatcherDefaultRouteActionUrlRewritePtr and URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput + ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput +} + +type urlmapPathMatcherDefaultRouteActionUrlRewritePtrType URLMapPathMatcherDefaultRouteActionUrlRewriteArgs + +func URLMapPathMatcherDefaultRouteActionUrlRewritePtr(v *URLMapPathMatcherDefaultRouteActionUrlRewriteArgs) URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput { + return (*urlmapPathMatcherDefaultRouteActionUrlRewritePtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionUrlRewritePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionUrlRewritePtrType) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionUrlRewritePtrType) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionUrlRewriteOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutput() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewriteOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionUrlRewrite) *URLMapPathMatcherDefaultRouteActionUrlRewrite { + return &v + }).(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) +} + +// Prior to forwarding the request to the selected service, the request's host header is replaced +// with contents of hostRewrite. +// The value must be between 1 and 255 characters. +func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { return v.HostRewrite }).(pulumi.StringPtrOutput) +} + +// Prior to forwarding the request to the selected backend service, the matching portion of the +// request's path is replaced by pathPrefixRewrite. +// The value must be between 1 and 1024 characters. +func (o URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { return v.PathPrefixRewrite }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionUrlRewrite)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput() URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) ToURLMapPathMatcherDefaultRouteActionUrlRewritePtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) Elem() URLMapPathMatcherDefaultRouteActionUrlRewriteOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionUrlRewrite) URLMapPathMatcherDefaultRouteActionUrlRewrite { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionUrlRewrite + return ret + }).(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput) +} + +// Prior to forwarding the request to the selected service, the request's host header is replaced +// with contents of hostRewrite. +// The value must be between 1 and 255 characters. +func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) HostRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { + if v == nil { + return nil + } + return v.HostRewrite + }).(pulumi.StringPtrOutput) +} + +// Prior to forwarding the request to the selected backend service, the matching portion of the +// request's path is replaced by pathPrefixRewrite. +// The value must be between 1 and 1024 characters. +func (o URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput) PathPrefixRewrite() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionUrlRewrite) *string { + if v == nil { + return nil + } + return v.PathPrefixRewrite + }).(pulumi.StringPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendService struct { + // The full or partial URL to the default BackendService resource. Before forwarding the + // request to backendService, the loadbalancer applies any relevant headerActions + // specified as part of this backendServiceWeight. + BackendService *string `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for + // the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing + // HttpRouteRule, PathMatcher and UrlMap. + // Structure is documented below. + HeaderAction *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to backendService, computed as + // weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request + // has been directed to a backendService, subsequent requests will be sent to the same backendService + // as determined by the BackendService's session affinity policy. + // The value must be between 0 and 1000 + Weight *int `pulumi:"weight"` +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs{...} +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs struct { + // The full or partial URL to the default BackendService resource. Before forwarding the + // request to backendService, the loadbalancer applies any relevant headerActions + // specified as part of this backendServiceWeight. + BackendService pulumi.StringPtrInput `pulumi:"backendService"` + // Specifies changes to request and response headers that need to take effect for + // the selected backendService. + // headerAction specified here take effect before headerAction in the enclosing + // HttpRouteRule, PathMatcher and UrlMap. + // Structure is documented below. + HeaderAction URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput `pulumi:"headerAction"` + // Specifies the fraction of traffic sent to backendService, computed as + // weight / (sum of all weightedBackendService weights in routeAction) . + // The selection of a backend service is determined only for new traffic. Once a user's request + // has been directed to a backendService, subsequent requests will be sent to the same backendService + // as determined by the BackendService's session affinity policy. + // The value must be between 0 and 1000 + Weight pulumi.IntPtrInput `pulumi:"weight"` +} + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray{ URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs{...} } +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { + return o +} + +// The full or partial URL to the default BackendService resource. Before forwarding the +// request to backendService, the loadbalancer applies any relevant headerActions +// specified as part of this backendServiceWeight. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) BackendService() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendService) *string { return v.BackendService }).(pulumi.StringPtrOutput) +} + +// Specifies changes to request and response headers that need to take effect for +// the selected backendService. +// headerAction specified here take effect before headerAction in the enclosing +// HttpRouteRule, PathMatcher and UrlMap. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) HeaderAction() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendService) *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction { + return v.HeaderAction + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +} + +// Specifies the fraction of traffic sent to backendService, computed as +// weight / (sum of all weightedBackendService weights in routeAction) . +// The selection of a backend service is determined only for new traffic. Once a user's request +// has been directed to a backendService, subsequent requests will be sent to the same backendService +// as determined by the BackendService's session affinity policy. +// The value must be between 0 and 1000 +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) Weight() pulumi.IntPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendService) *int { return v.Weight }).(pulumi.IntPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendService)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultRouteActionWeightedBackendService { + return vs[0].([]URLMapPathMatcherDefaultRouteActionWeightedBackendService)[vs[1].(int)] + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction struct { + // Headers to add to a matching request prior to forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request prior to + // forwarding the request to the backendService. + RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` + // Headers to add the response prior to sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response prior to sending the + // response back to the client. + ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs struct { + // Headers to add to a matching request prior to forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request prior to + // forwarding the request to the backendService. + RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` + // Headers to add the response prior to sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response prior to sending the + // response back to the client. + ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` +} + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput).ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs, URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtr and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput +} + +type urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs + +func URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtr(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput { + return (*urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType)(v) +} + +func (*urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrType) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction { + return &v + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) +} + +// Headers to add to a matching request prior to forwarding the request to the backendService. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the request prior to +// forwarding the request to the backendService. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +// Headers to add the response prior to sending the response back to the client. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return v.ResponseHeadersToAdds + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the response prior to sending the +// response back to the client. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) Elem() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction + return ret + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput) +} + +// Headers to add to a matching request prior to forwarding the request to the backendService. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + if v == nil { + return nil + } + return v.RequestHeadersToAdds + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the request prior to +// forwarding the request to the backendService. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { + if v == nil { + return nil + } + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +// Headers to add the response prior to sending the response back to the client. +// Structure is documented below. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + if v == nil { + return nil + } + return v.ResponseHeadersToAdds + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the response prior to sending the +// response back to the client. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderAction) []string { + if v == nil { + return nil + } + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd struct { + // The name of the header to add. + HeaderName *string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue *string `pulumi:"headerValue"` + // 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. + Replace *bool `pulumi:"replace"` +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs struct { + // The name of the header to add. + HeaderName pulumi.StringPtrInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` + // 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. + Replace pulumi.BoolPtrInput `pulumi:"replace"` +} + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{ URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{...} } +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return o +} + +// The name of the header to add. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { + return v.HeaderName + }).(pulumi.StringPtrOutput) +} + +// The value of the header to add. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *string { + return v.HeaderValue + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd) *bool { + return v.Replace + }).(pulumi.BoolPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd { + return vs[0].([]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd struct { + // The name of the header to add. + HeaderName *string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue *string `pulumi:"headerValue"` + // 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. + Replace *bool `pulumi:"replace"` +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs struct { + // The name of the header to add. + HeaderName pulumi.StringPtrInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringPtrInput `pulumi:"headerValue"` + // 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. + Replace pulumi.BoolPtrInput `pulumi:"replace"` +} + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +} + +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput is an input type that accepts URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray and URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput` via: +// +// URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{ URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{...} } +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput + ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray []URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return i.ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return o +} + +// The name of the header to add. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderName() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { + return v.HeaderName + }).(pulumi.StringPtrOutput) +} + +// The value of the header to add. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) HeaderValue() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *string { + return v.HeaderValue + }).(pulumi.StringPtrOutput) +} + +// 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. +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) Replace() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd) *bool { + return v.Replace + }).(pulumi.BoolPtrOutput) +} + +type URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput() URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) ToURLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput { + return o +} + +func (o URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd { + return vs[0].([]URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAdd)[vs[1].(int)] + }).(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput) +} + +type URLMapPathMatcherDefaultUrlRedirect struct { + // The host that will be used in the redirect response instead of the one that was + // supplied in the request. The value must be between 1 and 255 characters. + HostRedirect *string `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. If set to + // false, the URL scheme of the redirected request will remain the same as that of the + // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this + // true for TargetHttpsProxy is not permitted. The default is set to false. + HttpsRedirect *bool `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one that was + // supplied in the request. pathRedirect cannot be supplied together with + // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the + // original request will be used for the redirect. The value must be between 1 and 1024 + // characters. + PathRedirect *string `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, + // retaining the remaining portion of the URL before redirecting the request. + // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or + // neither. If neither is supplied, the path of the original request will be used for + // the redirect. The value must be between 1 and 1024 characters. + PrefixRedirect *string `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode *string `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed prior + // to redirecting the request. If set to false, the query portion of the original URL is + // retained. The default is set to false. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery bool `pulumi:"stripQuery"` +} + +// URLMapPathMatcherDefaultUrlRedirectInput is an input type that accepts URLMapPathMatcherDefaultUrlRedirectArgs and URLMapPathMatcherDefaultUrlRedirectOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultUrlRedirectInput` via: +// +// URLMapPathMatcherDefaultUrlRedirectArgs{...} +type URLMapPathMatcherDefaultUrlRedirectInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultUrlRedirectOutput() URLMapPathMatcherDefaultUrlRedirectOutput + ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Context) URLMapPathMatcherDefaultUrlRedirectOutput +} + +type URLMapPathMatcherDefaultUrlRedirectArgs struct { + // The host that will be used in the redirect response instead of the one that was + // supplied in the request. The value must be between 1 and 255 characters. + HostRedirect pulumi.StringPtrInput `pulumi:"hostRedirect"` + // If set to true, the URL scheme in the redirected request is set to https. If set to + // false, the URL scheme of the redirected request will remain the same as that of the + // request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this + // true for TargetHttpsProxy is not permitted. The default is set to false. + HttpsRedirect pulumi.BoolPtrInput `pulumi:"httpsRedirect"` + // The path that will be used in the redirect response instead of the one that was + // supplied in the request. pathRedirect cannot be supplied together with + // prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the + // original request will be used for the redirect. The value must be between 1 and 1024 + // characters. + PathRedirect pulumi.StringPtrInput `pulumi:"pathRedirect"` + // The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, + // retaining the remaining portion of the URL before redirecting the request. + // prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or + // neither. If neither is supplied, the path of the original request will be used for + // the redirect. The value must be between 1 and 1024 characters. + PrefixRedirect pulumi.StringPtrInput `pulumi:"prefixRedirect"` + // The HTTP Status code to use for this RedirectAction. Supported values are: + // * MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. + // * FOUND, which corresponds to 302. + // * SEE_OTHER which corresponds to 303. + // * TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method + // will be retained. + // * PERMANENT_REDIRECT, which corresponds to 308. In this case, + // the request method will be retained. + RedirectResponseCode pulumi.StringPtrInput `pulumi:"redirectResponseCode"` + // If set to true, any accompanying query portion of the original URL is removed prior + // to redirecting the request. If set to false, the query portion of the original URL is + // retained. The default is set to false. + // This field is required to ensure an empty block is not set. The normal default value is false. + StripQuery pulumi.BoolInput `pulumi:"stripQuery"` +} + +func (URLMapPathMatcherDefaultUrlRedirectArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +} + +func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectOutput() URLMapPathMatcherDefaultUrlRedirectOutput { + return i.ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultUrlRedirectOutput) +} + +func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return i.ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherDefaultUrlRedirectArgs) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultUrlRedirectOutput).ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherDefaultUrlRedirectPtrInput is an input type that accepts URLMapPathMatcherDefaultUrlRedirectArgs, URLMapPathMatcherDefaultUrlRedirectPtr and URLMapPathMatcherDefaultUrlRedirectPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherDefaultUrlRedirectPtrInput` via: +// +// URLMapPathMatcherDefaultUrlRedirectArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherDefaultUrlRedirectPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput + ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput +} + +type urlmapPathMatcherDefaultUrlRedirectPtrType URLMapPathMatcherDefaultUrlRedirectArgs + +func URLMapPathMatcherDefaultUrlRedirectPtr(v *URLMapPathMatcherDefaultUrlRedirectArgs) URLMapPathMatcherDefaultUrlRedirectPtrInput { + return (*urlmapPathMatcherDefaultUrlRedirectPtrType)(v) +} + +func (*urlmapPathMatcherDefaultUrlRedirectPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +} + +func (i *urlmapPathMatcherDefaultUrlRedirectPtrType) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return i.ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherDefaultUrlRedirectPtrType) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherDefaultUrlRedirectPtrOutput) +} + +type URLMapPathMatcherDefaultUrlRedirectOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultUrlRedirectOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectOutput() URLMapPathMatcherDefaultUrlRedirectOutput { + return o +} + +func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectOutput { + return o +} + +func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return o.ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherDefaultUrlRedirectOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherDefaultUrlRedirect) *URLMapPathMatcherDefaultUrlRedirect { + return &v + }).(URLMapPathMatcherDefaultUrlRedirectPtrOutput) +} + +// The host that will be used in the redirect response instead of the one that was +// supplied in the request. The value must be between 1 and 255 characters. +func (o URLMapPathMatcherDefaultUrlRedirectOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.HostRedirect }).(pulumi.StringPtrOutput) +} + +// If set to true, the URL scheme in the redirected request is set to https. If set to +// false, the URL scheme of the redirected request will remain the same as that of the +// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this +// true for TargetHttpsProxy is not permitted. The default is set to false. +func (o URLMapPathMatcherDefaultUrlRedirectOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *bool { return v.HttpsRedirect }).(pulumi.BoolPtrOutput) +} + +// The path that will be used in the redirect response instead of the one that was +// supplied in the request. pathRedirect cannot be supplied together with +// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the +// original request will be used for the redirect. The value must be between 1 and 1024 +// characters. +func (o URLMapPathMatcherDefaultUrlRedirectOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.PathRedirect }).(pulumi.StringPtrOutput) +} + +// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, +// retaining the remaining portion of the URL before redirecting the request. +// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or +// neither. If neither is supplied, the path of the original request will be used for +// the redirect. The value must be between 1 and 1024 characters. +func (o URLMapPathMatcherDefaultUrlRedirectOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.PrefixRedirect }).(pulumi.StringPtrOutput) +} + +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o URLMapPathMatcherDefaultUrlRedirectOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) *string { return v.RedirectResponseCode }).(pulumi.StringPtrOutput) +} + +// If set to true, any accompanying query portion of the original URL is removed prior +// to redirecting the request. If set to false, the query portion of the original URL is +// retained. The default is set to false. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o URLMapPathMatcherDefaultUrlRedirectOutput) StripQuery() pulumi.BoolOutput { + return o.ApplyT(func(v URLMapPathMatcherDefaultUrlRedirect) bool { return v.StripQuery }).(pulumi.BoolOutput) +} + +type URLMapPathMatcherDefaultUrlRedirectPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherDefaultUrlRedirectPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherDefaultUrlRedirect)(nil)).Elem() +} + +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutput() URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) ToURLMapPathMatcherDefaultUrlRedirectPtrOutputWithContext(ctx context.Context) URLMapPathMatcherDefaultUrlRedirectPtrOutput { + return o +} + +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) Elem() URLMapPathMatcherDefaultUrlRedirectOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) URLMapPathMatcherDefaultUrlRedirect { + if v != nil { + return *v + } + var ret URLMapPathMatcherDefaultUrlRedirect + return ret + }).(URLMapPathMatcherDefaultUrlRedirectOutput) +} + +// The host that will be used in the redirect response instead of the one that was +// supplied in the request. The value must be between 1 and 255 characters. +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) HostRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { + if v == nil { + return nil + } + return v.HostRedirect + }).(pulumi.StringPtrOutput) +} + +// If set to true, the URL scheme in the redirected request is set to https. If set to +// false, the URL scheme of the redirected request will remain the same as that of the +// request. This must only be set for UrlMaps used in TargetHttpProxys. Setting this +// true for TargetHttpsProxy is not permitted. The default is set to false. +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) HttpsRedirect() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *bool { + if v == nil { + return nil + } + return v.HttpsRedirect + }).(pulumi.BoolPtrOutput) +} + +// The path that will be used in the redirect response instead of the one that was +// supplied in the request. pathRedirect cannot be supplied together with +// prefixRedirect. Supply one alone or neither. If neither is supplied, the path of the +// original request will be used for the redirect. The value must be between 1 and 1024 +// characters. +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) PathRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { + if v == nil { + return nil + } + return v.PathRedirect + }).(pulumi.StringPtrOutput) +} + +// The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, +// retaining the remaining portion of the URL before redirecting the request. +// prefixRedirect cannot be supplied together with pathRedirect. Supply one alone or +// neither. If neither is supplied, the path of the original request will be used for +// the redirect. The value must be between 1 and 1024 characters. +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) PrefixRedirect() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { + if v == nil { + return nil + } + return v.PrefixRedirect + }).(pulumi.StringPtrOutput) +} + +// The HTTP Status code to use for this RedirectAction. Supported values are: +// - MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. +// - FOUND, which corresponds to 302. +// - SEE_OTHER which corresponds to 303. +// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method +// will be retained. +// - PERMANENT_REDIRECT, which corresponds to 308. In this case, +// the request method will be retained. +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) RedirectResponseCode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *string { + if v == nil { + return nil + } + return v.RedirectResponseCode + }).(pulumi.StringPtrOutput) +} + +// If set to true, any accompanying query portion of the original URL is removed prior +// to redirecting the request. If set to false, the query portion of the original URL is +// retained. The default is set to false. +// This field is required to ensure an empty block is not set. The normal default value is false. +func (o URLMapPathMatcherDefaultUrlRedirectPtrOutput) StripQuery() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *URLMapPathMatcherDefaultUrlRedirect) *bool { + if v == nil { + return nil + } + return &v.StripQuery + }).(pulumi.BoolPtrOutput) +} + +type URLMapPathMatcherHeaderAction struct { + // Headers to add to a matching request prior to forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds []URLMapPathMatcherHeaderActionRequestHeadersToAdd `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request prior to + // forwarding the request to the backendService. + RequestHeadersToRemoves []string `pulumi:"requestHeadersToRemoves"` + // Headers to add the response prior to sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds []URLMapPathMatcherHeaderActionResponseHeadersToAdd `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response prior to sending the + // response back to the client. + ResponseHeadersToRemoves []string `pulumi:"responseHeadersToRemoves"` +} + +// URLMapPathMatcherHeaderActionInput is an input type that accepts URLMapPathMatcherHeaderActionArgs and URLMapPathMatcherHeaderActionOutput values. +// You can construct a concrete instance of `URLMapPathMatcherHeaderActionInput` via: +// +// URLMapPathMatcherHeaderActionArgs{...} +type URLMapPathMatcherHeaderActionInput interface { + pulumi.Input + + ToURLMapPathMatcherHeaderActionOutput() URLMapPathMatcherHeaderActionOutput + ToURLMapPathMatcherHeaderActionOutputWithContext(context.Context) URLMapPathMatcherHeaderActionOutput +} + +type URLMapPathMatcherHeaderActionArgs struct { + // Headers to add to a matching request prior to forwarding the request to the backendService. + // Structure is documented below. + RequestHeadersToAdds URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput `pulumi:"requestHeadersToAdds"` + // A list of header names for headers that need to be removed from the request prior to + // forwarding the request to the backendService. + RequestHeadersToRemoves pulumi.StringArrayInput `pulumi:"requestHeadersToRemoves"` + // Headers to add the response prior to sending the response back to the client. + // Structure is documented below. + ResponseHeadersToAdds URLMapPathMatcherHeaderActionResponseHeadersToAddArrayInput `pulumi:"responseHeadersToAdds"` + // A list of header names for headers that need to be removed from the response prior to sending the + // response back to the client. + ResponseHeadersToRemoves pulumi.StringArrayInput `pulumi:"responseHeadersToRemoves"` +} + +func (URLMapPathMatcherHeaderActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherHeaderAction)(nil)).Elem() +} + +func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionOutput() URLMapPathMatcherHeaderActionOutput { + return i.ToURLMapPathMatcherHeaderActionOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionOutput) +} + +func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { + return i.ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherHeaderActionArgs) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionOutput).ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx) +} + +// URLMapPathMatcherHeaderActionPtrInput is an input type that accepts URLMapPathMatcherHeaderActionArgs, URLMapPathMatcherHeaderActionPtr and URLMapPathMatcherHeaderActionPtrOutput values. +// You can construct a concrete instance of `URLMapPathMatcherHeaderActionPtrInput` via: +// +// URLMapPathMatcherHeaderActionArgs{...} +// +// or: +// +// nil +type URLMapPathMatcherHeaderActionPtrInput interface { + pulumi.Input + + ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput + ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Context) URLMapPathMatcherHeaderActionPtrOutput +} + +type urlmapPathMatcherHeaderActionPtrType URLMapPathMatcherHeaderActionArgs + +func URLMapPathMatcherHeaderActionPtr(v *URLMapPathMatcherHeaderActionArgs) URLMapPathMatcherHeaderActionPtrInput { + return (*urlmapPathMatcherHeaderActionPtrType)(v) +} + +func (*urlmapPathMatcherHeaderActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherHeaderAction)(nil)).Elem() +} + +func (i *urlmapPathMatcherHeaderActionPtrType) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { + return i.ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Background()) +} + +func (i *urlmapPathMatcherHeaderActionPtrType) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionPtrOutput) +} + +type URLMapPathMatcherHeaderActionOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherHeaderActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherHeaderAction)(nil)).Elem() +} + +func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionOutput() URLMapPathMatcherHeaderActionOutput { + return o +} + +func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionOutput { + return o +} + +func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { + return o.ToURLMapPathMatcherHeaderActionPtrOutputWithContext(context.Background()) +} + +func (o URLMapPathMatcherHeaderActionOutput) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v URLMapPathMatcherHeaderAction) *URLMapPathMatcherHeaderAction { + return &v + }).(URLMapPathMatcherHeaderActionPtrOutput) +} + +// Headers to add to a matching request prior to forwarding the request to the backendService. +// Structure is documented below. +func (o URLMapPathMatcherHeaderActionOutput) RequestHeadersToAdds() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionRequestHeadersToAdd { + return v.RequestHeadersToAdds + }).(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the request prior to +// forwarding the request to the backendService. +func (o URLMapPathMatcherHeaderActionOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []string { return v.RequestHeadersToRemoves }).(pulumi.StringArrayOutput) +} + +// Headers to add the response prior to sending the response back to the client. +// Structure is documented below. +func (o URLMapPathMatcherHeaderActionOutput) ResponseHeadersToAdds() URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionResponseHeadersToAdd { + return v.ResponseHeadersToAdds + }).(URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the response prior to sending the +// response back to the client. +func (o URLMapPathMatcherHeaderActionOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v URLMapPathMatcherHeaderAction) []string { return v.ResponseHeadersToRemoves }).(pulumi.StringArrayOutput) +} + +type URLMapPathMatcherHeaderActionPtrOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherHeaderActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**URLMapPathMatcherHeaderAction)(nil)).Elem() +} + +func (o URLMapPathMatcherHeaderActionPtrOutput) ToURLMapPathMatcherHeaderActionPtrOutput() URLMapPathMatcherHeaderActionPtrOutput { + return o +} + +func (o URLMapPathMatcherHeaderActionPtrOutput) ToURLMapPathMatcherHeaderActionPtrOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionPtrOutput { + return o +} + +func (o URLMapPathMatcherHeaderActionPtrOutput) Elem() URLMapPathMatcherHeaderActionOutput { + return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) URLMapPathMatcherHeaderAction { + if v != nil { + return *v + } + var ret URLMapPathMatcherHeaderAction + return ret + }).(URLMapPathMatcherHeaderActionOutput) +} + +// Headers to add to a matching request prior to forwarding the request to the backendService. +// Structure is documented below. +func (o URLMapPathMatcherHeaderActionPtrOutput) RequestHeadersToAdds() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionRequestHeadersToAdd { + if v == nil { + return nil + } + return v.RequestHeadersToAdds + }).(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the request prior to +// forwarding the request to the backendService. +func (o URLMapPathMatcherHeaderActionPtrOutput) RequestHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []string { + if v == nil { + return nil + } + return v.RequestHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +// Headers to add the response prior to sending the response back to the client. +// Structure is documented below. +func (o URLMapPathMatcherHeaderActionPtrOutput) ResponseHeadersToAdds() URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []URLMapPathMatcherHeaderActionResponseHeadersToAdd { + if v == nil { + return nil + } + return v.ResponseHeadersToAdds + }).(URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput) +} + +// A list of header names for headers that need to be removed from the response prior to sending the +// response back to the client. +func (o URLMapPathMatcherHeaderActionPtrOutput) ResponseHeadersToRemoves() pulumi.StringArrayOutput { + return o.ApplyT(func(v *URLMapPathMatcherHeaderAction) []string { + if v == nil { + return nil + } + return v.ResponseHeadersToRemoves + }).(pulumi.StringArrayOutput) +} + +type URLMapPathMatcherHeaderActionRequestHeadersToAdd struct { + // The name of the header to add. + HeaderName string `pulumi:"headerName"` + // The value of the header to add. + HeaderValue string `pulumi:"headerValue"` + // 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. + Replace bool `pulumi:"replace"` +} + +// URLMapPathMatcherHeaderActionRequestHeadersToAddInput is an input type that accepts URLMapPathMatcherHeaderActionRequestHeadersToAddArgs and URLMapPathMatcherHeaderActionRequestHeadersToAddOutput values. +// You can construct a concrete instance of `URLMapPathMatcherHeaderActionRequestHeadersToAddInput` via: +// +// URLMapPathMatcherHeaderActionRequestHeadersToAddArgs{...} +type URLMapPathMatcherHeaderActionRequestHeadersToAddInput interface { + pulumi.Input + + ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddOutput + ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput +} + +type URLMapPathMatcherHeaderActionRequestHeadersToAddArgs struct { + // The name of the header to add. + HeaderName pulumi.StringInput `pulumi:"headerName"` + // The value of the header to add. + HeaderValue pulumi.StringInput `pulumi:"headerValue"` + // 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. + Replace pulumi.BoolInput `pulumi:"replace"` +} + +func (URLMapPathMatcherHeaderActionRequestHeadersToAddArgs) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { + return i.ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArgs) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) +} + +// URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput is an input type that accepts URLMapPathMatcherHeaderActionRequestHeadersToAddArray and URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput values. +// You can construct a concrete instance of `URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput` via: +// +// URLMapPathMatcherHeaderActionRequestHeadersToAddArray{ URLMapPathMatcherHeaderActionRequestHeadersToAddArgs{...} } +type URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput interface { + pulumi.Input + + ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput + ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput +} + +type URLMapPathMatcherHeaderActionRequestHeadersToAddArray []URLMapPathMatcherHeaderActionRequestHeadersToAddInput + +func (URLMapPathMatcherHeaderActionRequestHeadersToAddArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { + return i.ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(context.Background()) +} + +func (i URLMapPathMatcherHeaderActionRequestHeadersToAddArray) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) +} + +type URLMapPathMatcherHeaderActionRequestHeadersToAddOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) ElementType() reflect.Type { + return reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { + return o +} + +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { + return o +} + +// The name of the header to add. +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) HeaderName() pulumi.StringOutput { + return o.ApplyT(func(v URLMapPathMatcherHeaderActionRequestHeadersToAdd) string { return v.HeaderName }).(pulumi.StringOutput) +} + +// The value of the header to add. +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) HeaderValue() pulumi.StringOutput { + return o.ApplyT(func(v URLMapPathMatcherHeaderActionRequestHeadersToAdd) string { return v.HeaderValue }).(pulumi.StringOutput) +} + +// 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. +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) Replace() pulumi.BoolOutput { + return o.ApplyT(func(v URLMapPathMatcherHeaderActionRequestHeadersToAdd) bool { return v.Replace }).(pulumi.BoolOutput) +} + +type URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput struct{ *pulumi.OutputState } + +func (URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]URLMapPathMatcherHeaderActionRequestHeadersToAdd)(nil)).Elem() +} + +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput() URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) ToURLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutputWithContext(ctx context.Context) URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput { + return o +} + +func (o URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput) Index(i pulumi.IntInput) URLMapPathMatcherHeaderActionRequestHeadersToAddOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) URLMapPathMatcherHeaderActionRequestHeadersToAdd { + return vs[0].([]URLMapPathMatcherHeaderActionRequestHeadersToAdd)[vs[1].(int)] + }).(URLMapPathMatcherHeaderActionRequestHeadersToAddOutput) +} + type URLMapPathMatcherHeaderActionResponseHeadersToAdd struct { // The name of the header to add. HeaderName string `pulumi:"headerName"` @@ -12251,6 +16675,9 @@ func (o GetBackendServiceOutlierDetectionIntervalArrayOutput) Index(i pulumi.Int } type GetBackendServiceSecuritySetting struct { + // The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + // Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + AwsV4Authentications []GetBackendServiceSecuritySettingAwsV4Authentication `pulumi:"awsV4Authentications"` // ClientTlsPolicy is a resource that specifies how a client should authenticate // connections to backends of a service. This resource itself does not affect // configuration unless it is attached to a backend service resource. @@ -12273,6 +16700,9 @@ type GetBackendServiceSecuritySettingInput interface { } type GetBackendServiceSecuritySettingArgs struct { + // The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + // Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + AwsV4Authentications GetBackendServiceSecuritySettingAwsV4AuthenticationArrayInput `pulumi:"awsV4Authentications"` // ClientTlsPolicy is a resource that specifies how a client should authenticate // connections to backends of a service. This resource itself does not affect // configuration unless it is attached to a backend service resource. @@ -12334,6 +16764,14 @@ func (o GetBackendServiceSecuritySettingOutput) ToGetBackendServiceSecuritySetti return o } +// The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. +// Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. +func (o GetBackendServiceSecuritySettingOutput) AwsV4Authentications() GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput { + return o.ApplyT(func(v GetBackendServiceSecuritySetting) []GetBackendServiceSecuritySettingAwsV4Authentication { + return v.AwsV4Authentications + }).(GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput) +} + // ClientTlsPolicy is a resource that specifies how a client should authenticate // connections to backends of a service. This resource itself does not affect // configuration unless it is attached to a backend service resource. @@ -12368,6 +16806,136 @@ func (o GetBackendServiceSecuritySettingArrayOutput) Index(i pulumi.IntInput) Ge }).(GetBackendServiceSecuritySettingOutput) } +type GetBackendServiceSecuritySettingAwsV4Authentication struct { + // The access key used for s3 bucket authentication. + // Required 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. + AccessKey string `pulumi:"accessKey"` + // The identifier of an access key used for s3 bucket authentication. + AccessKeyId string `pulumi:"accessKeyId"` + // The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + AccessKeyVersion string `pulumi:"accessKeyVersion"` + // 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. + // For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + OriginRegion string `pulumi:"originRegion"` +} + +// GetBackendServiceSecuritySettingAwsV4AuthenticationInput is an input type that accepts GetBackendServiceSecuritySettingAwsV4AuthenticationArgs and GetBackendServiceSecuritySettingAwsV4AuthenticationOutput values. +// You can construct a concrete instance of `GetBackendServiceSecuritySettingAwsV4AuthenticationInput` via: +// +// GetBackendServiceSecuritySettingAwsV4AuthenticationArgs{...} +type GetBackendServiceSecuritySettingAwsV4AuthenticationInput interface { + pulumi.Input + + ToGetBackendServiceSecuritySettingAwsV4AuthenticationOutput() GetBackendServiceSecuritySettingAwsV4AuthenticationOutput + ToGetBackendServiceSecuritySettingAwsV4AuthenticationOutputWithContext(context.Context) GetBackendServiceSecuritySettingAwsV4AuthenticationOutput +} + +type GetBackendServiceSecuritySettingAwsV4AuthenticationArgs struct { + // The access key used for s3 bucket authentication. + // Required 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. + AccessKey pulumi.StringInput `pulumi:"accessKey"` + // The identifier of an access key used for s3 bucket authentication. + AccessKeyId pulumi.StringInput `pulumi:"accessKeyId"` + // The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + AccessKeyVersion pulumi.StringInput `pulumi:"accessKeyVersion"` + // 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. + // For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + OriginRegion pulumi.StringInput `pulumi:"originRegion"` +} + +func (GetBackendServiceSecuritySettingAwsV4AuthenticationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackendServiceSecuritySettingAwsV4Authentication)(nil)).Elem() +} + +func (i GetBackendServiceSecuritySettingAwsV4AuthenticationArgs) ToGetBackendServiceSecuritySettingAwsV4AuthenticationOutput() GetBackendServiceSecuritySettingAwsV4AuthenticationOutput { + return i.ToGetBackendServiceSecuritySettingAwsV4AuthenticationOutputWithContext(context.Background()) +} + +func (i GetBackendServiceSecuritySettingAwsV4AuthenticationArgs) ToGetBackendServiceSecuritySettingAwsV4AuthenticationOutputWithContext(ctx context.Context) GetBackendServiceSecuritySettingAwsV4AuthenticationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) +} + +// GetBackendServiceSecuritySettingAwsV4AuthenticationArrayInput is an input type that accepts GetBackendServiceSecuritySettingAwsV4AuthenticationArray and GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput values. +// You can construct a concrete instance of `GetBackendServiceSecuritySettingAwsV4AuthenticationArrayInput` via: +// +// GetBackendServiceSecuritySettingAwsV4AuthenticationArray{ GetBackendServiceSecuritySettingAwsV4AuthenticationArgs{...} } +type GetBackendServiceSecuritySettingAwsV4AuthenticationArrayInput interface { + pulumi.Input + + ToGetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput() GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput + ToGetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutputWithContext(context.Context) GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput +} + +type GetBackendServiceSecuritySettingAwsV4AuthenticationArray []GetBackendServiceSecuritySettingAwsV4AuthenticationInput + +func (GetBackendServiceSecuritySettingAwsV4AuthenticationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackendServiceSecuritySettingAwsV4Authentication)(nil)).Elem() +} + +func (i GetBackendServiceSecuritySettingAwsV4AuthenticationArray) ToGetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput() GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput { + return i.ToGetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutputWithContext(context.Background()) +} + +func (i GetBackendServiceSecuritySettingAwsV4AuthenticationArray) ToGetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutputWithContext(ctx context.Context) GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput) +} + +type GetBackendServiceSecuritySettingAwsV4AuthenticationOutput struct{ *pulumi.OutputState } + +func (GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetBackendServiceSecuritySettingAwsV4Authentication)(nil)).Elem() +} + +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) ToGetBackendServiceSecuritySettingAwsV4AuthenticationOutput() GetBackendServiceSecuritySettingAwsV4AuthenticationOutput { + return o +} + +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) ToGetBackendServiceSecuritySettingAwsV4AuthenticationOutputWithContext(ctx context.Context) GetBackendServiceSecuritySettingAwsV4AuthenticationOutput { + return o +} + +// The access key used for s3 bucket authentication. +// Required 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. +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) AccessKey() pulumi.StringOutput { + return o.ApplyT(func(v GetBackendServiceSecuritySettingAwsV4Authentication) string { return v.AccessKey }).(pulumi.StringOutput) +} + +// The identifier of an access key used for s3 bucket authentication. +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) AccessKeyId() pulumi.StringOutput { + return o.ApplyT(func(v GetBackendServiceSecuritySettingAwsV4Authentication) string { return v.AccessKeyId }).(pulumi.StringOutput) +} + +// The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) AccessKeyVersion() pulumi.StringOutput { + return o.ApplyT(func(v GetBackendServiceSecuritySettingAwsV4Authentication) string { return v.AccessKeyVersion }).(pulumi.StringOutput) +} + +// 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. +// For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) OriginRegion() pulumi.StringOutput { + return o.ApplyT(func(v GetBackendServiceSecuritySettingAwsV4Authentication) string { return v.OriginRegion }).(pulumi.StringOutput) +} + +type GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput struct{ *pulumi.OutputState } + +func (GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetBackendServiceSecuritySettingAwsV4Authentication)(nil)).Elem() +} + +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput) ToGetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput() GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput { + return o +} + +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput) ToGetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutputWithContext(ctx context.Context) GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput { + return o +} + +func (o GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput) Index(i pulumi.IntInput) GetBackendServiceSecuritySettingAwsV4AuthenticationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetBackendServiceSecuritySettingAwsV4Authentication { + return vs[0].([]GetBackendServiceSecuritySettingAwsV4Authentication)[vs[1].(int)] + }).(GetBackendServiceSecuritySettingAwsV4AuthenticationOutput) +} + type GetDiskAsyncPrimaryDisk struct { // Primary disk for asynchronous disk replication. Disk string `pulumi:"disk"` @@ -16511,6 +21079,8 @@ type GetInstanceBootDiskInitializeParam struct { ResourceManagerTags map[string]interface{} `pulumi:"resourceManagerTags"` // The size of the image in gigabytes. Size int `pulumi:"size"` + // The URL of the storage pool in which the new disk is created + StoragePool string `pulumi:"storagePool"` // The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. Type string `pulumi:"type"` } @@ -16541,6 +21111,8 @@ type GetInstanceBootDiskInitializeParamArgs struct { ResourceManagerTags pulumi.MapInput `pulumi:"resourceManagerTags"` // The size of the image in gigabytes. Size pulumi.IntInput `pulumi:"size"` + // The URL of the storage pool in which the new disk is created + StoragePool pulumi.StringInput `pulumi:"storagePool"` // The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. Type pulumi.StringInput `pulumi:"type"` } @@ -16631,6 +21203,11 @@ func (o GetInstanceBootDiskInitializeParamOutput) Size() pulumi.IntOutput { return o.ApplyT(func(v GetInstanceBootDiskInitializeParam) int { return v.Size }).(pulumi.IntOutput) } +// The URL of the storage pool in which the new disk is created +func (o GetInstanceBootDiskInitializeParamOutput) StoragePool() pulumi.StringOutput { + return o.ApplyT(func(v GetInstanceBootDiskInitializeParam) string { return v.StoragePool }).(pulumi.StringOutput) +} + // The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. func (o GetInstanceBootDiskInitializeParamOutput) Type() pulumi.StringOutput { return o.ApplyT(func(v GetInstanceBootDiskInitializeParam) string { return v.Type }).(pulumi.StringOutput) @@ -35547,6 +40124,54 @@ func (o GetSubnetworksSubnetworkArrayOutput) Index(i pulumi.IntInput) GetSubnetw } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAddInput)(nil)).Elem(), URLMapHeaderActionRequestHeadersToAddArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), URLMapHeaderActionRequestHeadersToAddArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAddInput)(nil)).Elem(), URLMapHeaderActionResponseHeadersToAddArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapHeaderActionResponseHeadersToAddArrayInput)(nil)).Elem(), URLMapHeaderActionResponseHeadersToAddArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapHostRuleInput)(nil)).Elem(), URLMapHostRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapHostRuleArrayInput)(nil)).Elem(), URLMapHostRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherInput)(nil)).Elem(), URLMapPathMatcherArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherArrayInput)(nil)).Elem(), URLMapPathMatcherArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionCorsPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionCorsPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeoutInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionTimeoutArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionTimeoutPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionTimeoutArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewriteInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionUrlRewritePtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionUrlRewriteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayInput)(nil)).Elem(), URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirectInput)(nil)).Elem(), URLMapPathMatcherDefaultUrlRedirectArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherDefaultUrlRedirectPtrInput)(nil)).Elem(), URLMapPathMatcherDefaultUrlRedirectArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionInput)(nil)).Elem(), URLMapPathMatcherHeaderActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionPtrInput)(nil)).Elem(), URLMapPathMatcherHeaderActionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAddInput)(nil)).Elem(), URLMapPathMatcherHeaderActionRequestHeadersToAddArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionRequestHeadersToAddArrayInput)(nil)).Elem(), URLMapPathMatcherHeaderActionRequestHeadersToAddArray{}) pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionResponseHeadersToAddInput)(nil)).Elem(), URLMapPathMatcherHeaderActionResponseHeadersToAddArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherHeaderActionResponseHeadersToAddArrayInput)(nil)).Elem(), URLMapPathMatcherHeaderActionResponseHeadersToAddArray{}) pulumi.RegisterInputType(reflect.TypeOf((*URLMapPathMatcherPathRuleInput)(nil)).Elem(), URLMapPathMatcherPathRuleArgs{}) @@ -35689,6 +40314,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetBackendServiceOutlierDetectionIntervalArrayInput)(nil)).Elem(), GetBackendServiceOutlierDetectionIntervalArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetBackendServiceSecuritySettingInput)(nil)).Elem(), GetBackendServiceSecuritySettingArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetBackendServiceSecuritySettingArrayInput)(nil)).Elem(), GetBackendServiceSecuritySettingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackendServiceSecuritySettingAwsV4AuthenticationInput)(nil)).Elem(), GetBackendServiceSecuritySettingAwsV4AuthenticationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetBackendServiceSecuritySettingAwsV4AuthenticationArrayInput)(nil)).Elem(), GetBackendServiceSecuritySettingAwsV4AuthenticationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDiskAsyncPrimaryDiskInput)(nil)).Elem(), GetDiskAsyncPrimaryDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDiskAsyncPrimaryDiskArrayInput)(nil)).Elem(), GetDiskAsyncPrimaryDiskArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetDiskDiskEncryptionKeyInput)(nil)).Elem(), GetDiskDiskEncryptionKeyArgs{}) @@ -36033,6 +40660,54 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworkSecondaryIpRangeArrayInput)(nil)).Elem(), GetSubnetworkSecondaryIpRangeArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworksSubnetworkInput)(nil)).Elem(), GetSubnetworksSubnetworkArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetSubnetworksSubnetworkArrayInput)(nil)).Elem(), GetSubnetworksSubnetworkArray{}) + pulumi.RegisterOutputType(URLMapHeaderActionRequestHeadersToAddOutput{}) + pulumi.RegisterOutputType(URLMapHeaderActionRequestHeadersToAddArrayOutput{}) + pulumi.RegisterOutputType(URLMapHeaderActionResponseHeadersToAddOutput{}) + pulumi.RegisterOutputType(URLMapHeaderActionResponseHeadersToAddArrayOutput{}) + pulumi.RegisterOutputType(URLMapHostRuleOutput{}) + pulumi.RegisterOutputType(URLMapHostRuleArrayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherArrayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultCustomErrorResponsePolicyErrorResponseRuleArrayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionCorsPolicyOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionCorsPolicyPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbortPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeoutPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionTimeoutOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionTimeoutPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionUrlRewriteOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionUrlRewritePtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceArrayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionRequestHeadersToAddArrayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultRouteActionWeightedBackendServiceHeaderActionResponseHeadersToAddArrayOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultUrlRedirectOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherDefaultUrlRedirectPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionPtrOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionRequestHeadersToAddOutput{}) + pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionRequestHeadersToAddArrayOutput{}) pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionResponseHeadersToAddOutput{}) pulumi.RegisterOutputType(URLMapPathMatcherHeaderActionResponseHeadersToAddArrayOutput{}) pulumi.RegisterOutputType(URLMapPathMatcherPathRuleOutput{}) @@ -36175,6 +40850,8 @@ func init() { pulumi.RegisterOutputType(GetBackendServiceOutlierDetectionIntervalArrayOutput{}) pulumi.RegisterOutputType(GetBackendServiceSecuritySettingOutput{}) pulumi.RegisterOutputType(GetBackendServiceSecuritySettingArrayOutput{}) + pulumi.RegisterOutputType(GetBackendServiceSecuritySettingAwsV4AuthenticationOutput{}) + pulumi.RegisterOutputType(GetBackendServiceSecuritySettingAwsV4AuthenticationArrayOutput{}) pulumi.RegisterOutputType(GetDiskAsyncPrimaryDiskOutput{}) pulumi.RegisterOutputType(GetDiskAsyncPrimaryDiskArrayOutput{}) pulumi.RegisterOutputType(GetDiskDiskEncryptionKeyOutput{}) diff --git a/sdk/go/gcp/compute/resizeRequest.go b/sdk/go/gcp/compute/resizeRequest.go new file mode 100644 index 0000000000..1812cadb0c --- /dev/null +++ b/sdk/go/gcp/compute/resizeRequest.go @@ -0,0 +1,524 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package compute + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Represents a Managed Instance Group Resize Request +// +// Resize Requests are the Managed Instance Group implementation of Dynamic Workload Scheduler Flex Start. +// +// With Dynamic Workload Scheduler in Flex Start mode, you submit a GPU capacity request for your AI/ML jobs by indicating how many you need, a duration, and your preferred region. Dynamic Workload Scheduler intelligently persists the request; once the capacity becomes available, it automatically provisions your VMs enabling your workloads to run continuously for the entire duration of the capacity allocation. +// +// To get more information about ResizeRequest, see: +// +// * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagerResizeRequests) +// * How-to Guides +// - [QUICKSTART_TITLE](https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig) +// +// ## Example Usage +// +// ### Compute Mig Resize Request +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// a3Dws, err := compute.NewRegionInstanceTemplate(ctx, "a3_dws", &compute.RegionInstanceTemplateArgs{ +// Name: pulumi.String("a3-dws"), +// Region: pulumi.String("us-central1"), +// Description: pulumi.String("This template is used to create a mig instance that is compatible with DWS resize requests."), +// InstanceDescription: pulumi.String("A3 GPU"), +// MachineType: pulumi.String("a3-highgpu-8g"), +// CanIpForward: pulumi.Bool(false), +// Scheduling: &compute.RegionInstanceTemplateSchedulingArgs{ +// AutomaticRestart: pulumi.Bool(false), +// OnHostMaintenance: pulumi.String("TERMINATE"), +// }, +// Disks: compute.RegionInstanceTemplateDiskArray{ +// &compute.RegionInstanceTemplateDiskArgs{ +// SourceImage: pulumi.String("cos-cloud/cos-105-lts"), +// AutoDelete: pulumi.Bool(true), +// Boot: pulumi.Bool(true), +// DiskType: pulumi.String("pd-ssd"), +// DiskSizeGb: pulumi.Int(960), +// Mode: pulumi.String("READ_WRITE"), +// }, +// }, +// GuestAccelerators: compute.RegionInstanceTemplateGuestAcceleratorArray{ +// &compute.RegionInstanceTemplateGuestAcceleratorArgs{ +// Type: pulumi.String("nvidia-h100-80gb"), +// Count: pulumi.Int(8), +// }, +// }, +// ReservationAffinity: &compute.RegionInstanceTemplateReservationAffinityArgs{ +// Type: pulumi.String("NO_RESERVATION"), +// }, +// ShieldedInstanceConfig: &compute.RegionInstanceTemplateShieldedInstanceConfigArgs{ +// EnableVtpm: pulumi.Bool(true), +// EnableIntegrityMonitoring: pulumi.Bool(true), +// }, +// NetworkInterfaces: compute.RegionInstanceTemplateNetworkInterfaceArray{ +// &compute.RegionInstanceTemplateNetworkInterfaceArgs{ +// Network: pulumi.String("default"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// a3DwsInstanceGroupManager, err := compute.NewInstanceGroupManager(ctx, "a3_dws", &compute.InstanceGroupManagerArgs{ +// Name: pulumi.String("a3-dws"), +// BaseInstanceName: pulumi.String("a3-dws"), +// Zone: pulumi.String("us-central1-a"), +// Versions: compute.InstanceGroupManagerVersionArray{ +// &compute.InstanceGroupManagerVersionArgs{ +// InstanceTemplate: a3Dws.SelfLink, +// }, +// }, +// InstanceLifecyclePolicy: &compute.InstanceGroupManagerInstanceLifecyclePolicyArgs{ +// DefaultActionOnFailure: pulumi.String("DO_NOTHING"), +// }, +// WaitForInstances: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewResizeRequest(ctx, "a3_resize_request", &compute.ResizeRequestArgs{ +// Name: pulumi.String("a3-dws"), +// InstanceGroupManager: a3DwsInstanceGroupManager.Name, +// Zone: pulumi.String("us-central1-a"), +// Description: pulumi.String("Test resize request resource"), +// ResizeBy: pulumi.Int(2), +// RequestedRunDuration: &compute.ResizeRequestRequestedRunDurationArgs{ +// Seconds: pulumi.String("14400"), +// Nanos: pulumi.Int(0), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ResizeRequest can be imported using any of these accepted formats: +// +// * `projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` +// +// * `{{project}}/{{zone}}/{{instance_group_manager}}/{{name}}` +// +// * `{{zone}}/{{instance_group_manager}}/{{name}}` +// +// * `{{instance_group_manager}}/{{name}}` +// +// When using the `pulumi import` command, ResizeRequest can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{zone}}/{{instance_group_manager}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{instance_group_manager}}/{{name}} +// ``` +type ResizeRequest struct { + pulumi.CustomResourceState + + // The creation timestamp for this resize request in RFC3339 text format. + CreationTimestamp pulumi.StringOutput `pulumi:"creationTimestamp"` + // An optional description of this resize-request. + Description pulumi.StringPtrOutput `pulumi:"description"` + // The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + // Authorization requires the following IAM permission on the specified resource instanceGroupManager: + // *compute.instanceGroupManagers.update + // + // *** + InstanceGroupManager pulumi.StringOutput `pulumi:"instanceGroupManager"` + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringOutput `pulumi:"project"` + // Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + // Structure is documented below. + RequestedRunDuration ResizeRequestRequestedRunDurationPtrOutput `pulumi:"requestedRunDuration"` + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy pulumi.IntOutput `pulumi:"resizeBy"` + // [Output only] Current state of the request. + State pulumi.StringOutput `pulumi:"state"` + // [Output only] Status of the request. + // Structure is documented below. + Statuses ResizeRequestStatusArrayOutput `pulumi:"statuses"` + // Name of the compute zone scoping this request. Name should conform to RFC1035. + Zone pulumi.StringOutput `pulumi:"zone"` +} + +// NewResizeRequest registers a new resource with the given unique name, arguments, and options. +func NewResizeRequest(ctx *pulumi.Context, + name string, args *ResizeRequestArgs, opts ...pulumi.ResourceOption) (*ResizeRequest, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.InstanceGroupManager == nil { + return nil, errors.New("invalid value for required argument 'InstanceGroupManager'") + } + if args.ResizeBy == nil { + return nil, errors.New("invalid value for required argument 'ResizeBy'") + } + if args.Zone == nil { + return nil, errors.New("invalid value for required argument 'Zone'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource ResizeRequest + err := ctx.RegisterResource("gcp:compute/resizeRequest:ResizeRequest", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResizeRequest gets an existing ResizeRequest resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResizeRequest(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResizeRequestState, opts ...pulumi.ResourceOption) (*ResizeRequest, error) { + var resource ResizeRequest + err := ctx.ReadResource("gcp:compute/resizeRequest:ResizeRequest", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResizeRequest resources. +type resizeRequestState struct { + // The creation timestamp for this resize request in RFC3339 text format. + CreationTimestamp *string `pulumi:"creationTimestamp"` + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + // Authorization requires the following IAM permission on the specified resource instanceGroupManager: + // *compute.instanceGroupManagers.update + // + // *** + InstanceGroupManager *string `pulumi:"instanceGroupManager"` + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + // Structure is documented below. + RequestedRunDuration *ResizeRequestRequestedRunDuration `pulumi:"requestedRunDuration"` + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy *int `pulumi:"resizeBy"` + // [Output only] Current state of the request. + State *string `pulumi:"state"` + // [Output only] Status of the request. + // Structure is documented below. + Statuses []ResizeRequestStatus `pulumi:"statuses"` + // Name of the compute zone scoping this request. Name should conform to RFC1035. + Zone *string `pulumi:"zone"` +} + +type ResizeRequestState struct { + // The creation timestamp for this resize request in RFC3339 text format. + CreationTimestamp pulumi.StringPtrInput + // An optional description of this resize-request. + Description pulumi.StringPtrInput + // The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + // Authorization requires the following IAM permission on the specified resource instanceGroupManager: + // *compute.instanceGroupManagers.update + // + // *** + InstanceGroupManager pulumi.StringPtrInput + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + // Structure is documented below. + RequestedRunDuration ResizeRequestRequestedRunDurationPtrInput + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy pulumi.IntPtrInput + // [Output only] Current state of the request. + State pulumi.StringPtrInput + // [Output only] Status of the request. + // Structure is documented below. + Statuses ResizeRequestStatusArrayInput + // Name of the compute zone scoping this request. Name should conform to RFC1035. + Zone pulumi.StringPtrInput +} + +func (ResizeRequestState) ElementType() reflect.Type { + return reflect.TypeOf((*resizeRequestState)(nil)).Elem() +} + +type resizeRequestArgs struct { + // An optional description of this resize-request. + Description *string `pulumi:"description"` + // The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + // Authorization requires the following IAM permission on the specified resource instanceGroupManager: + // *compute.instanceGroupManagers.update + // + // *** + InstanceGroupManager string `pulumi:"instanceGroupManager"` + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name *string `pulumi:"name"` + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project *string `pulumi:"project"` + // Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + // Structure is documented below. + RequestedRunDuration *ResizeRequestRequestedRunDuration `pulumi:"requestedRunDuration"` + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy int `pulumi:"resizeBy"` + // Name of the compute zone scoping this request. Name should conform to RFC1035. + Zone string `pulumi:"zone"` +} + +// The set of arguments for constructing a ResizeRequest resource. +type ResizeRequestArgs struct { + // An optional description of this resize-request. + Description pulumi.StringPtrInput + // The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + // Authorization requires the following IAM permission on the specified resource instanceGroupManager: + // *compute.instanceGroupManagers.update + // + // *** + InstanceGroupManager pulumi.StringInput + // The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + Name pulumi.StringPtrInput + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. + Project pulumi.StringPtrInput + // Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + // Structure is documented below. + RequestedRunDuration ResizeRequestRequestedRunDurationPtrInput + // The number of instances to be created by this resize request. The group's target size will be increased by this number. + ResizeBy pulumi.IntInput + // Name of the compute zone scoping this request. Name should conform to RFC1035. + Zone pulumi.StringInput +} + +func (ResizeRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resizeRequestArgs)(nil)).Elem() +} + +type ResizeRequestInput interface { + pulumi.Input + + ToResizeRequestOutput() ResizeRequestOutput + ToResizeRequestOutputWithContext(ctx context.Context) ResizeRequestOutput +} + +func (*ResizeRequest) ElementType() reflect.Type { + return reflect.TypeOf((**ResizeRequest)(nil)).Elem() +} + +func (i *ResizeRequest) ToResizeRequestOutput() ResizeRequestOutput { + return i.ToResizeRequestOutputWithContext(context.Background()) +} + +func (i *ResizeRequest) ToResizeRequestOutputWithContext(ctx context.Context) ResizeRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestOutput) +} + +// ResizeRequestArrayInput is an input type that accepts ResizeRequestArray and ResizeRequestArrayOutput values. +// You can construct a concrete instance of `ResizeRequestArrayInput` via: +// +// ResizeRequestArray{ ResizeRequestArgs{...} } +type ResizeRequestArrayInput interface { + pulumi.Input + + ToResizeRequestArrayOutput() ResizeRequestArrayOutput + ToResizeRequestArrayOutputWithContext(context.Context) ResizeRequestArrayOutput +} + +type ResizeRequestArray []ResizeRequestInput + +func (ResizeRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResizeRequest)(nil)).Elem() +} + +func (i ResizeRequestArray) ToResizeRequestArrayOutput() ResizeRequestArrayOutput { + return i.ToResizeRequestArrayOutputWithContext(context.Background()) +} + +func (i ResizeRequestArray) ToResizeRequestArrayOutputWithContext(ctx context.Context) ResizeRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestArrayOutput) +} + +// ResizeRequestMapInput is an input type that accepts ResizeRequestMap and ResizeRequestMapOutput values. +// You can construct a concrete instance of `ResizeRequestMapInput` via: +// +// ResizeRequestMap{ "key": ResizeRequestArgs{...} } +type ResizeRequestMapInput interface { + pulumi.Input + + ToResizeRequestMapOutput() ResizeRequestMapOutput + ToResizeRequestMapOutputWithContext(context.Context) ResizeRequestMapOutput +} + +type ResizeRequestMap map[string]ResizeRequestInput + +func (ResizeRequestMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResizeRequest)(nil)).Elem() +} + +func (i ResizeRequestMap) ToResizeRequestMapOutput() ResizeRequestMapOutput { + return i.ToResizeRequestMapOutputWithContext(context.Background()) +} + +func (i ResizeRequestMap) ToResizeRequestMapOutputWithContext(ctx context.Context) ResizeRequestMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResizeRequestMapOutput) +} + +type ResizeRequestOutput struct{ *pulumi.OutputState } + +func (ResizeRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ResizeRequest)(nil)).Elem() +} + +func (o ResizeRequestOutput) ToResizeRequestOutput() ResizeRequestOutput { + return o +} + +func (o ResizeRequestOutput) ToResizeRequestOutputWithContext(ctx context.Context) ResizeRequestOutput { + return o +} + +// The creation timestamp for this resize request in RFC3339 text format. +func (o ResizeRequestOutput) CreationTimestamp() pulumi.StringOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.StringOutput { return v.CreationTimestamp }).(pulumi.StringOutput) +} + +// An optional description of this resize-request. +func (o ResizeRequestOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. +// Authorization requires the following IAM permission on the specified resource instanceGroupManager: +// *compute.instanceGroupManagers.update +// +// *** +func (o ResizeRequestOutput) InstanceGroupManager() pulumi.StringOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.StringOutput { return v.InstanceGroupManager }).(pulumi.StringOutput) +} + +// The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. +func (o ResizeRequestOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. +func (o ResizeRequestOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. +// Structure is documented below. +func (o ResizeRequestOutput) RequestedRunDuration() ResizeRequestRequestedRunDurationPtrOutput { + return o.ApplyT(func(v *ResizeRequest) ResizeRequestRequestedRunDurationPtrOutput { return v.RequestedRunDuration }).(ResizeRequestRequestedRunDurationPtrOutput) +} + +// The number of instances to be created by this resize request. The group's target size will be increased by this number. +func (o ResizeRequestOutput) ResizeBy() pulumi.IntOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.IntOutput { return v.ResizeBy }).(pulumi.IntOutput) +} + +// [Output only] Current state of the request. +func (o ResizeRequestOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// [Output only] Status of the request. +// Structure is documented below. +func (o ResizeRequestOutput) Statuses() ResizeRequestStatusArrayOutput { + return o.ApplyT(func(v *ResizeRequest) ResizeRequestStatusArrayOutput { return v.Statuses }).(ResizeRequestStatusArrayOutput) +} + +// Name of the compute zone scoping this request. Name should conform to RFC1035. +func (o ResizeRequestOutput) Zone() pulumi.StringOutput { + return o.ApplyT(func(v *ResizeRequest) pulumi.StringOutput { return v.Zone }).(pulumi.StringOutput) +} + +type ResizeRequestArrayOutput struct{ *pulumi.OutputState } + +func (ResizeRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*ResizeRequest)(nil)).Elem() +} + +func (o ResizeRequestArrayOutput) ToResizeRequestArrayOutput() ResizeRequestArrayOutput { + return o +} + +func (o ResizeRequestArrayOutput) ToResizeRequestArrayOutputWithContext(ctx context.Context) ResizeRequestArrayOutput { + return o +} + +func (o ResizeRequestArrayOutput) Index(i pulumi.IntInput) ResizeRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ResizeRequest { + return vs[0].([]*ResizeRequest)[vs[1].(int)] + }).(ResizeRequestOutput) +} + +type ResizeRequestMapOutput struct{ *pulumi.OutputState } + +func (ResizeRequestMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*ResizeRequest)(nil)).Elem() +} + +func (o ResizeRequestMapOutput) ToResizeRequestMapOutput() ResizeRequestMapOutput { + return o +} + +func (o ResizeRequestMapOutput) ToResizeRequestMapOutputWithContext(ctx context.Context) ResizeRequestMapOutput { + return o +} + +func (o ResizeRequestMapOutput) MapIndex(k pulumi.StringInput) ResizeRequestOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ResizeRequest { + return vs[0].(map[string]*ResizeRequest)[vs[1].(string)] + }).(ResizeRequestOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestInput)(nil)).Elem(), &ResizeRequest{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestArrayInput)(nil)).Elem(), ResizeRequestArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ResizeRequestMapInput)(nil)).Elem(), ResizeRequestMap{}) + pulumi.RegisterOutputType(ResizeRequestOutput{}) + pulumi.RegisterOutputType(ResizeRequestArrayOutput{}) + pulumi.RegisterOutputType(ResizeRequestMapOutput{}) +} diff --git a/sdk/go/gcp/compute/routerPeer.go b/sdk/go/gcp/compute/routerPeer.go index 3daf61890e..72eb808705 100644 --- a/sdk/go/gcp/compute/routerPeer.go +++ b/sdk/go/gcp/compute/routerPeer.go @@ -309,6 +309,182 @@ import ( // // ``` // +// ### Router Peer Export And Import Policies +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ +// Name: pulumi.String("my-router-net"), +// AutoCreateSubnetworks: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// subnetwork, err := compute.NewSubnetwork(ctx, "subnetwork", &compute.SubnetworkArgs{ +// Name: pulumi.String("my-router-subnet"), +// Network: network.SelfLink, +// IpCidrRange: pulumi.String("10.0.0.0/16"), +// Region: pulumi.String("us-central1"), +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewAddress(ctx, "address", &compute.AddressArgs{ +// Name: pulumi.String("my-router"), +// Region: subnetwork.Region, +// }) +// if err != nil { +// return err +// } +// vpnGateway, err := compute.NewHaVpnGateway(ctx, "vpn_gateway", &compute.HaVpnGatewayArgs{ +// Name: pulumi.String("my-router-gateway"), +// Network: network.SelfLink, +// Region: subnetwork.Region, +// }) +// if err != nil { +// return err +// } +// externalGateway, err := compute.NewExternalVpnGateway(ctx, "external_gateway", &compute.ExternalVpnGatewayArgs{ +// Name: pulumi.String("my-router-external-gateway"), +// RedundancyType: pulumi.String("SINGLE_IP_INTERNALLY_REDUNDANT"), +// Description: pulumi.String("An externally managed VPN gateway"), +// Interfaces: compute.ExternalVpnGatewayInterfaceArray{ +// &compute.ExternalVpnGatewayInterfaceArgs{ +// Id: pulumi.Int(0), +// IpAddress: pulumi.String("8.8.8.8"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// router, err := compute.NewRouter(ctx, "router", &compute.RouterArgs{ +// Name: pulumi.String("my-router"), +// Region: subnetwork.Region, +// Network: network.SelfLink, +// Bgp: &compute.RouterBgpArgs{ +// Asn: pulumi.Int(64514), +// }, +// }) +// if err != nil { +// return err +// } +// vpnTunnel, err := compute.NewVPNTunnel(ctx, "vpn_tunnel", &compute.VPNTunnelArgs{ +// Name: pulumi.String("my-router"), +// Region: subnetwork.Region, +// VpnGateway: vpnGateway.ID(), +// PeerExternalGateway: externalGateway.ID(), +// PeerExternalGatewayInterface: pulumi.Int(0), +// SharedSecret: pulumi.String("unguessable"), +// Router: router.Name, +// VpnGatewayInterface: pulumi.Int(0), +// }) +// if err != nil { +// return err +// } +// routerInterface, err := compute.NewRouterInterface(ctx, "router_interface", &compute.RouterInterfaceArgs{ +// Name: pulumi.String("my-router"), +// Router: router.Name, +// Region: router.Region, +// VpnTunnel: vpnTunnel.Name, +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewRouterRoutePolicy(ctx, "rp-export", &compute.RouterRoutePolicyArgs{ +// Name: pulumi.String("my-router-rp-export"), +// Router: router.Name, +// Region: router.Region, +// Type: pulumi.String("ROUTE_POLICY_TYPE_EXPORT"), +// Terms: compute.RouterRoutePolicyTermArray{ +// &compute.RouterRoutePolicyTermArgs{ +// Priority: pulumi.Int(2), +// Match: &compute.RouterRoutePolicyTermMatchArgs{ +// Expression: pulumi.String("destination == '10.0.0.0/12'"), +// Title: pulumi.String("export_expression"), +// Description: pulumi.String("acceptance expression for export"), +// }, +// Actions: compute.RouterRoutePolicyTermActionArray{ +// &compute.RouterRoutePolicyTermActionArgs{ +// Expression: pulumi.String("accept()"), +// }, +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// routerInterface, +// })) +// if err != nil { +// return err +// } +// _, err = compute.NewRouterRoutePolicy(ctx, "rp-import", &compute.RouterRoutePolicyArgs{ +// Name: pulumi.String("my-router-rp-import"), +// Router: router.Name, +// Region: router.Region, +// Type: pulumi.String("ROUTE_POLICY_TYPE_IMPORT"), +// Terms: compute.RouterRoutePolicyTermArray{ +// &compute.RouterRoutePolicyTermArgs{ +// Priority: pulumi.Int(1), +// Match: &compute.RouterRoutePolicyTermMatchArgs{ +// Expression: pulumi.String("destination == '10.0.0.0/12'"), +// Title: pulumi.String("import_expression"), +// Description: pulumi.String("acceptance expression for import"), +// }, +// Actions: compute.RouterRoutePolicyTermActionArray{ +// &compute.RouterRoutePolicyTermActionArgs{ +// Expression: pulumi.String("accept()"), +// }, +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// routerInterface, +// rp_export, +// })) +// if err != nil { +// return err +// } +// _, err = compute.NewRouterPeer(ctx, "router_peer", &compute.RouterPeerArgs{ +// Name: pulumi.String("my-router-peer"), +// Router: router.Name, +// Region: router.Region, +// PeerAsn: pulumi.Int(65515), +// AdvertisedRoutePriority: pulumi.Int(100), +// Interface: routerInterface.Name, +// Md5AuthenticationKey: &compute.RouterPeerMd5AuthenticationKeyArgs{ +// Name: pulumi.String("my-router-peer-key"), +// Key: pulumi.String("my-router-peer-key-value"), +// }, +// ImportPolicies: pulumi.StringArray{ +// rp_import.Name, +// }, +// ExportPolicies: pulumi.StringArray{ +// rp_export.Name, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// rp_export, +// rp_import, +// routerInterface, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // RouterBgpPeer can be imported using any of these accepted formats: @@ -371,6 +547,13 @@ type RouterPeer struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd RouterPeerBfdOutput `pulumi:"bfd"` + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + CustomLearnedIpRanges RouterPeerCustomLearnedIpRangeArrayOutput `pulumi:"customLearnedIpRanges"` + // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + // priority of 100 to the ranges. + CustomLearnedRoutePriority pulumi.IntPtrOutput `pulumi:"customLearnedRoutePriority"` // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. // If set to true, the peer connection can be established with routing information. @@ -380,6 +563,12 @@ type RouterPeer struct { EnableIpv4 pulumi.BoolOutput `pulumi:"enableIpv4"` // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 pulumi.BoolPtrOutput `pulumi:"enableIpv6"` + // routers.list of export policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + ExportPolicies pulumi.StringArrayOutput `pulumi:"exportPolicies"` + // routers.list of import policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + ImportPolicies pulumi.StringArrayOutput `pulumi:"importPolicies"` // Name of the interface the BGP peer is associated with. Interface pulumi.StringOutput `pulumi:"interface"` // IP address of the interface inside Google Cloud Platform. @@ -511,6 +700,13 @@ type routerPeerState struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd *RouterPeerBfd `pulumi:"bfd"` + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + CustomLearnedIpRanges []RouterPeerCustomLearnedIpRange `pulumi:"customLearnedIpRanges"` + // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + // priority of 100 to the ranges. + CustomLearnedRoutePriority *int `pulumi:"customLearnedRoutePriority"` // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. // If set to true, the peer connection can be established with routing information. @@ -520,6 +716,12 @@ type routerPeerState struct { EnableIpv4 *bool `pulumi:"enableIpv4"` // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 *bool `pulumi:"enableIpv6"` + // routers.list of export policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + ExportPolicies []string `pulumi:"exportPolicies"` + // routers.list of import policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + ImportPolicies []string `pulumi:"importPolicies"` // Name of the interface the BGP peer is associated with. Interface *string `pulumi:"interface"` // IP address of the interface inside Google Cloud Platform. @@ -613,6 +815,13 @@ type RouterPeerState struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd RouterPeerBfdPtrInput + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + CustomLearnedIpRanges RouterPeerCustomLearnedIpRangeArrayInput + // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + // priority of 100 to the ranges. + CustomLearnedRoutePriority pulumi.IntPtrInput // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. // If set to true, the peer connection can be established with routing information. @@ -622,6 +831,12 @@ type RouterPeerState struct { EnableIpv4 pulumi.BoolPtrInput // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 pulumi.BoolPtrInput + // routers.list of export policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + ExportPolicies pulumi.StringArrayInput + // routers.list of import policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + ImportPolicies pulumi.StringArrayInput // Name of the interface the BGP peer is associated with. Interface pulumi.StringPtrInput // IP address of the interface inside Google Cloud Platform. @@ -719,6 +934,13 @@ type routerPeerArgs struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd *RouterPeerBfd `pulumi:"bfd"` + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + CustomLearnedIpRanges []RouterPeerCustomLearnedIpRange `pulumi:"customLearnedIpRanges"` + // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + // priority of 100 to the ranges. + CustomLearnedRoutePriority *int `pulumi:"customLearnedRoutePriority"` // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. // If set to true, the peer connection can be established with routing information. @@ -728,6 +950,12 @@ type routerPeerArgs struct { EnableIpv4 *bool `pulumi:"enableIpv4"` // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 *bool `pulumi:"enableIpv6"` + // routers.list of export policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + ExportPolicies []string `pulumi:"exportPolicies"` + // routers.list of import policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + ImportPolicies []string `pulumi:"importPolicies"` // Name of the interface the BGP peer is associated with. Interface string `pulumi:"interface"` // IP address of the interface inside Google Cloud Platform. @@ -812,6 +1040,13 @@ type RouterPeerArgs struct { // BFD configuration for the BGP peering. // Structure is documented below. Bfd RouterPeerBfdPtrInput + // The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + // subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + CustomLearnedIpRanges RouterPeerCustomLearnedIpRangeArrayInput + // The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + // ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + // priority of 100 to the ranges. + CustomLearnedRoutePriority pulumi.IntPtrInput // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. // If set to true, the peer connection can be established with routing information. @@ -821,6 +1056,12 @@ type RouterPeerArgs struct { EnableIpv4 pulumi.BoolPtrInput // Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. EnableIpv6 pulumi.BoolPtrInput + // routers.list of export policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + ExportPolicies pulumi.StringArrayInput + // routers.list of import policies applied to this peer, in the order they must be evaluated. + // The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + ImportPolicies pulumi.StringArrayInput // Name of the interface the BGP peer is associated with. Interface pulumi.StringInput // IP address of the interface inside Google Cloud Platform. @@ -1005,6 +1246,19 @@ func (o RouterPeerOutput) Bfd() RouterPeerBfdOutput { return o.ApplyT(func(v *RouterPeer) RouterPeerBfdOutput { return v.Bfd }).(RouterPeerBfdOutput) } +// The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a +// subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. +func (o RouterPeerOutput) CustomLearnedIpRanges() RouterPeerCustomLearnedIpRangeArrayOutput { + return o.ApplyT(func(v *RouterPeer) RouterPeerCustomLearnedIpRangeArrayOutput { return v.CustomLearnedIpRanges }).(RouterPeerCustomLearnedIpRangeArrayOutput) +} + +// The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route +// ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a +// priority of 100 to the ranges. +func (o RouterPeerOutput) CustomLearnedRoutePriority() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouterPeer) pulumi.IntPtrOutput { return v.CustomLearnedRoutePriority }).(pulumi.IntPtrOutput) +} + // The status of the BGP peer connection. If set to false, any active session // with the peer is terminated and all associated routing information is removed. // If set to true, the peer connection can be established with routing information. @@ -1023,6 +1277,18 @@ func (o RouterPeerOutput) EnableIpv6() pulumi.BoolPtrOutput { return o.ApplyT(func(v *RouterPeer) pulumi.BoolPtrOutput { return v.EnableIpv6 }).(pulumi.BoolPtrOutput) } +// routers.list of export policies applied to this peer, in the order they must be evaluated. +// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. +func (o RouterPeerOutput) ExportPolicies() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterPeer) pulumi.StringArrayOutput { return v.ExportPolicies }).(pulumi.StringArrayOutput) +} + +// routers.list of import policies applied to this peer, in the order they must be evaluated. +// The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. +func (o RouterPeerOutput) ImportPolicies() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouterPeer) pulumi.StringArrayOutput { return v.ImportPolicies }).(pulumi.StringArrayOutput) +} + // Name of the interface the BGP peer is associated with. func (o RouterPeerOutput) Interface() pulumi.StringOutput { return o.ApplyT(func(v *RouterPeer) pulumi.StringOutput { return v.Interface }).(pulumi.StringOutput) diff --git a/sdk/go/gcp/compute/routerRoutePolicy.go b/sdk/go/gcp/compute/routerRoutePolicy.go new file mode 100644 index 0000000000..bb0a487ec1 --- /dev/null +++ b/sdk/go/gcp/compute/routerRoutePolicy.go @@ -0,0 +1,479 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package compute + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// ## Example Usage +// +// ### Router Route Policy Export +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// net, err := compute.NewNetwork(ctx, "net", &compute.NetworkArgs{ +// Name: pulumi.String("my-network"), +// AutoCreateSubnetworks: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// subnet, err := compute.NewSubnetwork(ctx, "subnet", &compute.SubnetworkArgs{ +// Name: pulumi.String("my-subnetwork"), +// Network: net.ID(), +// IpCidrRange: pulumi.String("10.0.0.0/16"), +// Region: pulumi.String("us-central1"), +// }) +// if err != nil { +// return err +// } +// router, err := compute.NewRouter(ctx, "router", &compute.RouterArgs{ +// Name: pulumi.String("my-router"), +// Region: subnet.Region, +// Network: net.ID(), +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewRouterRoutePolicy(ctx, "rp-export", &compute.RouterRoutePolicyArgs{ +// Router: router.Name, +// Region: router.Region, +// Name: pulumi.String("my-rp1"), +// Type: pulumi.String("ROUTE_POLICY_TYPE_EXPORT"), +// Terms: compute.RouterRoutePolicyTermArray{ +// &compute.RouterRoutePolicyTermArgs{ +// Priority: pulumi.Int(1), +// Match: &compute.RouterRoutePolicyTermMatchArgs{ +// Expression: pulumi.String("destination == '10.0.0.0/12'"), +// }, +// Actions: compute.RouterRoutePolicyTermActionArray{ +// &compute.RouterRoutePolicyTermActionArgs{ +// Expression: pulumi.String("accept()"), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Router Route Policy Import +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// net, err := compute.NewNetwork(ctx, "net", &compute.NetworkArgs{ +// Name: pulumi.String("my-network"), +// AutoCreateSubnetworks: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// subnet, err := compute.NewSubnetwork(ctx, "subnet", &compute.SubnetworkArgs{ +// Name: pulumi.String("my-subnetwork"), +// Network: net.ID(), +// IpCidrRange: pulumi.String("10.0.0.0/16"), +// Region: pulumi.String("us-central1"), +// }) +// if err != nil { +// return err +// } +// router, err := compute.NewRouter(ctx, "router", &compute.RouterArgs{ +// Name: pulumi.String("my-router"), +// Region: subnet.Region, +// Network: net.ID(), +// }) +// if err != nil { +// return err +// } +// _, err = compute.NewRouterRoutePolicy(ctx, "rp-import", &compute.RouterRoutePolicyArgs{ +// Name: pulumi.String("my-rp2"), +// Router: router.Name, +// Region: router.Region, +// Type: pulumi.String("ROUTE_POLICY_TYPE_IMPORT"), +// Terms: compute.RouterRoutePolicyTermArray{ +// &compute.RouterRoutePolicyTermArgs{ +// Priority: pulumi.Int(2), +// Match: &compute.RouterRoutePolicyTermMatchArgs{ +// Expression: pulumi.String("destination == '10.0.0.0/12'"), +// }, +// Actions: compute.RouterRoutePolicyTermActionArray{ +// &compute.RouterRoutePolicyTermActionArgs{ +// Expression: pulumi.String("accept()"), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// RouterRoutePolicy can be imported using any of these accepted formats: +// +// * `{{project}}/{{region}}/{{router}}/routePolicies/{{name}}` +// +// * `{{project}}/{{region}}/{{router}}/{{name}}` +// +// * `{{region}}/{{router}}/{{name}}` +// +// * `{{router}}/{{name}}` +// +// When using the `pulumi import` command, RouterRoutePolicy can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/routePolicies/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{region}}/{{router}}/{{name}} +// ``` +// +// ```sh +// $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{router}}/{{name}} +// ``` +type RouterRoutePolicy struct { + pulumi.CustomResourceState + + // The fingerprint used for optimistic locking of this resource. Used + // internally during updates. + Fingerprint pulumi.StringOutput `pulumi:"fingerprint"` + // Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + Name pulumi.StringOutput `pulumi:"name"` + Project pulumi.StringOutput `pulumi:"project"` + // Region where the router and NAT reside. + Region pulumi.StringOutput `pulumi:"region"` + // The name of the Cloud Router in which this route policy will be configured. + Router pulumi.StringOutput `pulumi:"router"` + // List of terms (the order in the list is not important, they are evaluated in order of priority). + // Structure is documented below. + Terms RouterRoutePolicyTermArrayOutput `pulumi:"terms"` + // This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + // "ROUTE_POLICY_TYPE_EXPORT"] + Type pulumi.StringPtrOutput `pulumi:"type"` +} + +// NewRouterRoutePolicy registers a new resource with the given unique name, arguments, and options. +func NewRouterRoutePolicy(ctx *pulumi.Context, + name string, args *RouterRoutePolicyArgs, opts ...pulumi.ResourceOption) (*RouterRoutePolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Router == nil { + return nil, errors.New("invalid value for required argument 'Router'") + } + if args.Terms == nil { + return nil, errors.New("invalid value for required argument 'Terms'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource RouterRoutePolicy + err := ctx.RegisterResource("gcp:compute/routerRoutePolicy:RouterRoutePolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetRouterRoutePolicy gets an existing RouterRoutePolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetRouterRoutePolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *RouterRoutePolicyState, opts ...pulumi.ResourceOption) (*RouterRoutePolicy, error) { + var resource RouterRoutePolicy + err := ctx.ReadResource("gcp:compute/routerRoutePolicy:RouterRoutePolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering RouterRoutePolicy resources. +type routerRoutePolicyState struct { + // The fingerprint used for optimistic locking of this resource. Used + // internally during updates. + Fingerprint *string `pulumi:"fingerprint"` + // Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + Name *string `pulumi:"name"` + Project *string `pulumi:"project"` + // Region where the router and NAT reside. + Region *string `pulumi:"region"` + // The name of the Cloud Router in which this route policy will be configured. + Router *string `pulumi:"router"` + // List of terms (the order in the list is not important, they are evaluated in order of priority). + // Structure is documented below. + Terms []RouterRoutePolicyTerm `pulumi:"terms"` + // This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + // "ROUTE_POLICY_TYPE_EXPORT"] + Type *string `pulumi:"type"` +} + +type RouterRoutePolicyState struct { + // The fingerprint used for optimistic locking of this resource. Used + // internally during updates. + Fingerprint pulumi.StringPtrInput + // Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + Name pulumi.StringPtrInput + Project pulumi.StringPtrInput + // Region where the router and NAT reside. + Region pulumi.StringPtrInput + // The name of the Cloud Router in which this route policy will be configured. + Router pulumi.StringPtrInput + // List of terms (the order in the list is not important, they are evaluated in order of priority). + // Structure is documented below. + Terms RouterRoutePolicyTermArrayInput + // This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + // "ROUTE_POLICY_TYPE_EXPORT"] + Type pulumi.StringPtrInput +} + +func (RouterRoutePolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*routerRoutePolicyState)(nil)).Elem() +} + +type routerRoutePolicyArgs struct { + // Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + Name *string `pulumi:"name"` + Project *string `pulumi:"project"` + // Region where the router and NAT reside. + Region *string `pulumi:"region"` + // The name of the Cloud Router in which this route policy will be configured. + Router string `pulumi:"router"` + // List of terms (the order in the list is not important, they are evaluated in order of priority). + // Structure is documented below. + Terms []RouterRoutePolicyTerm `pulumi:"terms"` + // This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + // "ROUTE_POLICY_TYPE_EXPORT"] + Type *string `pulumi:"type"` +} + +// The set of arguments for constructing a RouterRoutePolicy resource. +type RouterRoutePolicyArgs struct { + // Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + Name pulumi.StringPtrInput + Project pulumi.StringPtrInput + // Region where the router and NAT reside. + Region pulumi.StringPtrInput + // The name of the Cloud Router in which this route policy will be configured. + Router pulumi.StringInput + // List of terms (the order in the list is not important, they are evaluated in order of priority). + // Structure is documented below. + Terms RouterRoutePolicyTermArrayInput + // This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + // "ROUTE_POLICY_TYPE_EXPORT"] + Type pulumi.StringPtrInput +} + +func (RouterRoutePolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*routerRoutePolicyArgs)(nil)).Elem() +} + +type RouterRoutePolicyInput interface { + pulumi.Input + + ToRouterRoutePolicyOutput() RouterRoutePolicyOutput + ToRouterRoutePolicyOutputWithContext(ctx context.Context) RouterRoutePolicyOutput +} + +func (*RouterRoutePolicy) ElementType() reflect.Type { + return reflect.TypeOf((**RouterRoutePolicy)(nil)).Elem() +} + +func (i *RouterRoutePolicy) ToRouterRoutePolicyOutput() RouterRoutePolicyOutput { + return i.ToRouterRoutePolicyOutputWithContext(context.Background()) +} + +func (i *RouterRoutePolicy) ToRouterRoutePolicyOutputWithContext(ctx context.Context) RouterRoutePolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyOutput) +} + +// RouterRoutePolicyArrayInput is an input type that accepts RouterRoutePolicyArray and RouterRoutePolicyArrayOutput values. +// You can construct a concrete instance of `RouterRoutePolicyArrayInput` via: +// +// RouterRoutePolicyArray{ RouterRoutePolicyArgs{...} } +type RouterRoutePolicyArrayInput interface { + pulumi.Input + + ToRouterRoutePolicyArrayOutput() RouterRoutePolicyArrayOutput + ToRouterRoutePolicyArrayOutputWithContext(context.Context) RouterRoutePolicyArrayOutput +} + +type RouterRoutePolicyArray []RouterRoutePolicyInput + +func (RouterRoutePolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RouterRoutePolicy)(nil)).Elem() +} + +func (i RouterRoutePolicyArray) ToRouterRoutePolicyArrayOutput() RouterRoutePolicyArrayOutput { + return i.ToRouterRoutePolicyArrayOutputWithContext(context.Background()) +} + +func (i RouterRoutePolicyArray) ToRouterRoutePolicyArrayOutputWithContext(ctx context.Context) RouterRoutePolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyArrayOutput) +} + +// RouterRoutePolicyMapInput is an input type that accepts RouterRoutePolicyMap and RouterRoutePolicyMapOutput values. +// You can construct a concrete instance of `RouterRoutePolicyMapInput` via: +// +// RouterRoutePolicyMap{ "key": RouterRoutePolicyArgs{...} } +type RouterRoutePolicyMapInput interface { + pulumi.Input + + ToRouterRoutePolicyMapOutput() RouterRoutePolicyMapOutput + ToRouterRoutePolicyMapOutputWithContext(context.Context) RouterRoutePolicyMapOutput +} + +type RouterRoutePolicyMap map[string]RouterRoutePolicyInput + +func (RouterRoutePolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RouterRoutePolicy)(nil)).Elem() +} + +func (i RouterRoutePolicyMap) ToRouterRoutePolicyMapOutput() RouterRoutePolicyMapOutput { + return i.ToRouterRoutePolicyMapOutputWithContext(context.Background()) +} + +func (i RouterRoutePolicyMap) ToRouterRoutePolicyMapOutputWithContext(ctx context.Context) RouterRoutePolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouterRoutePolicyMapOutput) +} + +type RouterRoutePolicyOutput struct{ *pulumi.OutputState } + +func (RouterRoutePolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouterRoutePolicy)(nil)).Elem() +} + +func (o RouterRoutePolicyOutput) ToRouterRoutePolicyOutput() RouterRoutePolicyOutput { + return o +} + +func (o RouterRoutePolicyOutput) ToRouterRoutePolicyOutputWithContext(ctx context.Context) RouterRoutePolicyOutput { + return o +} + +// The fingerprint used for optimistic locking of this resource. Used +// internally during updates. +func (o RouterRoutePolicyOutput) Fingerprint() pulumi.StringOutput { + return o.ApplyT(func(v *RouterRoutePolicy) pulumi.StringOutput { return v.Fingerprint }).(pulumi.StringOutput) +} + +// Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router +func (o RouterRoutePolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *RouterRoutePolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +func (o RouterRoutePolicyOutput) Project() pulumi.StringOutput { + return o.ApplyT(func(v *RouterRoutePolicy) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) +} + +// Region where the router and NAT reside. +func (o RouterRoutePolicyOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *RouterRoutePolicy) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// The name of the Cloud Router in which this route policy will be configured. +func (o RouterRoutePolicyOutput) Router() pulumi.StringOutput { + return o.ApplyT(func(v *RouterRoutePolicy) pulumi.StringOutput { return v.Router }).(pulumi.StringOutput) +} + +// List of terms (the order in the list is not important, they are evaluated in order of priority). +// Structure is documented below. +func (o RouterRoutePolicyOutput) Terms() RouterRoutePolicyTermArrayOutput { + return o.ApplyT(func(v *RouterRoutePolicy) RouterRoutePolicyTermArrayOutput { return v.Terms }).(RouterRoutePolicyTermArrayOutput) +} + +// This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", +// "ROUTE_POLICY_TYPE_EXPORT"] +func (o RouterRoutePolicyOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouterRoutePolicy) pulumi.StringPtrOutput { return v.Type }).(pulumi.StringPtrOutput) +} + +type RouterRoutePolicyArrayOutput struct{ *pulumi.OutputState } + +func (RouterRoutePolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*RouterRoutePolicy)(nil)).Elem() +} + +func (o RouterRoutePolicyArrayOutput) ToRouterRoutePolicyArrayOutput() RouterRoutePolicyArrayOutput { + return o +} + +func (o RouterRoutePolicyArrayOutput) ToRouterRoutePolicyArrayOutputWithContext(ctx context.Context) RouterRoutePolicyArrayOutput { + return o +} + +func (o RouterRoutePolicyArrayOutput) Index(i pulumi.IntInput) RouterRoutePolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RouterRoutePolicy { + return vs[0].([]*RouterRoutePolicy)[vs[1].(int)] + }).(RouterRoutePolicyOutput) +} + +type RouterRoutePolicyMapOutput struct{ *pulumi.OutputState } + +func (RouterRoutePolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*RouterRoutePolicy)(nil)).Elem() +} + +func (o RouterRoutePolicyMapOutput) ToRouterRoutePolicyMapOutput() RouterRoutePolicyMapOutput { + return o +} + +func (o RouterRoutePolicyMapOutput) ToRouterRoutePolicyMapOutputWithContext(ctx context.Context) RouterRoutePolicyMapOutput { + return o +} + +func (o RouterRoutePolicyMapOutput) MapIndex(k pulumi.StringInput) RouterRoutePolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RouterRoutePolicy { + return vs[0].(map[string]*RouterRoutePolicy)[vs[1].(string)] + }).(RouterRoutePolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyInput)(nil)).Elem(), &RouterRoutePolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyArrayInput)(nil)).Elem(), RouterRoutePolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*RouterRoutePolicyMapInput)(nil)).Elem(), RouterRoutePolicyMap{}) + pulumi.RegisterOutputType(RouterRoutePolicyOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyArrayOutput{}) + pulumi.RegisterOutputType(RouterRoutePolicyMapOutput{}) +} diff --git a/sdk/go/gcp/compute/serviceAttachment.go b/sdk/go/gcp/compute/serviceAttachment.go index dacab3fbe1..ebf4168b98 100644 --- a/sdk/go/gcp/compute/serviceAttachment.go +++ b/sdk/go/gcp/compute/serviceAttachment.go @@ -578,8 +578,7 @@ type ServiceAttachment struct { Region pulumi.StringOutput `pulumi:"region"` // The URI of the created resource. SelfLink pulumi.StringOutput `pulumi:"selfLink"` - // The URL of a forwarding rule that represents the service identified by - // this service attachment. + // The URL of a service serving the endpoint identified by this service attachment. TargetService pulumi.StringOutput `pulumi:"targetService"` } @@ -675,8 +674,7 @@ type serviceAttachmentState struct { Region *string `pulumi:"region"` // The URI of the created resource. SelfLink *string `pulumi:"selfLink"` - // The URL of a forwarding rule that represents the service identified by - // this service attachment. + // The URL of a service serving the endpoint identified by this service attachment. TargetService *string `pulumi:"targetService"` } @@ -731,8 +729,7 @@ type ServiceAttachmentState struct { Region pulumi.StringPtrInput // The URI of the created resource. SelfLink pulumi.StringPtrInput - // The URL of a forwarding rule that represents the service identified by - // this service attachment. + // The URL of a service serving the endpoint identified by this service attachment. TargetService pulumi.StringPtrInput } @@ -782,8 +779,7 @@ type serviceAttachmentArgs struct { ReconcileConnections *bool `pulumi:"reconcileConnections"` // URL of the region where the resource resides. Region *string `pulumi:"region"` - // The URL of a forwarding rule that represents the service identified by - // this service attachment. + // The URL of a service serving the endpoint identified by this service attachment. TargetService string `pulumi:"targetService"` } @@ -830,8 +826,7 @@ type ServiceAttachmentArgs struct { ReconcileConnections pulumi.BoolPtrInput // URL of the region where the resource resides. Region pulumi.StringPtrInput - // The URL of a forwarding rule that represents the service identified by - // this service attachment. + // The URL of a service serving the endpoint identified by this service attachment. TargetService pulumi.StringInput } @@ -1016,8 +1011,7 @@ func (o ServiceAttachmentOutput) SelfLink() pulumi.StringOutput { return o.ApplyT(func(v *ServiceAttachment) pulumi.StringOutput { return v.SelfLink }).(pulumi.StringOutput) } -// The URL of a forwarding rule that represents the service identified by -// this service attachment. +// The URL of a service serving the endpoint identified by this service attachment. func (o ServiceAttachmentOutput) TargetService() pulumi.StringOutput { return o.ApplyT(func(v *ServiceAttachment) pulumi.StringOutput { return v.TargetService }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/container/nodePool.go b/sdk/go/gcp/container/nodePool.go index 25511a1cf4..c82a7ed26f 100644 --- a/sdk/go/gcp/container/nodePool.go +++ b/sdk/go/gcp/container/nodePool.go @@ -224,8 +224,6 @@ type NodePool struct { Project pulumi.StringOutput `pulumi:"project"` // Specifies node pool-level settings of queued provisioning. // Structure is documented below. - // - // The `autoscaling` block supports (either total or per zone limits are required): QueuedProvisioning NodePoolQueuedProvisioningPtrOutput `pulumi:"queuedProvisioning"` // Specify node upgrade settings to change how GKE upgrades nodes. // The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. @@ -338,8 +336,6 @@ type nodePoolState struct { Project *string `pulumi:"project"` // Specifies node pool-level settings of queued provisioning. // Structure is documented below. - // - // The `autoscaling` block supports (either total or per zone limits are required): QueuedProvisioning *NodePoolQueuedProvisioning `pulumi:"queuedProvisioning"` // Specify node upgrade settings to change how GKE upgrades nodes. // The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. @@ -420,8 +416,6 @@ type NodePoolState struct { Project pulumi.StringPtrInput // Specifies node pool-level settings of queued provisioning. // Structure is documented below. - // - // The `autoscaling` block supports (either total or per zone limits are required): QueuedProvisioning NodePoolQueuedProvisioningPtrInput // Specify node upgrade settings to change how GKE upgrades nodes. // The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. @@ -501,8 +495,6 @@ type nodePoolArgs struct { Project *string `pulumi:"project"` // Specifies node pool-level settings of queued provisioning. // Structure is documented below. - // - // The `autoscaling` block supports (either total or per zone limits are required): QueuedProvisioning *NodePoolQueuedProvisioning `pulumi:"queuedProvisioning"` // Specify node upgrade settings to change how GKE upgrades nodes. // The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. @@ -579,8 +571,6 @@ type NodePoolArgs struct { Project pulumi.StringPtrInput // Specifies node pool-level settings of queued provisioning. // Structure is documented below. - // - // The `autoscaling` block supports (either total or per zone limits are required): QueuedProvisioning NodePoolQueuedProvisioningPtrInput // Specify node upgrade settings to change how GKE upgrades nodes. // The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. @@ -798,8 +788,6 @@ func (o NodePoolOutput) Project() pulumi.StringOutput { // Specifies node pool-level settings of queued provisioning. // Structure is documented below. -// -// The `autoscaling` block supports (either total or per zone limits are required): func (o NodePoolOutput) QueuedProvisioning() NodePoolQueuedProvisioningPtrOutput { return o.ApplyT(func(v *NodePool) NodePoolQueuedProvisioningPtrOutput { return v.QueuedProvisioning }).(NodePoolQueuedProvisioningPtrOutput) } diff --git a/sdk/go/gcp/container/pulumiTypes.go b/sdk/go/gcp/container/pulumiTypes.go index 8d7a440d66..74a34fd85f 100644 --- a/sdk/go/gcp/container/pulumiTypes.go +++ b/sdk/go/gcp/container/pulumiTypes.go @@ -10488,11 +10488,24 @@ type ClusterAddonsConfig struct { // It can only be disabled if the nodes already do not have network policies enabled. // Defaults to disabled; set `disabled = false` to enable. NetworkPolicyConfig *ClusterAddonsConfigNetworkPolicyConfig `pulumi:"networkPolicyConfig"` + // . The status of the [Ray Operator + // addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + // It is disabled by default. Set `enabled = true` to enable. The minimum + // cluster version to enable Ray is 1.30.0-gke.1747000. + // + // Ray Operator config has optional subfields + // `ray_cluster_logging_config.enabled` and + // `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + // and monitoring respectively. See [Collect and view logs and metrics for Ray + // clusters on + // GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + // for more information. + // + // This example `addonsConfig` disables two addons: + RayOperatorConfigs []ClusterAddonsConfigRayOperatorConfig `pulumi:"rayOperatorConfigs"` // . // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. // It is disabled by default for Standard clusters. Set `enabled = true` to enable. - // - // This example `addonsConfig` disables two addons: StatefulHaConfig *ClusterAddonsConfigStatefulHaConfig `pulumi:"statefulHaConfig"` } @@ -10561,11 +10574,24 @@ type ClusterAddonsConfigArgs struct { // It can only be disabled if the nodes already do not have network policies enabled. // Defaults to disabled; set `disabled = false` to enable. NetworkPolicyConfig ClusterAddonsConfigNetworkPolicyConfigPtrInput `pulumi:"networkPolicyConfig"` + // . The status of the [Ray Operator + // addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + // It is disabled by default. Set `enabled = true` to enable. The minimum + // cluster version to enable Ray is 1.30.0-gke.1747000. + // + // Ray Operator config has optional subfields + // `ray_cluster_logging_config.enabled` and + // `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + // and monitoring respectively. See [Collect and view logs and metrics for Ray + // clusters on + // GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + // for more information. + // + // This example `addonsConfig` disables two addons: + RayOperatorConfigs ClusterAddonsConfigRayOperatorConfigArrayInput `pulumi:"rayOperatorConfigs"` // . // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. // It is disabled by default for Standard clusters. Set `enabled = true` to enable. - // - // This example `addonsConfig` disables two addons: StatefulHaConfig ClusterAddonsConfigStatefulHaConfigPtrInput `pulumi:"statefulHaConfig"` } @@ -10743,11 +10769,27 @@ func (o ClusterAddonsConfigOutput) NetworkPolicyConfig() ClusterAddonsConfigNetw return o.ApplyT(func(v ClusterAddonsConfig) *ClusterAddonsConfigNetworkPolicyConfig { return v.NetworkPolicyConfig }).(ClusterAddonsConfigNetworkPolicyConfigPtrOutput) } +// . The status of the [Ray Operator +// addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). +// It is disabled by default. Set `enabled = true` to enable. The minimum +// cluster version to enable Ray is 1.30.0-gke.1747000. +// +// Ray Operator config has optional subfields +// `ray_cluster_logging_config.enabled` and +// `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging +// and monitoring respectively. See [Collect and view logs and metrics for Ray +// clusters on +// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) +// for more information. +// +// This example `addonsConfig` disables two addons: +func (o ClusterAddonsConfigOutput) RayOperatorConfigs() ClusterAddonsConfigRayOperatorConfigArrayOutput { + return o.ApplyT(func(v ClusterAddonsConfig) []ClusterAddonsConfigRayOperatorConfig { return v.RayOperatorConfigs }).(ClusterAddonsConfigRayOperatorConfigArrayOutput) +} + // . // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. // It is disabled by default for Standard clusters. Set `enabled = true` to enable. -// -// This example `addonsConfig` disables two addons: func (o ClusterAddonsConfigOutput) StatefulHaConfig() ClusterAddonsConfigStatefulHaConfigPtrOutput { return o.ApplyT(func(v ClusterAddonsConfig) *ClusterAddonsConfigStatefulHaConfig { return v.StatefulHaConfig }).(ClusterAddonsConfigStatefulHaConfigPtrOutput) } @@ -10925,11 +10967,32 @@ func (o ClusterAddonsConfigPtrOutput) NetworkPolicyConfig() ClusterAddonsConfigN }).(ClusterAddonsConfigNetworkPolicyConfigPtrOutput) } +// . The status of the [Ray Operator +// addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). +// It is disabled by default. Set `enabled = true` to enable. The minimum +// cluster version to enable Ray is 1.30.0-gke.1747000. +// +// Ray Operator config has optional subfields +// `ray_cluster_logging_config.enabled` and +// `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging +// and monitoring respectively. See [Collect and view logs and metrics for Ray +// clusters on +// GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) +// for more information. +// +// This example `addonsConfig` disables two addons: +func (o ClusterAddonsConfigPtrOutput) RayOperatorConfigs() ClusterAddonsConfigRayOperatorConfigArrayOutput { + return o.ApplyT(func(v *ClusterAddonsConfig) []ClusterAddonsConfigRayOperatorConfig { + if v == nil { + return nil + } + return v.RayOperatorConfigs + }).(ClusterAddonsConfigRayOperatorConfigArrayOutput) +} + // . // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. // It is disabled by default for Standard clusters. Set `enabled = true` to enable. -// -// This example `addonsConfig` disables two addons: func (o ClusterAddonsConfigPtrOutput) StatefulHaConfig() ClusterAddonsConfigStatefulHaConfigPtrOutput { return o.ApplyT(func(v *ClusterAddonsConfig) *ClusterAddonsConfigStatefulHaConfig { if v == nil { @@ -12625,6 +12688,388 @@ func (o ClusterAddonsConfigNetworkPolicyConfigPtrOutput) Disabled() pulumi.BoolP }).(pulumi.BoolPtrOutput) } +type ClusterAddonsConfigRayOperatorConfig struct { + Enabled bool `pulumi:"enabled"` + // The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + RayClusterLoggingConfig *ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig `pulumi:"rayClusterLoggingConfig"` + // The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + RayClusterMonitoringConfig *ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig `pulumi:"rayClusterMonitoringConfig"` +} + +// ClusterAddonsConfigRayOperatorConfigInput is an input type that accepts ClusterAddonsConfigRayOperatorConfigArgs and ClusterAddonsConfigRayOperatorConfigOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigRayOperatorConfigInput` via: +// +// ClusterAddonsConfigRayOperatorConfigArgs{...} +type ClusterAddonsConfigRayOperatorConfigInput interface { + pulumi.Input + + ToClusterAddonsConfigRayOperatorConfigOutput() ClusterAddonsConfigRayOperatorConfigOutput + ToClusterAddonsConfigRayOperatorConfigOutputWithContext(context.Context) ClusterAddonsConfigRayOperatorConfigOutput +} + +type ClusterAddonsConfigRayOperatorConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` + // The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + RayClusterLoggingConfig ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrInput `pulumi:"rayClusterLoggingConfig"` + // The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + RayClusterMonitoringConfig ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrInput `pulumi:"rayClusterMonitoringConfig"` +} + +func (ClusterAddonsConfigRayOperatorConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (i ClusterAddonsConfigRayOperatorConfigArgs) ToClusterAddonsConfigRayOperatorConfigOutput() ClusterAddonsConfigRayOperatorConfigOutput { + return i.ToClusterAddonsConfigRayOperatorConfigOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigRayOperatorConfigArgs) ToClusterAddonsConfigRayOperatorConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigOutput) +} + +// ClusterAddonsConfigRayOperatorConfigArrayInput is an input type that accepts ClusterAddonsConfigRayOperatorConfigArray and ClusterAddonsConfigRayOperatorConfigArrayOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigRayOperatorConfigArrayInput` via: +// +// ClusterAddonsConfigRayOperatorConfigArray{ ClusterAddonsConfigRayOperatorConfigArgs{...} } +type ClusterAddonsConfigRayOperatorConfigArrayInput interface { + pulumi.Input + + ToClusterAddonsConfigRayOperatorConfigArrayOutput() ClusterAddonsConfigRayOperatorConfigArrayOutput + ToClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(context.Context) ClusterAddonsConfigRayOperatorConfigArrayOutput +} + +type ClusterAddonsConfigRayOperatorConfigArray []ClusterAddonsConfigRayOperatorConfigInput + +func (ClusterAddonsConfigRayOperatorConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (i ClusterAddonsConfigRayOperatorConfigArray) ToClusterAddonsConfigRayOperatorConfigArrayOutput() ClusterAddonsConfigRayOperatorConfigArrayOutput { + return i.ToClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigRayOperatorConfigArray) ToClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigArrayOutput) +} + +type ClusterAddonsConfigRayOperatorConfigOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigRayOperatorConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigRayOperatorConfigOutput) ToClusterAddonsConfigRayOperatorConfigOutput() ClusterAddonsConfigRayOperatorConfigOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigOutput) ToClusterAddonsConfigRayOperatorConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ClusterAddonsConfigRayOperatorConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. +func (o ClusterAddonsConfigRayOperatorConfigOutput) RayClusterLoggingConfig() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return o.ApplyT(func(v ClusterAddonsConfigRayOperatorConfig) *ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + return v.RayClusterLoggingConfig + }).(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) +} + +// The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. +func (o ClusterAddonsConfigRayOperatorConfigOutput) RayClusterMonitoringConfig() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return o.ApplyT(func(v ClusterAddonsConfigRayOperatorConfig) *ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + return v.RayClusterMonitoringConfig + }).(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) +} + +type ClusterAddonsConfigRayOperatorConfigArrayOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigRayOperatorConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigRayOperatorConfigArrayOutput) ToClusterAddonsConfigRayOperatorConfigArrayOutput() ClusterAddonsConfigRayOperatorConfigArrayOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigArrayOutput) ToClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigArrayOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigArrayOutput) Index(i pulumi.IntInput) ClusterAddonsConfigRayOperatorConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ClusterAddonsConfigRayOperatorConfig { + return vs[0].([]ClusterAddonsConfigRayOperatorConfig)[vs[1].(int)] + }).(ClusterAddonsConfigRayOperatorConfigOutput) +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig struct { + Enabled bool `pulumi:"enabled"` +} + +// ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput is an input type that accepts ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs and ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput` via: +// +// ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{...} +type ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput interface { + pulumi.Input + + ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput + ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return i.ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return i.ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput).ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(ctx) +} + +// ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrInput is an input type that accepts ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs, ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtr and ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrInput` via: +// +// ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{...} +// +// or: +// +// nil +type ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrInput interface { + pulumi.Input + + ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput + ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput +} + +type clusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrType ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs + +func ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtr(v *ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrInput { + return (*clusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrType)(v) +} + +func (*clusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (i *clusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrType) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return i.ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(context.Background()) +} + +func (i *clusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrType) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return o.ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(context.Background()) +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig) *ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + return &v + }).(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) Elem() ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return o.ApplyT(func(v *ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig) ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + if v != nil { + return *v + } + var ret ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig + return ret + }).(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig struct { + Enabled bool `pulumi:"enabled"` +} + +// ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput is an input type that accepts ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs and ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput` via: +// +// ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs{...} +type ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput interface { + pulumi.Input + + ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput + ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return i.ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return i.ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(context.Background()) +} + +func (i ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput).ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(ctx) +} + +// ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrInput is an input type that accepts ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs, ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtr and ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput values. +// You can construct a concrete instance of `ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrInput` via: +// +// ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs{...} +// +// or: +// +// nil +type ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrInput interface { + pulumi.Input + + ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput + ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput +} + +type clusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrType ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs + +func ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtr(v *ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrInput { + return (*clusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrType)(v) +} + +func (*clusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (i *clusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrType) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return i.ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(context.Background()) +} + +func (i *clusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrType) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return o.ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(context.Background()) +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig) *ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + return &v + }).(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput struct{ *pulumi.OutputState } + +func (ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) ToClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutputWithContext(ctx context.Context) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput { + return o +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) Elem() ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return o.ApplyT(func(v *ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig) ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + if v != nil { + return *v + } + var ret ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig + return ret + }).(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) +} + +func (o ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput) Enabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig) *bool { + if v == nil { + return nil + } + return &v.Enabled + }).(pulumi.BoolPtrOutput) +} + type ClusterAddonsConfigStatefulHaConfig struct { Enabled bool `pulumi:"enabled"` } @@ -36790,7 +37235,10 @@ type NodePoolNodeConfig struct { OauthScopes []string `pulumi:"oauthScopes"` // Whether the nodes are created as preemptible VM instances. Preemptible *bool `pulumi:"preemptible"` - // The reservation affinity configuration for the node pool. + // The configuration of the desired reservation which instances could take capacity from. + // Structure is documented below. + // + // The `autoscaling` block supports (either total or per zone limits are required): ReservationAffinity *NodePoolNodeConfigReservationAffinity `pulumi:"reservationAffinity"` // The GCE resource labels (a map of key/value pairs) to be applied to the node pool. ResourceLabels map[string]string `pulumi:"resourceLabels"` @@ -36884,7 +37332,10 @@ type NodePoolNodeConfigArgs struct { OauthScopes pulumi.StringArrayInput `pulumi:"oauthScopes"` // Whether the nodes are created as preemptible VM instances. Preemptible pulumi.BoolPtrInput `pulumi:"preemptible"` - // The reservation affinity configuration for the node pool. + // The configuration of the desired reservation which instances could take capacity from. + // Structure is documented below. + // + // The `autoscaling` block supports (either total or per zone limits are required): ReservationAffinity NodePoolNodeConfigReservationAffinityPtrInput `pulumi:"reservationAffinity"` // The GCE resource labels (a map of key/value pairs) to be applied to the node pool. ResourceLabels pulumi.StringMapInput `pulumi:"resourceLabels"` @@ -37133,7 +37584,10 @@ func (o NodePoolNodeConfigOutput) Preemptible() pulumi.BoolPtrOutput { return o.ApplyT(func(v NodePoolNodeConfig) *bool { return v.Preemptible }).(pulumi.BoolPtrOutput) } -// The reservation affinity configuration for the node pool. +// The configuration of the desired reservation which instances could take capacity from. +// Structure is documented below. +// +// The `autoscaling` block supports (either total or per zone limits are required): func (o NodePoolNodeConfigOutput) ReservationAffinity() NodePoolNodeConfigReservationAffinityPtrOutput { return o.ApplyT(func(v NodePoolNodeConfig) *NodePoolNodeConfigReservationAffinity { return v.ReservationAffinity }).(NodePoolNodeConfigReservationAffinityPtrOutput) } @@ -37497,7 +37951,10 @@ func (o NodePoolNodeConfigPtrOutput) Preemptible() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// The reservation affinity configuration for the node pool. +// The configuration of the desired reservation which instances could take capacity from. +// Structure is documented below. +// +// The `autoscaling` block supports (either total or per zone limits are required): func (o NodePoolNodeConfigPtrOutput) ReservationAffinity() NodePoolNodeConfigReservationAffinityPtrOutput { return o.ApplyT(func(v *NodePoolNodeConfig) *NodePoolNodeConfigReservationAffinity { if v == nil { @@ -40232,11 +40689,17 @@ func (o NodePoolNodeConfigLocalNvmeSsdBlockConfigPtrOutput) LocalSsdCount() pulu } type NodePoolNodeConfigReservationAffinity struct { - // Corresponds to the type of reservation consumption. + // The type of reservation consumption + // Accepted values are: + // + // * `"UNSPECIFIED"`: Default value. This should not be used. + // * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + // * `"ANY_RESERVATION"`: Consume any reservation available. + // * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. ConsumeReservationType string `pulumi:"consumeReservationType"` - // The label key of a reservation resource. + // 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. Key *string `pulumi:"key"` - // The label values of the reservation resource. + // 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" Values []string `pulumi:"values"` } @@ -40252,11 +40715,17 @@ type NodePoolNodeConfigReservationAffinityInput interface { } type NodePoolNodeConfigReservationAffinityArgs struct { - // Corresponds to the type of reservation consumption. + // The type of reservation consumption + // Accepted values are: + // + // * `"UNSPECIFIED"`: Default value. This should not be used. + // * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + // * `"ANY_RESERVATION"`: Consume any reservation available. + // * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. ConsumeReservationType pulumi.StringInput `pulumi:"consumeReservationType"` - // The label key of a reservation resource. + // 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. Key pulumi.StringPtrInput `pulumi:"key"` - // The label values of the reservation resource. + // 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" Values pulumi.StringArrayInput `pulumi:"values"` } @@ -40337,17 +40806,23 @@ func (o NodePoolNodeConfigReservationAffinityOutput) ToNodePoolNodeConfigReserva }).(NodePoolNodeConfigReservationAffinityPtrOutput) } -// Corresponds to the type of reservation consumption. +// The type of reservation consumption +// Accepted values are: +// +// * `"UNSPECIFIED"`: Default value. This should not be used. +// * `"NO_RESERVATION"`: Do not consume from any reserved capacity. +// * `"ANY_RESERVATION"`: Consume any reservation available. +// * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. func (o NodePoolNodeConfigReservationAffinityOutput) ConsumeReservationType() pulumi.StringOutput { return o.ApplyT(func(v NodePoolNodeConfigReservationAffinity) string { return v.ConsumeReservationType }).(pulumi.StringOutput) } -// The label key of a reservation resource. +// 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. func (o NodePoolNodeConfigReservationAffinityOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v NodePoolNodeConfigReservationAffinity) *string { return v.Key }).(pulumi.StringPtrOutput) } -// The label values of the reservation resource. +// 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" func (o NodePoolNodeConfigReservationAffinityOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v NodePoolNodeConfigReservationAffinity) []string { return v.Values }).(pulumi.StringArrayOutput) } @@ -40376,7 +40851,13 @@ func (o NodePoolNodeConfigReservationAffinityPtrOutput) Elem() NodePoolNodeConfi }).(NodePoolNodeConfigReservationAffinityOutput) } -// Corresponds to the type of reservation consumption. +// The type of reservation consumption +// Accepted values are: +// +// * `"UNSPECIFIED"`: Default value. This should not be used. +// * `"NO_RESERVATION"`: Do not consume from any reserved capacity. +// * `"ANY_RESERVATION"`: Consume any reservation available. +// * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. func (o NodePoolNodeConfigReservationAffinityPtrOutput) ConsumeReservationType() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodePoolNodeConfigReservationAffinity) *string { if v == nil { @@ -40386,7 +40867,7 @@ func (o NodePoolNodeConfigReservationAffinityPtrOutput) ConsumeReservationType() }).(pulumi.StringPtrOutput) } -// The label key of a reservation resource. +// 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. func (o NodePoolNodeConfigReservationAffinityPtrOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodePoolNodeConfigReservationAffinity) *string { if v == nil { @@ -40396,7 +40877,7 @@ func (o NodePoolNodeConfigReservationAffinityPtrOutput) Key() pulumi.StringPtrOu }).(pulumi.StringPtrOutput) } -// The label values of the reservation resource. +// 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" func (o NodePoolNodeConfigReservationAffinityPtrOutput) Values() pulumi.StringArrayOutput { return o.ApplyT(func(v *NodePoolNodeConfigReservationAffinity) []string { if v == nil { @@ -42227,6 +42708,8 @@ type GetClusterAddonsConfig struct { KalmConfigs []GetClusterAddonsConfigKalmConfig `pulumi:"kalmConfigs"` // 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 networkPolicy block, 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. NetworkPolicyConfigs []GetClusterAddonsConfigNetworkPolicyConfig `pulumi:"networkPolicyConfigs"` + // 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. + RayOperatorConfigs []GetClusterAddonsConfigRayOperatorConfig `pulumi:"rayOperatorConfigs"` // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. StatefulHaConfigs []GetClusterAddonsConfigStatefulHaConfig `pulumi:"statefulHaConfigs"` } @@ -42267,6 +42750,8 @@ type GetClusterAddonsConfigArgs struct { KalmConfigs GetClusterAddonsConfigKalmConfigArrayInput `pulumi:"kalmConfigs"` // 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 networkPolicy block, 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. NetworkPolicyConfigs GetClusterAddonsConfigNetworkPolicyConfigArrayInput `pulumi:"networkPolicyConfigs"` + // 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. + RayOperatorConfigs GetClusterAddonsConfigRayOperatorConfigArrayInput `pulumi:"rayOperatorConfigs"` // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. StatefulHaConfigs GetClusterAddonsConfigStatefulHaConfigArrayInput `pulumi:"statefulHaConfigs"` } @@ -42396,6 +42881,11 @@ func (o GetClusterAddonsConfigOutput) NetworkPolicyConfigs() GetClusterAddonsCon }).(GetClusterAddonsConfigNetworkPolicyConfigArrayOutput) } +// 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. +func (o GetClusterAddonsConfigOutput) RayOperatorConfigs() GetClusterAddonsConfigRayOperatorConfigArrayOutput { + return o.ApplyT(func(v GetClusterAddonsConfig) []GetClusterAddonsConfigRayOperatorConfig { return v.RayOperatorConfigs }).(GetClusterAddonsConfigRayOperatorConfigArrayOutput) +} + // The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. func (o GetClusterAddonsConfigOutput) StatefulHaConfigs() GetClusterAddonsConfigStatefulHaConfigArrayOutput { return o.ApplyT(func(v GetClusterAddonsConfig) []GetClusterAddonsConfigStatefulHaConfig { return v.StatefulHaConfigs }).(GetClusterAddonsConfigStatefulHaConfigArrayOutput) @@ -43567,6 +44057,310 @@ func (o GetClusterAddonsConfigNetworkPolicyConfigArrayOutput) Index(i pulumi.Int }).(GetClusterAddonsConfigNetworkPolicyConfigOutput) } +type GetClusterAddonsConfigRayOperatorConfig struct { + Enabled bool `pulumi:"enabled"` + // The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + RayClusterLoggingConfigs []GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig `pulumi:"rayClusterLoggingConfigs"` + // The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + RayClusterMonitoringConfigs []GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig `pulumi:"rayClusterMonitoringConfigs"` +} + +// GetClusterAddonsConfigRayOperatorConfigInput is an input type that accepts GetClusterAddonsConfigRayOperatorConfigArgs and GetClusterAddonsConfigRayOperatorConfigOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigRayOperatorConfigInput` via: +// +// GetClusterAddonsConfigRayOperatorConfigArgs{...} +type GetClusterAddonsConfigRayOperatorConfigInput interface { + pulumi.Input + + ToGetClusterAddonsConfigRayOperatorConfigOutput() GetClusterAddonsConfigRayOperatorConfigOutput + ToGetClusterAddonsConfigRayOperatorConfigOutputWithContext(context.Context) GetClusterAddonsConfigRayOperatorConfigOutput +} + +type GetClusterAddonsConfigRayOperatorConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` + // The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + RayClusterLoggingConfigs GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayInput `pulumi:"rayClusterLoggingConfigs"` + // The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + RayClusterMonitoringConfigs GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayInput `pulumi:"rayClusterMonitoringConfigs"` +} + +func (GetClusterAddonsConfigRayOperatorConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigRayOperatorConfigArgs) ToGetClusterAddonsConfigRayOperatorConfigOutput() GetClusterAddonsConfigRayOperatorConfigOutput { + return i.ToGetClusterAddonsConfigRayOperatorConfigOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigRayOperatorConfigArgs) ToGetClusterAddonsConfigRayOperatorConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigRayOperatorConfigOutput) +} + +// GetClusterAddonsConfigRayOperatorConfigArrayInput is an input type that accepts GetClusterAddonsConfigRayOperatorConfigArray and GetClusterAddonsConfigRayOperatorConfigArrayOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigRayOperatorConfigArrayInput` via: +// +// GetClusterAddonsConfigRayOperatorConfigArray{ GetClusterAddonsConfigRayOperatorConfigArgs{...} } +type GetClusterAddonsConfigRayOperatorConfigArrayInput interface { + pulumi.Input + + ToGetClusterAddonsConfigRayOperatorConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigArrayOutput + ToGetClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(context.Context) GetClusterAddonsConfigRayOperatorConfigArrayOutput +} + +type GetClusterAddonsConfigRayOperatorConfigArray []GetClusterAddonsConfigRayOperatorConfigInput + +func (GetClusterAddonsConfigRayOperatorConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigRayOperatorConfigArray) ToGetClusterAddonsConfigRayOperatorConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigArrayOutput { + return i.ToGetClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigRayOperatorConfigArray) ToGetClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigRayOperatorConfigArrayOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigRayOperatorConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigRayOperatorConfigOutput) ToGetClusterAddonsConfigRayOperatorConfigOutput() GetClusterAddonsConfigRayOperatorConfigOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigOutput) ToGetClusterAddonsConfigRayOperatorConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterAddonsConfigRayOperatorConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +// The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. +func (o GetClusterAddonsConfigRayOperatorConfigOutput) RayClusterLoggingConfigs() GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput { + return o.ApplyT(func(v GetClusterAddonsConfigRayOperatorConfig) []GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + return v.RayClusterLoggingConfigs + }).(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput) +} + +// The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. +func (o GetClusterAddonsConfigRayOperatorConfigOutput) RayClusterMonitoringConfigs() GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput { + return o.ApplyT(func(v GetClusterAddonsConfigRayOperatorConfig) []GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + return v.RayClusterMonitoringConfigs + }).(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigRayOperatorConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigRayOperatorConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigRayOperatorConfigArrayOutput) ToGetClusterAddonsConfigRayOperatorConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigArrayOutput) ToGetClusterAddonsConfigRayOperatorConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigArrayOutput) Index(i pulumi.IntInput) GetClusterAddonsConfigRayOperatorConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterAddonsConfigRayOperatorConfig { + return vs[0].([]GetClusterAddonsConfigRayOperatorConfig)[vs[1].(int)] + }).(GetClusterAddonsConfigRayOperatorConfigOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig struct { + Enabled bool `pulumi:"enabled"` +} + +// GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput is an input type that accepts GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs and GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput` via: +// +// GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{...} +type GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput interface { + pulumi.Input + + ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput + ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return i.ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) +} + +// GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayInput is an input type that accepts GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArray and GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayInput` via: +// +// GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArray{ GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{...} } +type GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayInput interface { + pulumi.Input + + ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput + ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutputWithContext(context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArray []GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArray) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput { + return i.ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArray) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput) Index(i pulumi.IntInput) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + return vs[0].([]GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig)[vs[1].(int)] + }).(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig struct { + Enabled bool `pulumi:"enabled"` +} + +// GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput is an input type that accepts GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs and GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput` via: +// +// GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs{...} +type GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput interface { + pulumi.Input + + ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput + ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs struct { + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return i.ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) +} + +// GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayInput is an input type that accepts GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArray and GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput values. +// You can construct a concrete instance of `GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayInput` via: +// +// GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArray{ GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs{...} } +type GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayInput interface { + pulumi.Input + + ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput + ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutputWithContext(context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArray []GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArray) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput { + return i.ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutputWithContext(context.Background()) +} + +func (i GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArray) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput struct{ *pulumi.OutputState } + +func (GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)(nil)).Elem() +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput() GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput) ToGetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutputWithContext(ctx context.Context) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput { + return o +} + +func (o GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput) Index(i pulumi.IntInput) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + return vs[0].([]GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig)[vs[1].(int)] + }).(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput) +} + type GetClusterAddonsConfigStatefulHaConfig struct { Enabled bool `pulumi:"enabled"` } @@ -59228,6 +60022,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigKalmConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigKalmConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigNetworkPolicyConfigInput)(nil)).Elem(), ClusterAddonsConfigNetworkPolicyConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigNetworkPolicyConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigNetworkPolicyConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigArrayInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigStatefulHaConfigInput)(nil)).Elem(), ClusterAddonsConfigStatefulHaConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAddonsConfigStatefulHaConfigPtrInput)(nil)).Elem(), ClusterAddonsConfigStatefulHaConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterAuthenticatorGroupsConfigInput)(nil)).Elem(), ClusterAuthenticatorGroupsConfigArgs{}) @@ -59602,6 +60402,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigKalmConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigKalmConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigNetworkPolicyConfigInput)(nil)).Elem(), GetClusterAddonsConfigNetworkPolicyConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigNetworkPolicyConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigNetworkPolicyConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigStatefulHaConfigInput)(nil)).Elem(), GetClusterAddonsConfigStatefulHaConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAddonsConfigStatefulHaConfigArrayInput)(nil)).Elem(), GetClusterAddonsConfigStatefulHaConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetClusterAuthenticatorGroupsConfigInput)(nil)).Elem(), GetClusterAuthenticatorGroupsConfigArgs{}) @@ -60034,6 +60840,12 @@ func init() { pulumi.RegisterOutputType(ClusterAddonsConfigKalmConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigNetworkPolicyConfigOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigNetworkPolicyConfigPtrOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigArrayOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigPtrOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput{}) + pulumi.RegisterOutputType(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigStatefulHaConfigOutput{}) pulumi.RegisterOutputType(ClusterAddonsConfigStatefulHaConfigPtrOutput{}) pulumi.RegisterOutputType(ClusterAuthenticatorGroupsConfigOutput{}) @@ -60408,6 +61220,12 @@ func init() { pulumi.RegisterOutputType(GetClusterAddonsConfigKalmConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigNetworkPolicyConfigOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigNetworkPolicyConfigArrayOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigArrayOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArrayOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigOutput{}) + pulumi.RegisterOutputType(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigStatefulHaConfigOutput{}) pulumi.RegisterOutputType(GetClusterAddonsConfigStatefulHaConfigArrayOutput{}) pulumi.RegisterOutputType(GetClusterAuthenticatorGroupsConfigOutput{}) diff --git a/sdk/go/gcp/databasemigrationservice/privateConnection.go b/sdk/go/gcp/databasemigrationservice/privateConnection.go index a59b724039..4ad5e68cd2 100644 --- a/sdk/go/gcp/databasemigrationservice/privateConnection.go +++ b/sdk/go/gcp/databasemigrationservice/privateConnection.go @@ -37,13 +37,7 @@ import ( // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// _default, err := compute.LookupNetwork(ctx, &compute.LookupNetworkArgs{ -// Name: "my-network", -// }, nil) -// if err != nil { -// return err -// } -// _, err = databasemigrationservice.NewPrivateConnection(ctx, "default", &databasemigrationservice.PrivateConnectionArgs{ +// _, err := databasemigrationservice.NewPrivateConnection(ctx, "default", &databasemigrationservice.PrivateConnectionArgs{ // DisplayName: pulumi.String("dbms_pc"), // Location: pulumi.String("us-central1"), // PrivateConnectionId: pulumi.String("my-connection"), @@ -51,13 +45,20 @@ import ( // "key": pulumi.String("value"), // }, // VpcPeeringConfig: &databasemigrationservice.PrivateConnectionVpcPeeringConfigArgs{ -// VpcName: pulumi.String(_default.Id), +// VpcName: pulumi.Any(googleComputeNetwork.Default.Id), // Subnet: pulumi.String("10.0.0.0/29"), // }, // }) // if err != nil { // return err // } +// _, err = compute.NewNetwork(ctx, "default", &compute.NetworkArgs{ +// Name: pulumi.String("my-network"), +// AutoCreateSubnetworks: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } // return nil // }) // } diff --git a/sdk/go/gcp/dataloss/pulumiTypes.go b/sdk/go/gcp/dataloss/pulumiTypes.go index 1f1c4e4d3c..bb475fd558 100644 --- a/sdk/go/gcp/dataloss/pulumiTypes.go +++ b/sdk/go/gcp/dataloss/pulumiTypes.go @@ -36379,6 +36379,9 @@ type PreventionDiscoveryConfigTarget struct { // Cloud SQL target for Discovery. The first target to match a table will be the one applied. // Structure is documented below. CloudSqlTarget *PreventionDiscoveryConfigTargetCloudSqlTarget `pulumi:"cloudSqlTarget"` + // Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + // Structure is documented below. + CloudStorageTarget *PreventionDiscoveryConfigTargetCloudStorageTarget `pulumi:"cloudStorageTarget"` // 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. SecretsTarget *PreventionDiscoveryConfigTargetSecretsTarget `pulumi:"secretsTarget"` } @@ -36401,6 +36404,9 @@ type PreventionDiscoveryConfigTargetArgs struct { // Cloud SQL target for Discovery. The first target to match a table will be the one applied. // Structure is documented below. CloudSqlTarget PreventionDiscoveryConfigTargetCloudSqlTargetPtrInput `pulumi:"cloudSqlTarget"` + // Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + // Structure is documented below. + CloudStorageTarget PreventionDiscoveryConfigTargetCloudStorageTargetPtrInput `pulumi:"cloudStorageTarget"` // 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. SecretsTarget PreventionDiscoveryConfigTargetSecretsTargetPtrInput `pulumi:"secretsTarget"` } @@ -36472,6 +36478,14 @@ func (o PreventionDiscoveryConfigTargetOutput) CloudSqlTarget() PreventionDiscov }).(PreventionDiscoveryConfigTargetCloudSqlTargetPtrOutput) } +// Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetOutput) CloudStorageTarget() PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTarget) *PreventionDiscoveryConfigTargetCloudStorageTarget { + return v.CloudStorageTarget + }).(PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) +} + // 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. func (o PreventionDiscoveryConfigTargetOutput) SecretsTarget() PreventionDiscoveryConfigTargetSecretsTargetPtrOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTarget) *PreventionDiscoveryConfigTargetSecretsTarget { @@ -37218,7 +37232,7 @@ func (o PreventionDiscoveryConfigTargetBigQueryTargetCadenceTableModifiedCadence } type PreventionDiscoveryConfigTargetBigQueryTargetConditions struct { - // A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + // 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. CreatedAfter *string `pulumi:"createdAfter"` // At least one of the conditions must be true for a table to be scanned. // Structure is documented below. @@ -37243,7 +37257,7 @@ type PreventionDiscoveryConfigTargetBigQueryTargetConditionsInput interface { } type PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs struct { - // A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + // 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. CreatedAfter pulumi.StringPtrInput `pulumi:"createdAfter"` // At least one of the conditions must be true for a table to be scanned. // Structure is documented below. @@ -37333,7 +37347,7 @@ func (o PreventionDiscoveryConfigTargetBigQueryTargetConditionsOutput) ToPrevent }).(PreventionDiscoveryConfigTargetBigQueryTargetConditionsPtrOutput) } -// A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. +// 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. func (o PreventionDiscoveryConfigTargetBigQueryTargetConditionsOutput) CreatedAfter() pulumi.StringPtrOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTargetBigQueryTargetConditions) *string { return v.CreatedAfter }).(pulumi.StringPtrOutput) } @@ -37384,7 +37398,7 @@ func (o PreventionDiscoveryConfigTargetBigQueryTargetConditionsPtrOutput) Elem() }).(PreventionDiscoveryConfigTargetBigQueryTargetConditionsOutput) } -// A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. +// 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. func (o PreventionDiscoveryConfigTargetBigQueryTargetConditionsPtrOutput) CreatedAfter() pulumi.StringPtrOutput { return o.ApplyT(func(v *PreventionDiscoveryConfigTargetBigQueryTargetConditions) *string { if v == nil { @@ -38449,7 +38463,7 @@ func (o PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesPtrOutput) Incl } type PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes struct { - // A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + // The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. Patterns []PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern `pulumi:"patterns"` } @@ -38466,7 +38480,7 @@ type PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesInpu } type PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs struct { - // A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + // The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. Patterns PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArrayInput `pulumi:"patterns"` } @@ -38548,7 +38562,7 @@ func (o PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesO }).(PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPtrOutput) } -// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. +// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. func (o PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesOutput) Patterns() PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArrayOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes) []PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern { @@ -38580,7 +38594,7 @@ func (o PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesP }).(PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesOutput) } -// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. +// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. func (o PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPtrOutput) Patterns() PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArrayOutput { return o.ApplyT(func(v *PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes) []PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern { @@ -39209,13 +39223,13 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetDisabledPtrOutput) Elem() P } type PreventionDiscoveryConfigTargetCloudSqlTargetFilter struct { - // A specific set of database resources for this filter to apply to. + // A specific set of buckets for this filter to apply to. // Structure is documented below. Collection *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection `pulumi:"collection"` // The database resource to scan. Targets including this can only include one target (the target with this database resource reference). // Structure is documented below. DatabaseResourceReference *PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference `pulumi:"databaseResourceReference"` - // Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + // Match discovery resources not covered by any other filter. Others *PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers `pulumi:"others"` } @@ -39231,13 +39245,13 @@ type PreventionDiscoveryConfigTargetCloudSqlTargetFilterInput interface { } type PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs struct { - // A specific set of database resources for this filter to apply to. + // A specific set of buckets for this filter to apply to. // Structure is documented below. Collection PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionPtrInput `pulumi:"collection"` // The database resource to scan. Targets including this can only include one target (the target with this database resource reference). // Structure is documented below. DatabaseResourceReference PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReferencePtrInput `pulumi:"databaseResourceReference"` - // Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + // Match discovery resources not covered by any other filter. Others PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersPtrInput `pulumi:"others"` } @@ -39318,7 +39332,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterOutput) ToPreventionD }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterPtrOutput) } -// A specific set of database resources for this filter to apply to. +// A specific set of buckets for this filter to apply to. // Structure is documented below. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterOutput) Collection() PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionPtrOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudSqlTargetFilter) *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection { @@ -39334,7 +39348,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterOutput) DatabaseResou }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReferencePtrOutput) } -// Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. +// Match discovery resources not covered by any other filter. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterOutput) Others() PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersPtrOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudSqlTargetFilter) *PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers { return v.Others @@ -39365,7 +39379,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterPtrOutput) Elem() Pre }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterOutput) } -// A specific set of database resources for this filter to apply to. +// A specific set of buckets for this filter to apply to. // Structure is documented below. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterPtrOutput) Collection() PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionPtrOutput { return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudSqlTargetFilter) *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection { @@ -39387,7 +39401,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterPtrOutput) DatabaseRe }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReferencePtrOutput) } -// Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. +// Match discovery resources not covered by any other filter. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterPtrOutput) Others() PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersPtrOutput { return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudSqlTargetFilter) *PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers { if v == nil { @@ -39398,7 +39412,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterPtrOutput) Others() P } type PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection struct { - // A collection of regular expressions to match a database resource against. + // A collection of regular expressions to match a file store against. // Structure is documented below. IncludeRegexes *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes `pulumi:"includeRegexes"` } @@ -39415,7 +39429,7 @@ type PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionInput interfac } type PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs struct { - // A collection of regular expressions to match a database resource against. + // A collection of regular expressions to match a file store against. // Structure is documented below. IncludeRegexes PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPtrInput `pulumi:"includeRegexes"` } @@ -39497,7 +39511,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionOutput) ToP }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionPtrOutput) } -// A collection of regular expressions to match a database resource against. +// A collection of regular expressions to match a file store against. // Structure is documented below. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionOutput) IncludeRegexes() PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPtrOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection) *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes { @@ -39529,7 +39543,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionPtrOutput) }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionOutput) } -// A collection of regular expressions to match a database resource against. +// A collection of regular expressions to match a file store against. // Structure is documented below. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionPtrOutput) IncludeRegexes() PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPtrOutput { return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection) *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes { @@ -39541,7 +39555,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionPtrOutput) } type PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes struct { - // A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + // The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. Patterns []PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern `pulumi:"patterns"` } @@ -39558,7 +39572,7 @@ type PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes } type PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs struct { - // A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + // The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. Patterns PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArrayInput `pulumi:"patterns"` } @@ -39640,7 +39654,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRege }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPtrOutput) } -// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. +// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesOutput) Patterns() PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArrayOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes) []PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern { @@ -39672,7 +39686,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRege }).(PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesOutput) } -// A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. +// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. // Structure is documented below. func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPtrOutput) Patterns() PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArrayOutput { return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes) []PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern { @@ -40136,7 +40150,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersPtrOutput) Elem } type PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence struct { - // Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + // Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. RefreshFrequency *string `pulumi:"refreshFrequency"` // Governs when to update data profiles when a schema is modified @@ -40156,7 +40170,7 @@ type PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceInput interfa } type PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgs struct { - // Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + // Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. RefreshFrequency pulumi.StringPtrInput `pulumi:"refreshFrequency"` // Governs when to update data profiles when a schema is modified @@ -40241,7 +40255,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceOutput) To }).(PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadencePtrOutput) } -// Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. +// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. func (o PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceOutput) RefreshFrequency() pulumi.StringPtrOutput { return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence) *string { @@ -40281,7 +40295,7 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadencePtrOutput) }).(PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceOutput) } -// Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. +// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. func (o PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadencePtrOutput) RefreshFrequency() pulumi.StringPtrOutput { return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence) *string { @@ -40471,6 +40485,2013 @@ func (o PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModi }).(pulumi.StringArrayOutput) } +type PreventionDiscoveryConfigTargetCloudStorageTarget struct { + // In addition to matching the filter, these conditions must be true before a profile is generated. + // Structure is documented below. + Conditions *PreventionDiscoveryConfigTargetCloudStorageTargetConditions `pulumi:"conditions"` + // Disable profiling for buckets that match this filter. + Disabled *PreventionDiscoveryConfigTargetCloudStorageTargetDisabled `pulumi:"disabled"` + // The buckets the generationCadence applies to. The first target with a matching filter will be the one to apply to a bucket. + // Structure is documented below. + Filter PreventionDiscoveryConfigTargetCloudStorageTargetFilter `pulumi:"filter"` + // 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. + // Structure is documented below. + GenerationCadence *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence `pulumi:"generationCadence"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetArgs and PreventionDiscoveryConfigTargetCloudStorageTargetOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetOutput() PreventionDiscoveryConfigTargetCloudStorageTargetOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetArgs struct { + // In addition to matching the filter, these conditions must be true before a profile is generated. + // Structure is documented below. + Conditions PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrInput `pulumi:"conditions"` + // Disable profiling for buckets that match this filter. + Disabled PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrInput `pulumi:"disabled"` + // The buckets the generationCadence applies to. The first target with a matching filter will be the one to apply to a bucket. + // Structure is documented below. + Filter PreventionDiscoveryConfigTargetCloudStorageTargetFilterInput `pulumi:"filter"` + // 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. + // Structure is documented below. + GenerationCadence PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrInput `pulumi:"generationCadence"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTarget)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetOutput() PreventionDiscoveryConfigTargetCloudStorageTargetOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetArgs, PreventionDiscoveryConfigTargetCloudStorageTargetPtr and PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetPtrType PreventionDiscoveryConfigTargetCloudStorageTargetArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetArgs) PreventionDiscoveryConfigTargetCloudStorageTargetPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTarget)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTarget)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetOutput() PreventionDiscoveryConfigTargetCloudStorageTargetOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTarget { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) +} + +// In addition to matching the filter, these conditions must be true before a profile is generated. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) Conditions() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTargetConditions { + return v.Conditions + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) +} + +// Disable profiling for buckets that match this filter. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) Disabled() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTargetDisabled { + return v.Disabled + }).(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) +} + +// The buckets the generationCadence applies to. The first target with a matching filter will be the one to apply to a bucket. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) Filter() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTarget) PreventionDiscoveryConfigTargetCloudStorageTargetFilter { + return v.Filter + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) +} + +// 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. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetOutput) GenerationCadence() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence { + return v.GenerationCadence + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTarget)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTarget) PreventionDiscoveryConfigTargetCloudStorageTarget { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTarget + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetOutput) +} + +// In addition to matching the filter, these conditions must be true before a profile is generated. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) Conditions() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTargetConditions { + if v == nil { + return nil + } + return v.Conditions + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) +} + +// Disable profiling for buckets that match this filter. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) Disabled() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTargetDisabled { + if v == nil { + return nil + } + return v.Disabled + }).(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) +} + +// The buckets the generationCadence applies to. The first target with a matching filter will be the one to apply to a bucket. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) Filter() PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTargetFilter { + if v == nil { + return nil + } + return &v.Filter + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) +} + +// 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. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput) GenerationCadence() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTarget) *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence { + if v == nil { + return nil + } + return v.GenerationCadence + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditions struct { + // Cloud Storage conditions. + // Structure is documented below. + CloudStorageConditions *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions `pulumi:"cloudStorageConditions"` + // 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. + CreatedAfter *string `pulumi:"createdAfter"` + // Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + MinAge *string `pulumi:"minAge"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs and PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetConditionsInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs struct { + // Cloud Storage conditions. + // Structure is documented below. + CloudStorageConditions PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrInput `pulumi:"cloudStorageConditions"` + // 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. + CreatedAfter pulumi.StringPtrInput `pulumi:"createdAfter"` + // Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + MinAge pulumi.StringPtrInput `pulumi:"minAge"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditions)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs, PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtr and PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrType PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetConditions)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditions)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetConditions) *PreventionDiscoveryConfigTargetCloudStorageTargetConditions { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) +} + +// Cloud Storage conditions. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) CloudStorageConditions() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetConditions) *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions { + return v.CloudStorageConditions + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) +} + +// 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. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) CreatedAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetConditions) *string { return v.CreatedAfter }).(pulumi.StringPtrOutput) +} + +// Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) MinAge() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetConditions) *string { return v.MinAge }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetConditions)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditions) PreventionDiscoveryConfigTargetCloudStorageTargetConditions { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetConditions + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput) +} + +// Cloud Storage conditions. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) CloudStorageConditions() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditions) *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions { + if v == nil { + return nil + } + return v.CloudStorageConditions + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) +} + +// 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. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) CreatedAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditions) *string { + if v == nil { + return nil + } + return v.CreatedAfter + }).(pulumi.StringPtrOutput) +} + +// Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput) MinAge() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditions) *string { + if v == nil { + return nil + } + return v.MinAge + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions struct { + // Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + // Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + IncludedBucketAttributes []string `pulumi:"includedBucketAttributes"` + // 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. + // Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + IncludedObjectAttributes []string `pulumi:"includedObjectAttributes"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs and PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs struct { + // Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + // Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + IncludedBucketAttributes pulumi.StringArrayInput `pulumi:"includedBucketAttributes"` + // 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. + // Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + IncludedObjectAttributes pulumi.StringArrayInput `pulumi:"includedObjectAttributes"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs, PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtr and PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrType PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions) *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) +} + +// Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. +// Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) IncludedBucketAttributes() pulumi.StringArrayOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions) []string { + return v.IncludedBucketAttributes + }).(pulumi.StringArrayOutput) +} + +// 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. +// Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) IncludedObjectAttributes() pulumi.StringArrayOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions) []string { + return v.IncludedObjectAttributes + }).(pulumi.StringArrayOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions) PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput) +} + +// Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. +// Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) IncludedBucketAttributes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions) []string { + if v == nil { + return nil + } + return v.IncludedBucketAttributes + }).(pulumi.StringArrayOutput) +} + +// 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. +// Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput) IncludedObjectAttributes() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions) []string { + if v == nil { + return nil + } + return v.IncludedObjectAttributes + }).(pulumi.StringArrayOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetDisabled struct { +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetDisabledInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs and PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetDisabledInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetDisabledInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs struct { +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetDisabled)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs, PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtr and PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrType PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetDisabled)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetDisabled)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetDisabled) *PreventionDiscoveryConfigTargetCloudStorageTargetDisabled { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetDisabled)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetDisabled) PreventionDiscoveryConfigTargetCloudStorageTargetDisabled { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetDisabled + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilter struct { + // 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. + // Structure is documented below. + CloudStorageResourceReference *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference `pulumi:"cloudStorageResourceReference"` + // A specific set of buckets for this filter to apply to. + // Structure is documented below. + Collection *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection `pulumi:"collection"` + // Match discovery resources not covered by any other filter. + Others *PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers `pulumi:"others"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs and PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs struct { + // 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. + // Structure is documented below. + CloudStorageResourceReference PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrInput `pulumi:"cloudStorageResourceReference"` + // A specific set of buckets for this filter to apply to. + // Structure is documented below. + Collection PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrInput `pulumi:"collection"` + // Match discovery resources not covered by any other filter. + Others PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrInput `pulumi:"others"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilter)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs, PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtr and PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetFilterPtrType PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs) PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetFilterPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilter)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilter)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetFilter) *PreventionDiscoveryConfigTargetCloudStorageTargetFilter { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) +} + +// 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. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) CloudStorageResourceReference() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilter) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference { + return v.CloudStorageResourceReference + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) +} + +// A specific set of buckets for this filter to apply to. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) Collection() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilter) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection { + return v.Collection + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) +} + +// Match discovery resources not covered by any other filter. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) Others() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilter) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers { + return v.Others + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilter)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilter) PreventionDiscoveryConfigTargetCloudStorageTargetFilter { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetFilter + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput) +} + +// 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. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) CloudStorageResourceReference() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilter) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference { + if v == nil { + return nil + } + return v.CloudStorageResourceReference + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) +} + +// A specific set of buckets for this filter to apply to. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) Collection() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilter) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection { + if v == nil { + return nil + } + return v.Collection + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) +} + +// Match discovery resources not covered by any other filter. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput) Others() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilter) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers { + if v == nil { + return nil + } + return v.Others + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference struct { + // The bucket to scan. + BucketName *string `pulumi:"bucketName"` + // If within a project-level config, then this must match the config's project id. + ProjectId *string `pulumi:"projectId"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs struct { + // The bucket to scan. + BucketName pulumi.StringPtrInput `pulumi:"bucketName"` + // If within a project-level config, then this must match the config's project id. + ProjectId pulumi.StringPtrInput `pulumi:"projectId"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs, PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtr and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrType PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) +} + +// The bucket to scan. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference) *string { + return v.BucketName + }).(pulumi.StringPtrOutput) +} + +// If within a project-level config, then this must match the config's project id. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) ProjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference) *string { + return v.ProjectId + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput) +} + +// The bucket to scan. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) BucketName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference) *string { + if v == nil { + return nil + } + return v.BucketName + }).(pulumi.StringPtrOutput) +} + +// If within a project-level config, then this must match the config's project id. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput) ProjectId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference) *string { + if v == nil { + return nil + } + return v.ProjectId + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection struct { + // A collection of regular expressions to match a file store against. + // Structure is documented below. + IncludeRegexes *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes `pulumi:"includeRegexes"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs struct { + // A collection of regular expressions to match a file store against. + // Structure is documented below. + IncludeRegexes PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrInput `pulumi:"includeRegexes"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs, PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtr and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrType PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) +} + +// A collection of regular expressions to match a file store against. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) IncludeRegexes() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes { + return v.IncludeRegexes + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput) +} + +// A collection of regular expressions to match a file store against. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput) IncludeRegexes() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes { + if v == nil { + return nil + } + return v.IncludeRegexes + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes struct { + // The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + // Structure is documented below. + Patterns []PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern `pulumi:"patterns"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs struct { + // The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + // Structure is documented below. + Patterns PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayInput `pulumi:"patterns"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs, PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtr and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrType PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) +} + +// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) Patterns() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes) []PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern { + return v.Patterns + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput) +} + +// The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput) Patterns() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes) []PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern { + if v == nil { + return nil + } + return v.Patterns + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern struct { + // Regex for Cloud Storage. + // Structure is documented below. + CloudStorageRegex *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex `pulumi:"cloudStorageRegex"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs struct { + // Regex for Cloud Storage. + // Structure is documented below. + CloudStorageRegex PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrInput `pulumi:"cloudStorageRegex"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArray and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArray{ PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs{...} } +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArray []PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternInput + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArray) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArray) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput { + return o +} + +// Regex for Cloud Storage. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput) CloudStorageRegex() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex { + return v.CloudStorageRegex + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput) Index(i pulumi.IntInput) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern { + return vs[0].([]PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern)[vs[1].(int)] + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex struct { + // 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 + BucketNameRegex *string `pulumi:"bucketNameRegex"` + // For organizations, if unset, will match all projects. + ProjectIdRegex *string `pulumi:"projectIdRegex"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs struct { + // 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 + BucketNameRegex pulumi.StringPtrInput `pulumi:"bucketNameRegex"` + // For organizations, if unset, will match all projects. + ProjectIdRegex pulumi.StringPtrInput `pulumi:"projectIdRegex"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs, PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtr and PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrType PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) +} + +// 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 +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) BucketNameRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex) *string { + return v.BucketNameRegex + }).(pulumi.StringPtrOutput) +} + +// For organizations, if unset, will match all projects. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) ProjectIdRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex) *string { + return v.ProjectIdRegex + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex) PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput) +} + +// 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 +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) BucketNameRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex) *string { + if v == nil { + return nil + } + return v.BucketNameRegex + }).(pulumi.StringPtrOutput) +} + +// For organizations, if unset, will match all projects. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput) ProjectIdRegex() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex) *string { + if v == nil { + return nil + } + return v.ProjectIdRegex + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers struct { +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs and PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs struct { +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs, PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtr and PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrType PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers) *PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers) PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence struct { + // 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. + // Structure is documented below. + InspectTemplateModifiedCadence *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence `pulumi:"inspectTemplateModifiedCadence"` + // Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + RefreshFrequency *string `pulumi:"refreshFrequency"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs and PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs struct { + // 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. + // Structure is documented below. + InspectTemplateModifiedCadence PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrInput `pulumi:"inspectTemplateModifiedCadence"` + // Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + RefreshFrequency pulumi.StringPtrInput `pulumi:"refreshFrequency"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs, PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtr and PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrType PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence) *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) +} + +// 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. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) InspectTemplateModifiedCadence() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence) *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence { + return v.InspectTemplateModifiedCadence + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) +} + +// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. +// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) RefreshFrequency() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence) *string { + return v.RefreshFrequency + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput) +} + +// 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. +// Structure is documented below. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) InspectTemplateModifiedCadence() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence) *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence { + if v == nil { + return nil + } + return v.InspectTemplateModifiedCadence + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) +} + +// Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. +// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput) RefreshFrequency() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence) *string { + if v == nil { + return nil + } + return v.RefreshFrequency + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence struct { + // How frequently data profiles can be updated when the template is modified. Defaults to never. + // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + Frequency *string `pulumi:"frequency"` +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs and PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs{...} +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs struct { + // How frequently data profiles can be updated when the template is modified. Defaults to never. + // Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + Frequency pulumi.StringPtrInput `pulumi:"frequency"` +} + +func (PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence)(nil)).Elem() +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(context.Background()) +} + +func (i PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput).ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(ctx) +} + +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrInput is an input type that accepts PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs, PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtr and PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput values. +// You can construct a concrete instance of `PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrInput` via: +// +// PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs{...} +// +// or: +// +// nil +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrInput interface { + pulumi.Input + + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput + ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput +} + +type preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrType PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs + +func PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtr(v *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrInput { + return (*preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrType)(v) +} + +func (*preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence)(nil)).Elem() +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return i.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(context.Background()) +} + +func (i *preventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrType) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return o.ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(context.Background()) +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence) *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence { + return &v + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) +} + +// How frequently data profiles can be updated when the template is modified. Defaults to never. +// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) Frequency() pulumi.StringPtrOutput { + return o.ApplyT(func(v PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence) *string { + return v.Frequency + }).(pulumi.StringPtrOutput) +} + +type PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput struct{ *pulumi.OutputState } + +func (PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence)(nil)).Elem() +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) ToPreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutputWithContext(ctx context.Context) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput { + return o +} + +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) Elem() PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence) PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence { + if v != nil { + return *v + } + var ret PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence + return ret + }).(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput) +} + +// How frequently data profiles can be updated when the template is modified. Defaults to never. +// Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. +func (o PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput) Frequency() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence) *string { + if v == nil { + return nil + } + return v.Frequency + }).(pulumi.StringPtrOutput) +} + type PreventionDiscoveryConfigTargetSecretsTarget struct { } @@ -59577,6 +61598,32 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadencePtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadencePtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditionsInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetDisabledInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetSecretsTargetInput)(nil)).Elem(), PreventionDiscoveryConfigTargetSecretsTargetArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreventionDiscoveryConfigTargetSecretsTargetPtrInput)(nil)).Elem(), PreventionDiscoveryConfigTargetSecretsTargetArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreventionInspectTemplateInspectConfigInput)(nil)).Elem(), PreventionInspectTemplateInspectConfigArgs{}) @@ -60272,6 +62319,32 @@ func init() { pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadencePtrOutput{}) pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceOutput{}) pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadencePtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferencePtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArrayOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersPtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadencePtrOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceOutput{}) + pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadencePtrOutput{}) pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetSecretsTargetOutput{}) pulumi.RegisterOutputType(PreventionDiscoveryConfigTargetSecretsTargetPtrOutput{}) pulumi.RegisterOutputType(PreventionInspectTemplateInspectConfigOutput{}) diff --git a/sdk/go/gcp/datastore/dataStoreIndex.go b/sdk/go/gcp/datastore/dataStoreIndex.go index 1d6d8257c2..33a431307c 100644 --- a/sdk/go/gcp/datastore/dataStoreIndex.go +++ b/sdk/go/gcp/datastore/dataStoreIndex.go @@ -12,7 +12,9 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Describes a composite index for Cloud Datastore. +// > **Warning:** `datastoreIndex` is deprecated and will be removed in a future major release. Use `firestoreIndex` instead; this resource is deprecated because it only supports the (default) database. `firestoreIndex` supports both Firestore in Datastore Mode and Firestore Native indexes and supports both named and the (default) database. +// +// Describes a composite index for Firestore in Datastore Mode. // // To get more information about Index, see: // @@ -20,11 +22,15 @@ import ( // * How-to Guides // - [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes) // -// > **Warning:** This resource creates a Datastore Index on a project that has already -// enabled a Datastore-compatible database. If you haven't already enabled -// one, you can create a `appengine.Application` resource with -// `databaseType` set to `"CLOUD_DATASTORE_COMPATIBILITY"` to do so. Your -// Datastore location will be the same as the App Engine location specified. +// > **Warning:** `datastoreIndex` is deprecated and will be removed in a future major release. +// Use `firestoreIndex` instead; this resource is deprecated because it only supports the (default) database. +// This resource creates a Datastore Index on a project that has already +// enabled a Datastore-compatible database. If you haven't already created it, you may +// create a `firestore.Database` resource with `locationId` set +// to your chosen location, and `type` set to `"DATASTORE_MODE"`. +// If you wish to use App Engine, you may instead create a `appengine.Application` resource with +// `databaseType` set to `"CLOUD_DATASTORE_COMPATIBILITY"`. +// Your Datastore location will be the same as the App Engine location specified. // // ## Example Usage // diff --git a/sdk/go/gcp/datastream/pulumiTypes.go b/sdk/go/gcp/datastream/pulumiTypes.go index 30c759ee93..2f0e01cfe0 100644 --- a/sdk/go/gcp/datastream/pulumiTypes.go +++ b/sdk/go/gcp/datastream/pulumiTypes.go @@ -4632,7 +4632,7 @@ func (o StreamBackfillNonePtrOutput) Elem() StreamBackfillNoneOutput { } type StreamDestinationConfig struct { - // A configuration for how data should be loaded to Cloud Storage. + // A configuration for how data should be loaded to Google BigQuery. // Structure is documented below. BigqueryDestinationConfig *StreamDestinationConfigBigqueryDestinationConfig `pulumi:"bigqueryDestinationConfig"` // Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} @@ -4654,7 +4654,7 @@ type StreamDestinationConfigInput interface { } type StreamDestinationConfigArgs struct { - // A configuration for how data should be loaded to Cloud Storage. + // A configuration for how data should be loaded to Google BigQuery. // Structure is documented below. BigqueryDestinationConfig StreamDestinationConfigBigqueryDestinationConfigPtrInput `pulumi:"bigqueryDestinationConfig"` // Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} @@ -4741,7 +4741,7 @@ func (o StreamDestinationConfigOutput) ToStreamDestinationConfigPtrOutputWithCon }).(StreamDestinationConfigPtrOutput) } -// A configuration for how data should be loaded to Cloud Storage. +// A configuration for how data should be loaded to Google BigQuery. // Structure is documented below. func (o StreamDestinationConfigOutput) BigqueryDestinationConfig() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { return o.ApplyT(func(v StreamDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { @@ -4786,7 +4786,7 @@ func (o StreamDestinationConfigPtrOutput) Elem() StreamDestinationConfigOutput { }).(StreamDestinationConfigOutput) } -// A configuration for how data should be loaded to Cloud Storage. +// A configuration for how data should be loaded to Google BigQuery. // Structure is documented below. func (o StreamDestinationConfigPtrOutput) BigqueryDestinationConfig() StreamDestinationConfigBigqueryDestinationConfigPtrOutput { return o.ApplyT(func(v *StreamDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfig { @@ -4819,11 +4819,19 @@ func (o StreamDestinationConfigPtrOutput) GcsDestinationConfig() StreamDestinati } type StreamDestinationConfigBigqueryDestinationConfig struct { + // AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + // events) to a source table will be written to the destination Google BigQuery table, retaining the + // historical state of the data. + AppendOnly *StreamDestinationConfigBigqueryDestinationConfigAppendOnly `pulumi:"appendOnly"` // The guaranteed data freshness (in seconds) when querying tables created by the stream. // Editing this field will only affect new tables created in the future, but existing tables // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. DataFreshness *string `pulumi:"dataFreshness"` + // Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + // table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + // in the source database. With Merge mode, no historical record of the change events is kept. + Merge *StreamDestinationConfigBigqueryDestinationConfigMerge `pulumi:"merge"` // A single target dataset to which all data will be streamed. // Structure is documented below. SingleTargetDataset *StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset `pulumi:"singleTargetDataset"` @@ -4844,11 +4852,19 @@ type StreamDestinationConfigBigqueryDestinationConfigInput interface { } type StreamDestinationConfigBigqueryDestinationConfigArgs struct { + // AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + // events) to a source table will be written to the destination Google BigQuery table, retaining the + // historical state of the data. + AppendOnly StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrInput `pulumi:"appendOnly"` // The guaranteed data freshness (in seconds) when querying tables created by the stream. // Editing this field will only affect new tables created in the future, but existing tables // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. // A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. DataFreshness pulumi.StringPtrInput `pulumi:"dataFreshness"` + // Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + // table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + // in the source database. With Merge mode, no historical record of the change events is kept. + Merge StreamDestinationConfigBigqueryDestinationConfigMergePtrInput `pulumi:"merge"` // A single target dataset to which all data will be streamed. // Structure is documented below. SingleTargetDataset StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput `pulumi:"singleTargetDataset"` @@ -4934,6 +4950,15 @@ func (o StreamDestinationConfigBigqueryDestinationConfigOutput) ToStreamDestinat }).(StreamDestinationConfigBigqueryDestinationConfigPtrOutput) } +// AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE +// events) to a source table will be written to the destination Google BigQuery table, retaining the +// historical state of the data. +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) AppendOnly() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigAppendOnly { + return v.AppendOnly + }).(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) +} + // The guaranteed data freshness (in seconds) when querying tables created by the stream. // Editing this field will only affect new tables created in the future, but existing tables // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. @@ -4942,6 +4967,15 @@ func (o StreamDestinationConfigBigqueryDestinationConfigOutput) DataFreshness() return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *string { return v.DataFreshness }).(pulumi.StringPtrOutput) } +// Merge mode defines that all changes to a table will be merged at the destination Google BigQuery +// table. This is the default write mode. When selected, BigQuery reflects the way the data is stored +// in the source database. With Merge mode, no historical record of the change events is kept. +func (o StreamDestinationConfigBigqueryDestinationConfigOutput) Merge() StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return o.ApplyT(func(v StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigMerge { + return v.Merge + }).(StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) +} + // A single target dataset to which all data will be streamed. // Structure is documented below. func (o StreamDestinationConfigBigqueryDestinationConfigOutput) SingleTargetDataset() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { @@ -4982,6 +5016,18 @@ func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) Elem() Stream }).(StreamDestinationConfigBigqueryDestinationConfigOutput) } +// AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE +// events) to a source table will be written to the destination Google BigQuery table, retaining the +// historical state of the data. +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) AppendOnly() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigAppendOnly { + if v == nil { + return nil + } + return v.AppendOnly + }).(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) +} + // The guaranteed data freshness (in seconds) when querying tables created by the stream. // Editing this field will only affect new tables created in the future, but existing tables // will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. @@ -4995,6 +5041,18 @@ func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) DataFreshness }).(pulumi.StringPtrOutput) } +// Merge mode defines that all changes to a table will be merged at the destination Google BigQuery +// table. This is the default write mode. When selected, BigQuery reflects the way the data is stored +// in the source database. With Merge mode, no historical record of the change events is kept. +func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) Merge() StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfig) *StreamDestinationConfigBigqueryDestinationConfigMerge { + if v == nil { + return nil + } + return v.Merge + }).(StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) +} + // A single target dataset to which all data will be streamed. // Structure is documented below. func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) SingleTargetDataset() StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput { @@ -5017,6 +5075,242 @@ func (o StreamDestinationConfigBigqueryDestinationConfigPtrOutput) SourceHierarc }).(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsPtrOutput) } +type StreamDestinationConfigBigqueryDestinationConfigAppendOnly struct { +} + +// StreamDestinationConfigBigqueryDestinationConfigAppendOnlyInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs and StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigAppendOnlyInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs{...} +type StreamDestinationConfigBigqueryDestinationConfigAppendOnlyInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput + ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput +} + +type StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs struct { +} + +func (StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigAppendOnly)(nil)).Elem() +} + +func (i StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput).ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(ctx) +} + +// StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs, StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtr and StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput + ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput +} + +type streamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrType StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs + +func StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtr(v *StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrInput { + return (*streamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrType)(v) +} + +func (*streamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigAppendOnly)(nil)).Elem() +} + +func (i *streamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrType) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrType) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigAppendOnly)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return o.ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigAppendOnly) *StreamDestinationConfigBigqueryDestinationConfigAppendOnly { + return &v + }).(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigAppendOnly)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigAppendOnly) StreamDestinationConfigBigqueryDestinationConfigAppendOnly { + if v != nil { + return *v + } + var ret StreamDestinationConfigBigqueryDestinationConfigAppendOnly + return ret + }).(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigMerge struct { +} + +// StreamDestinationConfigBigqueryDestinationConfigMergeInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigMergeArgs and StreamDestinationConfigBigqueryDestinationConfigMergeOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigMergeInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigMergeArgs{...} +type StreamDestinationConfigBigqueryDestinationConfigMergeInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigMergeOutput() StreamDestinationConfigBigqueryDestinationConfigMergeOutput + ToStreamDestinationConfigBigqueryDestinationConfigMergeOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigMergeOutput +} + +type StreamDestinationConfigBigqueryDestinationConfigMergeArgs struct { +} + +func (StreamDestinationConfigBigqueryDestinationConfigMergeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigMerge)(nil)).Elem() +} + +func (i StreamDestinationConfigBigqueryDestinationConfigMergeArgs) ToStreamDestinationConfigBigqueryDestinationConfigMergeOutput() StreamDestinationConfigBigqueryDestinationConfigMergeOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigMergeOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigMergeArgs) ToStreamDestinationConfigBigqueryDestinationConfigMergeOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigMergeOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigMergeOutput) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigMergeArgs) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutput() StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(context.Background()) +} + +func (i StreamDestinationConfigBigqueryDestinationConfigMergeArgs) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigMergeOutput).ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(ctx) +} + +// StreamDestinationConfigBigqueryDestinationConfigMergePtrInput is an input type that accepts StreamDestinationConfigBigqueryDestinationConfigMergeArgs, StreamDestinationConfigBigqueryDestinationConfigMergePtr and StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput values. +// You can construct a concrete instance of `StreamDestinationConfigBigqueryDestinationConfigMergePtrInput` via: +// +// StreamDestinationConfigBigqueryDestinationConfigMergeArgs{...} +// +// or: +// +// nil +type StreamDestinationConfigBigqueryDestinationConfigMergePtrInput interface { + pulumi.Input + + ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutput() StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput + ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(context.Context) StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput +} + +type streamDestinationConfigBigqueryDestinationConfigMergePtrType StreamDestinationConfigBigqueryDestinationConfigMergeArgs + +func StreamDestinationConfigBigqueryDestinationConfigMergePtr(v *StreamDestinationConfigBigqueryDestinationConfigMergeArgs) StreamDestinationConfigBigqueryDestinationConfigMergePtrInput { + return (*streamDestinationConfigBigqueryDestinationConfigMergePtrType)(v) +} + +func (*streamDestinationConfigBigqueryDestinationConfigMergePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigMerge)(nil)).Elem() +} + +func (i *streamDestinationConfigBigqueryDestinationConfigMergePtrType) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutput() StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return i.ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(context.Background()) +} + +func (i *streamDestinationConfigBigqueryDestinationConfigMergePtrType) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigMergeOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigMergeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigMerge)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigMergeOutput) ToStreamDestinationConfigBigqueryDestinationConfigMergeOutput() StreamDestinationConfigBigqueryDestinationConfigMergeOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigMergeOutput) ToStreamDestinationConfigBigqueryDestinationConfigMergeOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigMergeOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigMergeOutput) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutput() StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return o.ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(context.Background()) +} + +func (o StreamDestinationConfigBigqueryDestinationConfigMergeOutput) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v StreamDestinationConfigBigqueryDestinationConfigMerge) *StreamDestinationConfigBigqueryDestinationConfigMerge { + return &v + }).(StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) +} + +type StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput struct{ *pulumi.OutputState } + +func (StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StreamDestinationConfigBigqueryDestinationConfigMerge)(nil)).Elem() +} + +func (o StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutput() StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) ToStreamDestinationConfigBigqueryDestinationConfigMergePtrOutputWithContext(ctx context.Context) StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput { + return o +} + +func (o StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput) Elem() StreamDestinationConfigBigqueryDestinationConfigMergeOutput { + return o.ApplyT(func(v *StreamDestinationConfigBigqueryDestinationConfigMerge) StreamDestinationConfigBigqueryDestinationConfigMerge { + if v != nil { + return *v + } + var ret StreamDestinationConfigBigqueryDestinationConfigMerge + return ret + }).(StreamDestinationConfigBigqueryDestinationConfigMergeOutput) +} + type StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset struct { // Dataset ID in the format projects/{project}/datasets/{dataset_id} or // {project}:{dataset_id} @@ -11916,6 +12210,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigPtrInput)(nil)).Elem(), StreamDestinationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigPtrInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigAppendOnlyInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigMergeInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigMergeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigMergePtrInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigMergeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsInput)(nil)).Elem(), StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{}) @@ -12068,6 +12366,10 @@ func init() { pulumi.RegisterOutputType(StreamDestinationConfigPtrOutput{}) pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigOutput{}) pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigPtrOutput{}) + pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutput{}) + pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyPtrOutput{}) + pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigMergeOutput{}) + pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigMergePtrOutput{}) pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutput{}) pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetPtrOutput{}) pulumi.RegisterOutputType(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutput{}) diff --git a/sdk/go/gcp/datastream/stream.go b/sdk/go/gcp/datastream/stream.go index 356dac6928..d62e59eabb 100644 --- a/sdk/go/gcp/datastream/stream.go +++ b/sdk/go/gcp/datastream/stream.go @@ -938,6 +938,136 @@ import ( // } // // ``` +// ### Datastream Stream Bigquery Append Only +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/datastream" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/sql" +// "github.com/pulumi/pulumi-random/sdk/v4/go/random" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := organizations.LookupProject(ctx, nil, nil) +// if err != nil { +// return err +// } +// instance, err := sql.NewDatabaseInstance(ctx, "instance", &sql.DatabaseInstanceArgs{ +// Name: pulumi.String("my-instance"), +// DatabaseVersion: pulumi.String("MYSQL_8_0"), +// Region: pulumi.String("us-central1"), +// Settings: &sql.DatabaseInstanceSettingsArgs{ +// Tier: pulumi.String("db-f1-micro"), +// BackupConfiguration: &sql.DatabaseInstanceSettingsBackupConfigurationArgs{ +// Enabled: pulumi.Bool(true), +// BinaryLogEnabled: pulumi.Bool(true), +// }, +// IpConfiguration: &sql.DatabaseInstanceSettingsIpConfigurationArgs{ +// AuthorizedNetworks: sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArray{ +// &sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{ +// Value: pulumi.String("34.71.242.81"), +// }, +// &sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{ +// Value: pulumi.String("34.72.28.29"), +// }, +// &sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{ +// Value: pulumi.String("34.67.6.157"), +// }, +// &sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{ +// Value: pulumi.String("34.67.234.134"), +// }, +// &sql.DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs{ +// Value: pulumi.String("34.72.239.218"), +// }, +// }, +// }, +// }, +// DeletionProtection: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = sql.NewDatabase(ctx, "db", &sql.DatabaseArgs{ +// Instance: instance.Name, +// Name: pulumi.String("db"), +// }) +// if err != nil { +// return err +// } +// pwd, err := random.NewRandomPassword(ctx, "pwd", &random.RandomPasswordArgs{ +// Length: pulumi.Int(16), +// Special: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// user, err := sql.NewUser(ctx, "user", &sql.UserArgs{ +// Name: pulumi.String("user"), +// Instance: instance.Name, +// Host: pulumi.String("%"), +// Password: pwd.Result, +// }) +// if err != nil { +// return err +// } +// sourceConnectionProfile, err := datastream.NewConnectionProfile(ctx, "source_connection_profile", &datastream.ConnectionProfileArgs{ +// DisplayName: pulumi.String("Source connection profile"), +// Location: pulumi.String("us-central1"), +// ConnectionProfileId: pulumi.String("source-profile"), +// MysqlProfile: &datastream.ConnectionProfileMysqlProfileArgs{ +// Hostname: instance.PublicIpAddress, +// Username: user.Name, +// Password: user.Password, +// }, +// }) +// if err != nil { +// return err +// } +// destinationConnectionProfile, err := datastream.NewConnectionProfile(ctx, "destination_connection_profile", &datastream.ConnectionProfileArgs{ +// DisplayName: pulumi.String("Connection profile"), +// Location: pulumi.String("us-central1"), +// ConnectionProfileId: pulumi.String("destination-profile"), +// BigqueryProfile: nil, +// }) +// if err != nil { +// return err +// } +// _, err = datastream.NewStream(ctx, "default", &datastream.StreamArgs{ +// StreamId: pulumi.String("my-stream"), +// Location: pulumi.String("us-central1"), +// DisplayName: pulumi.String("my stream"), +// SourceConfig: &datastream.StreamSourceConfigArgs{ +// SourceConnectionProfile: sourceConnectionProfile.ID(), +// MysqlSourceConfig: nil, +// }, +// DestinationConfig: &datastream.StreamDestinationConfigArgs{ +// DestinationConnectionProfile: destinationConnectionProfile.ID(), +// BigqueryDestinationConfig: &datastream.StreamDestinationConfigBigqueryDestinationConfigArgs{ +// SourceHierarchyDatasets: &datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs{ +// DatasetTemplate: &datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs{ +// Location: pulumi.String("us-central1"), +// }, +// }, +// AppendOnly: nil, +// }, +// }, +// BackfillNone: nil, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // diff --git a/sdk/go/gcp/firebase/databaseInstance.go b/sdk/go/gcp/firebase/databaseInstance.go index 7f9818dc14..c1ffa11439 100644 --- a/sdk/go/gcp/firebase/databaseInstance.go +++ b/sdk/go/gcp/firebase/databaseInstance.go @@ -169,8 +169,8 @@ type DatabaseInstance struct { // // *** InstanceId pulumi.StringOutput `pulumi:"instanceId"` - // The fully-qualified resource name of the Firebase Realtime Database, in the - // format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + // The fully-qualified resource name of the Firebase Realtime Database, in + // the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID // PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) // Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Name pulumi.StringOutput `pulumi:"name"` @@ -237,8 +237,8 @@ type databaseInstanceState struct { // // *** InstanceId *string `pulumi:"instanceId"` - // The fully-qualified resource name of the Firebase Realtime Database, in the - // format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + // The fully-qualified resource name of the Firebase Realtime Database, in + // the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID // PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) // Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Name *string `pulumi:"name"` @@ -270,8 +270,8 @@ type DatabaseInstanceState struct { // // *** InstanceId pulumi.StringPtrInput - // The fully-qualified resource name of the Firebase Realtime Database, in the - // format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + // The fully-qualified resource name of the Firebase Realtime Database, in + // the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID // PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) // Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). Name pulumi.StringPtrInput @@ -449,8 +449,8 @@ func (o DatabaseInstanceOutput) InstanceId() pulumi.StringOutput { return o.ApplyT(func(v *DatabaseInstance) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput) } -// The fully-qualified resource name of the Firebase Realtime Database, in the -// format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID +// The fully-qualified resource name of the Firebase Realtime Database, in +// the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID // PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) // Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). func (o DatabaseInstanceOutput) Name() pulumi.StringOutput { diff --git a/sdk/go/gcp/firebase/hostingSite.go b/sdk/go/gcp/firebase/hostingSite.go index 2061e156fd..326c1c96f6 100644 --- a/sdk/go/gcp/firebase/hostingSite.go +++ b/sdk/go/gcp/firebase/hostingSite.go @@ -111,8 +111,8 @@ type HostingSite struct { AppId pulumi.StringPtrOutput `pulumi:"appId"` // The default URL for the site in the form of https://{name}.web.app DefaultUrl pulumi.StringOutput `pulumi:"defaultUrl"` - // Output only. The fully-qualified resource name of the Hosting site, in the - // format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + // Output only. The fully-qualified resource name of the Hosting site, in + // the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the // Firebase project's // [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its // [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -163,8 +163,8 @@ type hostingSiteState struct { AppId *string `pulumi:"appId"` // The default URL for the site in the form of https://{name}.web.app DefaultUrl *string `pulumi:"defaultUrl"` - // Output only. The fully-qualified resource name of the Hosting site, in the - // format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + // Output only. The fully-qualified resource name of the Hosting site, in + // the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the // Firebase project's // [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its // [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -186,8 +186,8 @@ type HostingSiteState struct { AppId pulumi.StringPtrInput // The default URL for the site in the form of https://{name}.web.app DefaultUrl pulumi.StringPtrInput - // Output only. The fully-qualified resource name of the Hosting site, in the - // format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + // Output only. The fully-qualified resource name of the Hosting site, in + // the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the // Firebase project's // [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its // [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -332,8 +332,8 @@ func (o HostingSiteOutput) DefaultUrl() pulumi.StringOutput { return o.ApplyT(func(v *HostingSite) pulumi.StringOutput { return v.DefaultUrl }).(pulumi.StringOutput) } -// Output only. The fully-qualified resource name of the Hosting site, in the -// format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the +// Output only. The fully-qualified resource name of the Hosting site, in +// the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the // Firebase project's // [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its // [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). diff --git a/sdk/go/gcp/firestore/index.go b/sdk/go/gcp/firestore/index.go index a6227ca61a..996c960cfd 100644 --- a/sdk/go/gcp/firestore/index.go +++ b/sdk/go/gcp/firestore/index.go @@ -14,9 +14,9 @@ import ( // Cloud Firestore indexes enable simple and complex queries against documents in a database. // -// This resource manages composite indexes and not single -// -// field indexes. +// Both Firestore Native and Datastore Mode indexes are supported. +// This resource manages composite indexes and not single field indexes. +// To manage single field indexes, use the `firestore.Field` resource instead. // // To get more information about Index, see: // @@ -28,9 +28,8 @@ import ( // a Firestore database. If you haven't already created it, you may // create a `firestore.Database` resource and `locationId` set // to your chosen location. If you wish to use App Engine, you may -// instead create a `appengine.Application` resource with -// `databaseType` set to `"CLOUD_FIRESTORE"`. Your Firestore location -// will be the same as the App Engine location specified. +// instead create a `appengine.Application` resource. +// Your Firestore location will be the same as the App Engine location specified. // // ## Example Usage // diff --git a/sdk/go/gcp/gkeonprem/pulumiTypes.go b/sdk/go/gcp/gkeonprem/pulumiTypes.go index 801492f280..13ec53ddee 100644 --- a/sdk/go/gcp/gkeonprem/pulumiTypes.go +++ b/sdk/go/gcp/gkeonprem/pulumiTypes.go @@ -587,9 +587,9 @@ type BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig s // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -620,9 +620,9 @@ type BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigAr // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -718,9 +718,9 @@ func (o BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfi // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig) map[string]string { return v.Labels @@ -781,9 +781,9 @@ func (o BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfi // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig) map[string]string { if v == nil { @@ -833,9 +833,9 @@ type BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -861,9 +861,9 @@ type BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -928,9 +928,9 @@ func (o BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfi // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig) map[string]string { return v.Labels @@ -2531,12 +2531,12 @@ func (o BareMetalAdminClusterNodeConfigPtrOutput) MaxPodsPerNode() pulumi.IntPtr type BareMetalAdminClusterProxy struct { // A list of IPs, hostnames, and domains that should skip the proxy. - // Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + // For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. NoProxies []string `pulumi:"noProxies"` // Specifies the address of your proxy server. - // Examples: http://domain + // For Example: http://domain // WARNING: Do not provide credentials in the format - // http://(username:password@)domain these will be rejected by the server. + // of http://(username:password@)domain these will be rejected by the server. Uri string `pulumi:"uri"` } @@ -2553,12 +2553,12 @@ type BareMetalAdminClusterProxyInput interface { type BareMetalAdminClusterProxyArgs struct { // A list of IPs, hostnames, and domains that should skip the proxy. - // Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + // For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. NoProxies pulumi.StringArrayInput `pulumi:"noProxies"` // Specifies the address of your proxy server. - // Examples: http://domain + // For Example: http://domain // WARNING: Do not provide credentials in the format - // http://(username:password@)domain these will be rejected by the server. + // of http://(username:password@)domain these will be rejected by the server. Uri pulumi.StringInput `pulumi:"uri"` } @@ -2640,15 +2640,15 @@ func (o BareMetalAdminClusterProxyOutput) ToBareMetalAdminClusterProxyPtrOutputW } // A list of IPs, hostnames, and domains that should skip the proxy. -// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. +// For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. func (o BareMetalAdminClusterProxyOutput) NoProxies() pulumi.StringArrayOutput { return o.ApplyT(func(v BareMetalAdminClusterProxy) []string { return v.NoProxies }).(pulumi.StringArrayOutput) } // Specifies the address of your proxy server. -// Examples: http://domain +// For Example: http://domain // WARNING: Do not provide credentials in the format -// http://(username:password@)domain these will be rejected by the server. +// of http://(username:password@)domain these will be rejected by the server. func (o BareMetalAdminClusterProxyOutput) Uri() pulumi.StringOutput { return o.ApplyT(func(v BareMetalAdminClusterProxy) string { return v.Uri }).(pulumi.StringOutput) } @@ -2678,7 +2678,7 @@ func (o BareMetalAdminClusterProxyPtrOutput) Elem() BareMetalAdminClusterProxyOu } // A list of IPs, hostnames, and domains that should skip the proxy. -// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. +// For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. func (o BareMetalAdminClusterProxyPtrOutput) NoProxies() pulumi.StringArrayOutput { return o.ApplyT(func(v *BareMetalAdminClusterProxy) []string { if v == nil { @@ -2689,9 +2689,9 @@ func (o BareMetalAdminClusterProxyPtrOutput) NoProxies() pulumi.StringArrayOutpu } // Specifies the address of your proxy server. -// Examples: http://domain +// For Example: http://domain // WARNING: Do not provide credentials in the format -// http://(username:password@)domain these will be rejected by the server. +// of http://(username:password@)domain these will be rejected by the server. func (o BareMetalAdminClusterProxyPtrOutput) Uri() pulumi.StringPtrOutput { return o.ApplyT(func(v *BareMetalAdminClusterProxy) *string { if v == nil { @@ -5112,9 +5112,9 @@ type BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig struct // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -5145,9 +5145,9 @@ type BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs st // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -5243,9 +5243,9 @@ func (o BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutp // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig) map[string]string { return v.Labels @@ -5306,9 +5306,9 @@ func (o BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigPtrO // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig) map[string]string { if v == nil { @@ -5358,9 +5358,9 @@ type BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeCon // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -5386,9 +5386,9 @@ type BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeCon // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -5453,9 +5453,9 @@ func (o BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNode // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig) map[string]string { return v.Labels @@ -6616,9 +6616,9 @@ type BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolCo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -6652,9 +6652,9 @@ type BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolCo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -6758,9 +6758,9 @@ func (o BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig) map[string]string { return v.Labels @@ -6832,9 +6832,9 @@ func (o BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig) map[string]string { if v == nil { @@ -7117,9 +7117,9 @@ type BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolCo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -7145,9 +7145,9 @@ type BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolCo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -7212,9 +7212,9 @@ func (o BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig) map[string]string { return v.Labels @@ -7964,9 +7964,9 @@ type BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePool // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -7997,9 +7997,9 @@ type BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePool // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -8095,9 +8095,9 @@ func (o BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodeP // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig) map[string]string { return v.Labels @@ -8158,9 +8158,9 @@ func (o BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodeP // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig) map[string]string { if v == nil { @@ -8210,9 +8210,9 @@ type BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePool // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -8238,9 +8238,9 @@ type BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePool // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -8305,9 +8305,9 @@ func (o BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodeP // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig) map[string]string { return v.Labels @@ -10016,12 +10016,12 @@ func (o BareMetalClusterOsEnvironmentConfigPtrOutput) PackageRepoExcluded() pulu type BareMetalClusterProxy struct { // A list of IPs, hostnames, and domains that should skip the proxy. - // Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + // For example ["127.0.0.1", "example.com", ".corp", "localhost"]. NoProxies []string `pulumi:"noProxies"` // Specifies the address of your proxy server. - // Examples: http://domain + // For example: http://domain // WARNING: Do not provide credentials in the format - // http://(username:password@)domain these will be rejected by the server. + // of http://(username:password@)domain these will be rejected by the server. Uri string `pulumi:"uri"` } @@ -10038,12 +10038,12 @@ type BareMetalClusterProxyInput interface { type BareMetalClusterProxyArgs struct { // A list of IPs, hostnames, and domains that should skip the proxy. - // Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + // For example ["127.0.0.1", "example.com", ".corp", "localhost"]. NoProxies pulumi.StringArrayInput `pulumi:"noProxies"` // Specifies the address of your proxy server. - // Examples: http://domain + // For example: http://domain // WARNING: Do not provide credentials in the format - // http://(username:password@)domain these will be rejected by the server. + // of http://(username:password@)domain these will be rejected by the server. Uri pulumi.StringInput `pulumi:"uri"` } @@ -10125,15 +10125,15 @@ func (o BareMetalClusterProxyOutput) ToBareMetalClusterProxyPtrOutputWithContext } // A list of IPs, hostnames, and domains that should skip the proxy. -// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. +// For example ["127.0.0.1", "example.com", ".corp", "localhost"]. func (o BareMetalClusterProxyOutput) NoProxies() pulumi.StringArrayOutput { return o.ApplyT(func(v BareMetalClusterProxy) []string { return v.NoProxies }).(pulumi.StringArrayOutput) } // Specifies the address of your proxy server. -// Examples: http://domain +// For example: http://domain // WARNING: Do not provide credentials in the format -// http://(username:password@)domain these will be rejected by the server. +// of http://(username:password@)domain these will be rejected by the server. func (o BareMetalClusterProxyOutput) Uri() pulumi.StringOutput { return o.ApplyT(func(v BareMetalClusterProxy) string { return v.Uri }).(pulumi.StringOutput) } @@ -10163,7 +10163,7 @@ func (o BareMetalClusterProxyPtrOutput) Elem() BareMetalClusterProxyOutput { } // A list of IPs, hostnames, and domains that should skip the proxy. -// Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. +// For example ["127.0.0.1", "example.com", ".corp", "localhost"]. func (o BareMetalClusterProxyPtrOutput) NoProxies() pulumi.StringArrayOutput { return o.ApplyT(func(v *BareMetalClusterProxy) []string { if v == nil { @@ -10174,9 +10174,9 @@ func (o BareMetalClusterProxyPtrOutput) NoProxies() pulumi.StringArrayOutput { } // Specifies the address of your proxy server. -// Examples: http://domain +// For example: http://domain // WARNING: Do not provide credentials in the format -// http://(username:password@)domain these will be rejected by the server. +// of http://(username:password@)domain these will be rejected by the server. func (o BareMetalClusterProxyPtrOutput) Uri() pulumi.StringPtrOutput { return o.ApplyT(func(v *BareMetalClusterProxy) *string { if v == nil { @@ -12034,9 +12034,9 @@ type BareMetalNodePoolNodePoolConfig struct { // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -12067,9 +12067,9 @@ type BareMetalNodePoolNodePoolConfigArgs struct { // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The list of machine addresses in the Bare Metal Node Pool. // Structure is documented below. @@ -12165,9 +12165,9 @@ func (o BareMetalNodePoolNodePoolConfigOutput) ToBareMetalNodePoolNodePoolConfig // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalNodePoolNodePoolConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalNodePoolNodePoolConfig) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } @@ -12222,9 +12222,9 @@ func (o BareMetalNodePoolNodePoolConfigPtrOutput) Elem() BareMetalNodePoolNodePo // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalNodePoolNodePoolConfigPtrOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *BareMetalNodePoolNodePoolConfig) map[string]string { if v == nil { @@ -12274,9 +12274,9 @@ type BareMetalNodePoolNodePoolConfigNodeConfig struct { // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels map[string]string `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -12302,9 +12302,9 @@ type BareMetalNodePoolNodePoolConfigNodeConfigArgs struct { // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: - // http://kubernetes.io/v1.1/docs/user-guide/labels.html - // An object containing a list of "key": value pairs. - // Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + // - http://kubernetes.io/v1.1/docs/user-guide/labels.html + // An object containing a list of "key": value pairs. + // For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. Labels pulumi.StringMapInput `pulumi:"labels"` // The default IPv4 address for SSH access and Kubernetes node. // Example: 192.168.0.1 @@ -12369,9 +12369,9 @@ func (o BareMetalNodePoolNodePoolConfigNodeConfigOutput) ToBareMetalNodePoolNode // version -- it's best to assume the behavior is undefined and // conflicts should be avoided. For more information, including usage // and the valid values, see: -// http://kubernetes.io/v1.1/docs/user-guide/labels.html -// An object containing a list of "key": value pairs. -// Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. +// - http://kubernetes.io/v1.1/docs/user-guide/labels.html +// An object containing a list of "key": value pairs. +// For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. func (o BareMetalNodePoolNodePoolConfigNodeConfigOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v BareMetalNodePoolNodePoolConfigNodeConfig) map[string]string { return v.Labels }).(pulumi.StringMapOutput) } diff --git a/sdk/go/gcp/iap/client.go b/sdk/go/gcp/iap/client.go index 9d58b078e4..b5050e52eb 100644 --- a/sdk/go/gcp/iap/client.go +++ b/sdk/go/gcp/iap/client.go @@ -104,7 +104,7 @@ type Client struct { // // *** Brand pulumi.StringOutput `pulumi:"brand"` - // The OAuth2 ID of the client. + // Output only. Unique identifier of the OAuth client. ClientId pulumi.StringOutput `pulumi:"clientId"` // Human-friendly name given to the OAuth client. DisplayName pulumi.StringOutput `pulumi:"displayName"` @@ -159,7 +159,7 @@ type clientState struct { // // *** Brand *string `pulumi:"brand"` - // The OAuth2 ID of the client. + // Output only. Unique identifier of the OAuth client. ClientId *string `pulumi:"clientId"` // Human-friendly name given to the OAuth client. DisplayName *string `pulumi:"displayName"` @@ -175,7 +175,7 @@ type ClientState struct { // // *** Brand pulumi.StringPtrInput - // The OAuth2 ID of the client. + // Output only. Unique identifier of the OAuth client. ClientId pulumi.StringPtrInput // Human-friendly name given to the OAuth client. DisplayName pulumi.StringPtrInput @@ -307,7 +307,7 @@ func (o ClientOutput) Brand() pulumi.StringOutput { return o.ApplyT(func(v *Client) pulumi.StringOutput { return v.Brand }).(pulumi.StringOutput) } -// The OAuth2 ID of the client. +// Output only. Unique identifier of the OAuth client. func (o ClientOutput) ClientId() pulumi.StringOutput { return o.ApplyT(func(v *Client) pulumi.StringOutput { return v.ClientId }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/integrationconnectors/pulumiTypes.go b/sdk/go/gcp/integrationconnectors/pulumiTypes.go index 547557ef3e..b56ceefcd1 100644 --- a/sdk/go/gcp/integrationconnectors/pulumiTypes.go +++ b/sdk/go/gcp/integrationconnectors/pulumiTypes.go @@ -466,8 +466,8 @@ func (o ConnectionAuthConfigAdditionalVariableArrayOutput) Index(i pulumi.IntInp } type ConnectionAuthConfigAdditionalVariableEncryptionKeyValue struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName *string `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -487,8 +487,8 @@ type ConnectionAuthConfigAdditionalVariableEncryptionKeyValueInput interface { } type ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -573,8 +573,8 @@ func (o ConnectionAuthConfigAdditionalVariableEncryptionKeyValueOutput) ToConnec }).(ConnectionAuthConfigAdditionalVariableEncryptionKeyValuePtrOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionAuthConfigAdditionalVariableEncryptionKeyValueOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v ConnectionAuthConfigAdditionalVariableEncryptionKeyValue) *string { return v.KmsKeyName }).(pulumi.StringPtrOutput) @@ -610,8 +610,8 @@ func (o ConnectionAuthConfigAdditionalVariableEncryptionKeyValuePtrOutput) Elem( }).(ConnectionAuthConfigAdditionalVariableEncryptionKeyValueOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionAuthConfigAdditionalVariableEncryptionKeyValuePtrOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConnectionAuthConfigAdditionalVariableEncryptionKeyValue) *string { @@ -2865,8 +2865,8 @@ func (o ConnectionConfigVariableArrayOutput) Index(i pulumi.IntInput) Connection } type ConnectionConfigVariableEncryptionKeyValue struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName *string `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -2886,8 +2886,8 @@ type ConnectionConfigVariableEncryptionKeyValueInput interface { } type ConnectionConfigVariableEncryptionKeyValueArgs struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -2972,8 +2972,8 @@ func (o ConnectionConfigVariableEncryptionKeyValueOutput) ToConnectionConfigVari }).(ConnectionConfigVariableEncryptionKeyValuePtrOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionConfigVariableEncryptionKeyValueOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v ConnectionConfigVariableEncryptionKeyValue) *string { return v.KmsKeyName }).(pulumi.StringPtrOutput) @@ -3009,8 +3009,8 @@ func (o ConnectionConfigVariableEncryptionKeyValuePtrOutput) Elem() ConnectionCo }).(ConnectionConfigVariableEncryptionKeyValueOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionConfigVariableEncryptionKeyValuePtrOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConnectionConfigVariableEncryptionKeyValue) *string { @@ -3856,8 +3856,8 @@ func (o ConnectionEventingConfigAdditionalVariableArrayOutput) Index(i pulumi.In } type ConnectionEventingConfigAdditionalVariableEncryptionKeyValue struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName *string `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -3877,8 +3877,8 @@ type ConnectionEventingConfigAdditionalVariableEncryptionKeyValueInput interface } type ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -3963,8 +3963,8 @@ func (o ConnectionEventingConfigAdditionalVariableEncryptionKeyValueOutput) ToCo }).(ConnectionEventingConfigAdditionalVariableEncryptionKeyValuePtrOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionEventingConfigAdditionalVariableEncryptionKeyValueOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v ConnectionEventingConfigAdditionalVariableEncryptionKeyValue) *string { return v.KmsKeyName }).(pulumi.StringPtrOutput) @@ -4000,8 +4000,8 @@ func (o ConnectionEventingConfigAdditionalVariableEncryptionKeyValuePtrOutput) E }).(ConnectionEventingConfigAdditionalVariableEncryptionKeyValueOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionEventingConfigAdditionalVariableEncryptionKeyValuePtrOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConnectionEventingConfigAdditionalVariableEncryptionKeyValue) *string { @@ -4523,8 +4523,8 @@ func (o ConnectionEventingConfigAuthConfigAdditionalVariableArrayOutput) Index(i } type ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName *string `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -4544,8 +4544,8 @@ type ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueInput } type ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -4630,8 +4630,8 @@ func (o ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueOu }).(ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValuePtrOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue) *string { @@ -4669,8 +4669,8 @@ func (o ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValuePt }).(ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValuePtrOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue) *string { @@ -6580,8 +6580,8 @@ func (o ConnectionSslConfigAdditionalVariableArrayOutput) Index(i pulumi.IntInpu } type ConnectionSslConfigAdditionalVariableEncryptionKeyValue struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName *string `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -6601,8 +6601,8 @@ type ConnectionSslConfigAdditionalVariableEncryptionKeyValueInput interface { } type ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs struct { - // The [KMS key name] with which the content of the Operation is encrypted. The expected - // format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The [KMS key name] with which the content of the Operation is encrypted. The + // expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"` // Type of Encryption Key @@ -6687,8 +6687,8 @@ func (o ConnectionSslConfigAdditionalVariableEncryptionKeyValueOutput) ToConnect }).(ConnectionSslConfigAdditionalVariableEncryptionKeyValuePtrOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionSslConfigAdditionalVariableEncryptionKeyValueOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v ConnectionSslConfigAdditionalVariableEncryptionKeyValue) *string { return v.KmsKeyName }).(pulumi.StringPtrOutput) @@ -6724,8 +6724,8 @@ func (o ConnectionSslConfigAdditionalVariableEncryptionKeyValuePtrOutput) Elem() }).(ConnectionSslConfigAdditionalVariableEncryptionKeyValueOutput) } -// The [KMS key name] with which the content of the Operation is encrypted. The expected -// format: projects/*/locations/*/keyRings/*/cryptoKeys/*. +// The [KMS key name] with which the content of the Operation is encrypted. The +// expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. // Will be empty string if google managed. func (o ConnectionSslConfigAdditionalVariableEncryptionKeyValuePtrOutput) KmsKeyName() pulumi.StringPtrOutput { return o.ApplyT(func(v *ConnectionSslConfigAdditionalVariableEncryptionKeyValue) *string { diff --git a/sdk/go/gcp/networkconnectivity/hub.go b/sdk/go/gcp/networkconnectivity/hub.go index 2d333836d2..2273bbc222 100644 --- a/sdk/go/gcp/networkconnectivity/hub.go +++ b/sdk/go/gcp/networkconnectivity/hub.go @@ -13,10 +13,16 @@ import ( // The NetworkConnectivity Hub resource // +// To get more information about Hub, see: +// +// * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs) +// * How-to Guides +// - [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) +// // ## Example Usage // -// ### Basic_hub -// A basic test of a networkconnectivity hub +// ### Network Connectivity Hub Basic +// // ```go // package main // @@ -30,9 +36,8 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // _, err := networkconnectivity.NewHub(ctx, "primary", &networkconnectivity.HubArgs{ -// Name: pulumi.String("hub"), +// Name: pulumi.String("basic"), // Description: pulumi.String("A sample hub"), -// Project: pulumi.String("my-project-name"), // Labels: pulumi.StringMap{ // "label-one": pulumi.String("value-one"), // }, @@ -77,9 +82,8 @@ type Hub struct { // An optional description of the hub. Description pulumi.StringPtrOutput `pulumi:"description"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. - EffectiveLabels pulumi.MapOutput `pulumi:"effectiveLabels"` + EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"` // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - // // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels pulumi.StringMapOutput `pulumi:"labels"` @@ -87,13 +91,16 @@ type Hub struct { // // *** Name pulumi.StringOutput `pulumi:"name"` - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project pulumi.StringOutput `pulumi:"project"` - // The combination of labels configured directly on the resource and default labels configured on the provider. - PulumiLabels pulumi.MapOutput `pulumi:"pulumiLabels"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"` // The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + // Structure is documented below. RoutingVpcs HubRoutingVpcArrayOutput `pulumi:"routingVpcs"` - // Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + // Output only. The current lifecycle state of this hub. State pulumi.StringOutput `pulumi:"state"` // Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id. UniqueId pulumi.StringOutput `pulumi:"uniqueId"` @@ -141,9 +148,8 @@ type hubState struct { // An optional description of the hub. Description *string `pulumi:"description"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. - EffectiveLabels map[string]interface{} `pulumi:"effectiveLabels"` + EffectiveLabels map[string]string `pulumi:"effectiveLabels"` // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - // // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels map[string]string `pulumi:"labels"` @@ -151,13 +157,16 @@ type hubState struct { // // *** Name *string `pulumi:"name"` - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project *string `pulumi:"project"` - // The combination of labels configured directly on the resource and default labels configured on the provider. - PulumiLabels map[string]interface{} `pulumi:"pulumiLabels"` + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels map[string]string `pulumi:"pulumiLabels"` // The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + // Structure is documented below. RoutingVpcs []HubRoutingVpc `pulumi:"routingVpcs"` - // Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + // Output only. The current lifecycle state of this hub. State *string `pulumi:"state"` // Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id. UniqueId *string `pulumi:"uniqueId"` @@ -171,9 +180,8 @@ type HubState struct { // An optional description of the hub. Description pulumi.StringPtrInput // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. - EffectiveLabels pulumi.MapInput + EffectiveLabels pulumi.StringMapInput // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - // // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels pulumi.StringMapInput @@ -181,13 +189,16 @@ type HubState struct { // // *** Name pulumi.StringPtrInput - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project pulumi.StringPtrInput - // The combination of labels configured directly on the resource and default labels configured on the provider. - PulumiLabels pulumi.MapInput + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapInput // The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + // Structure is documented below. RoutingVpcs HubRoutingVpcArrayInput - // Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + // Output only. The current lifecycle state of this hub. State pulumi.StringPtrInput // Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id. UniqueId pulumi.StringPtrInput @@ -203,7 +214,6 @@ type hubArgs struct { // An optional description of the hub. Description *string `pulumi:"description"` // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - // // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels map[string]string `pulumi:"labels"` @@ -211,7 +221,8 @@ type hubArgs struct { // // *** Name *string `pulumi:"name"` - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project *string `pulumi:"project"` } @@ -220,7 +231,6 @@ type HubArgs struct { // An optional description of the hub. Description pulumi.StringPtrInput // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - // // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels pulumi.StringMapInput @@ -228,7 +238,8 @@ type HubArgs struct { // // *** Name pulumi.StringPtrInput - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project pulumi.StringPtrInput } @@ -330,12 +341,11 @@ func (o HubOutput) Description() pulumi.StringPtrOutput { } // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. -func (o HubOutput) EffectiveLabels() pulumi.MapOutput { - return o.ApplyT(func(v *Hub) pulumi.MapOutput { return v.EffectiveLabels }).(pulumi.MapOutput) +func (o HubOutput) EffectiveLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *Hub) pulumi.StringMapOutput { return v.EffectiveLabels }).(pulumi.StringMapOutput) } // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). -// // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. // Please refer to the field `effectiveLabels` for all of the labels present on the resource. func (o HubOutput) Labels() pulumi.StringMapOutput { @@ -349,22 +359,25 @@ func (o HubOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Hub) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// The project for the resource +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. func (o HubOutput) Project() pulumi.StringOutput { return o.ApplyT(func(v *Hub) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) } -// The combination of labels configured directly on the resource and default labels configured on the provider. -func (o HubOutput) PulumiLabels() pulumi.MapOutput { - return o.ApplyT(func(v *Hub) pulumi.MapOutput { return v.PulumiLabels }).(pulumi.MapOutput) +// The combination of labels configured directly on the resource +// and default labels configured on the provider. +func (o HubOutput) PulumiLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *Hub) pulumi.StringMapOutput { return v.PulumiLabels }).(pulumi.StringMapOutput) } // The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. +// Structure is documented below. func (o HubOutput) RoutingVpcs() HubRoutingVpcArrayOutput { return o.ApplyT(func(v *Hub) HubRoutingVpcArrayOutput { return v.RoutingVpcs }).(HubRoutingVpcArrayOutput) } -// Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING +// Output only. The current lifecycle state of this hub. func (o HubOutput) State() pulumi.StringOutput { return o.ApplyT(func(v *Hub) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/networkconnectivity/pulumiTypes.go b/sdk/go/gcp/networkconnectivity/pulumiTypes.go index 1f808d8b6d..2457d4b794 100644 --- a/sdk/go/gcp/networkconnectivity/pulumiTypes.go +++ b/sdk/go/gcp/networkconnectivity/pulumiTypes.go @@ -1570,6 +1570,7 @@ func (o SpokeLinkedInterconnectAttachmentsPtrOutput) Uris() pulumi.StringArrayOu type SpokeLinkedRouterApplianceInstances struct { // The list of router appliance instances + // Structure is documented below. Instances []SpokeLinkedRouterApplianceInstancesInstance `pulumi:"instances"` // A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations. SiteToSiteDataTransfer bool `pulumi:"siteToSiteDataTransfer"` @@ -1588,6 +1589,7 @@ type SpokeLinkedRouterApplianceInstancesInput interface { type SpokeLinkedRouterApplianceInstancesArgs struct { // The list of router appliance instances + // Structure is documented below. Instances SpokeLinkedRouterApplianceInstancesInstanceArrayInput `pulumi:"instances"` // A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations. SiteToSiteDataTransfer pulumi.BoolInput `pulumi:"siteToSiteDataTransfer"` @@ -1671,6 +1673,7 @@ func (o SpokeLinkedRouterApplianceInstancesOutput) ToSpokeLinkedRouterApplianceI } // The list of router appliance instances +// Structure is documented below. func (o SpokeLinkedRouterApplianceInstancesOutput) Instances() SpokeLinkedRouterApplianceInstancesInstanceArrayOutput { return o.ApplyT(func(v SpokeLinkedRouterApplianceInstances) []SpokeLinkedRouterApplianceInstancesInstance { return v.Instances @@ -1707,6 +1710,7 @@ func (o SpokeLinkedRouterApplianceInstancesPtrOutput) Elem() SpokeLinkedRouterAp } // The list of router appliance instances +// Structure is documented below. func (o SpokeLinkedRouterApplianceInstancesPtrOutput) Instances() SpokeLinkedRouterApplianceInstancesInstanceArrayOutput { return o.ApplyT(func(v *SpokeLinkedRouterApplianceInstances) []SpokeLinkedRouterApplianceInstancesInstance { if v == nil { @@ -1730,8 +1734,6 @@ type SpokeLinkedRouterApplianceInstancesInstance struct { // The IP address on the VM to use for peering. IpAddress *string `pulumi:"ipAddress"` // The URI of the virtual machine resource - // - // *** VirtualMachine *string `pulumi:"virtualMachine"` } @@ -1750,8 +1752,6 @@ type SpokeLinkedRouterApplianceInstancesInstanceArgs struct { // The IP address on the VM to use for peering. IpAddress pulumi.StringPtrInput `pulumi:"ipAddress"` // The URI of the virtual machine resource - // - // *** VirtualMachine pulumi.StringPtrInput `pulumi:"virtualMachine"` } @@ -1812,8 +1812,6 @@ func (o SpokeLinkedRouterApplianceInstancesInstanceOutput) IpAddress() pulumi.St } // The URI of the virtual machine resource -// -// *** func (o SpokeLinkedRouterApplianceInstancesInstanceOutput) VirtualMachine() pulumi.StringPtrOutput { return o.ApplyT(func(v SpokeLinkedRouterApplianceInstancesInstance) *string { return v.VirtualMachine }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/gcp/networkconnectivity/spoke.go b/sdk/go/gcp/networkconnectivity/spoke.go index 2361d3e825..2121d9c19a 100644 --- a/sdk/go/gcp/networkconnectivity/spoke.go +++ b/sdk/go/gcp/networkconnectivity/spoke.go @@ -14,9 +14,16 @@ import ( // The NetworkConnectivity Spoke resource // +// To get more information about Spoke, see: +// +// * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes) +// * How-to Guides +// - [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) +// // ## Example Usage // -// ### Linked_vpc_network +// ### Network Connectivity Spoke Linked Vpc Network Basic +// // ```go // package main // @@ -31,14 +38,14 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ -// Name: pulumi.String("network"), +// Name: pulumi.String("net"), // AutoCreateSubnetworks: pulumi.Bool(false), // }) // if err != nil { // return err // } // basicHub, err := networkconnectivity.NewHub(ctx, "basic_hub", &networkconnectivity.HubArgs{ -// Name: pulumi.String("hub"), +// Name: pulumi.String("hub1"), // Description: pulumi.String("A sample hub"), // Labels: pulumi.StringMap{ // "label-two": pulumi.String("value-one"), @@ -48,9 +55,9 @@ import ( // return err // } // _, err = networkconnectivity.NewSpoke(ctx, "primary", &networkconnectivity.SpokeArgs{ -// Name: pulumi.String("name"), +// Name: pulumi.String("spoke1"), // Location: pulumi.String("global"), -// Description: pulumi.String("A sample spoke with a linked routher appliance instance"), +// Description: pulumi.String("A sample spoke with a linked router appliance instance"), // Labels: pulumi.StringMap{ // "label-one": pulumi.String("value-one"), // }, @@ -71,7 +78,8 @@ import ( // } // // ``` -// ### Router_appliance +// ### Network Connectivity Spoke Router Appliance Basic +// // ```go // package main // @@ -86,26 +94,26 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ -// Name: pulumi.String("network"), +// Name: pulumi.String("tf-test-network_2067"), // AutoCreateSubnetworks: pulumi.Bool(false), // }) // if err != nil { // return err // } // subnetwork, err := compute.NewSubnetwork(ctx, "subnetwork", &compute.SubnetworkArgs{ -// Name: pulumi.String("subnet"), +// Name: pulumi.String("tf-test-subnet_40785"), // IpCidrRange: pulumi.String("10.0.0.0/28"), -// Region: pulumi.String("us-west1"), +// Region: pulumi.String("us-central1"), // Network: network.SelfLink, // }) // if err != nil { // return err // } // instance, err := compute.NewInstance(ctx, "instance", &compute.InstanceArgs{ -// Name: pulumi.String("instance"), +// Name: pulumi.String("tf-test-instance_79169"), // MachineType: pulumi.String("e2-medium"), // CanIpForward: pulumi.Bool(true), -// Zone: pulumi.String("us-west1-a"), +// Zone: pulumi.String("us-central1-a"), // BootDisk: &compute.InstanceBootDiskArgs{ // InitializeParams: &compute.InstanceBootDiskInitializeParamsArgs{ // Image: pulumi.String("projects/debian-cloud/global/images/debian-10-buster-v20210817"), @@ -127,7 +135,7 @@ import ( // return err // } // basicHub, err := networkconnectivity.NewHub(ctx, "basic_hub", &networkconnectivity.HubArgs{ -// Name: pulumi.String("hub"), +// Name: pulumi.String("tf-test-hub_56529"), // Description: pulumi.String("A sample hub"), // Labels: pulumi.StringMap{ // "label-two": pulumi.String("value-one"), @@ -137,8 +145,8 @@ import ( // return err // } // _, err = networkconnectivity.NewSpoke(ctx, "primary", &networkconnectivity.SpokeArgs{ -// Name: pulumi.String("name"), -// Location: pulumi.String("us-west1"), +// Name: pulumi.String("tf-test-name_75413"), +// Location: pulumi.String("us-central1"), // Description: pulumi.String("A sample spoke with a linked routher appliance instance"), // Labels: pulumi.StringMap{ // "label-one": pulumi.String("value-one"), @@ -194,33 +202,38 @@ type Spoke struct { // An optional description of the spoke. Description pulumi.StringPtrOutput `pulumi:"description"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. - EffectiveLabels pulumi.MapOutput `pulumi:"effectiveLabels"` + EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"` // Immutable. The URI of the hub that this spoke is attached to. Hub pulumi.StringOutput `pulumi:"hub"` - // Optional labels in key:value format. For more information about labels, see [Requirements for - // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - // non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - // `effectiveLabels` for all of the labels present on the resource. + // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels pulumi.StringMapOutput `pulumi:"labels"` - // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - // prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - // advertising the same prefixes. + // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + // Structure is documented below. LinkedInterconnectAttachments SpokeLinkedInterconnectAttachmentsPtrOutput `pulumi:"linkedInterconnectAttachments"` // The URIs of linked Router appliance resources + // Structure is documented below. LinkedRouterApplianceInstances SpokeLinkedRouterApplianceInstancesPtrOutput `pulumi:"linkedRouterApplianceInstances"` // VPC network that is associated with the spoke. + // Structure is documented below. LinkedVpcNetwork SpokeLinkedVpcNetworkPtrOutput `pulumi:"linkedVpcNetwork"` // The URIs of linked VPN tunnel resources + // Structure is documented below. LinkedVpnTunnels SpokeLinkedVpnTunnelsPtrOutput `pulumi:"linkedVpnTunnels"` // The location for the resource + // + // *** Location pulumi.StringOutput `pulumi:"location"` // Immutable. The name of the spoke. Spoke names must be unique. Name pulumi.StringOutput `pulumi:"name"` - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project pulumi.StringOutput `pulumi:"project"` - // The combination of labels configured directly on the resource and default labels configured on the provider. - PulumiLabels pulumi.MapOutput `pulumi:"pulumiLabels"` - // Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"` + // Output only. The current lifecycle state of this spoke. State pulumi.StringOutput `pulumi:"state"` // Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id. UniqueId pulumi.StringOutput `pulumi:"uniqueId"` @@ -274,33 +287,38 @@ type spokeState struct { // An optional description of the spoke. Description *string `pulumi:"description"` // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. - EffectiveLabels map[string]interface{} `pulumi:"effectiveLabels"` + EffectiveLabels map[string]string `pulumi:"effectiveLabels"` // Immutable. The URI of the hub that this spoke is attached to. Hub *string `pulumi:"hub"` - // Optional labels in key:value format. For more information about labels, see [Requirements for - // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - // non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - // `effectiveLabels` for all of the labels present on the resource. + // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels map[string]string `pulumi:"labels"` - // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - // prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - // advertising the same prefixes. + // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + // Structure is documented below. LinkedInterconnectAttachments *SpokeLinkedInterconnectAttachments `pulumi:"linkedInterconnectAttachments"` // The URIs of linked Router appliance resources + // Structure is documented below. LinkedRouterApplianceInstances *SpokeLinkedRouterApplianceInstances `pulumi:"linkedRouterApplianceInstances"` // VPC network that is associated with the spoke. + // Structure is documented below. LinkedVpcNetwork *SpokeLinkedVpcNetwork `pulumi:"linkedVpcNetwork"` // The URIs of linked VPN tunnel resources + // Structure is documented below. LinkedVpnTunnels *SpokeLinkedVpnTunnels `pulumi:"linkedVpnTunnels"` // The location for the resource + // + // *** Location *string `pulumi:"location"` // Immutable. The name of the spoke. Spoke names must be unique. Name *string `pulumi:"name"` - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project *string `pulumi:"project"` - // The combination of labels configured directly on the resource and default labels configured on the provider. - PulumiLabels map[string]interface{} `pulumi:"pulumiLabels"` - // Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels map[string]string `pulumi:"pulumiLabels"` + // Output only. The current lifecycle state of this spoke. State *string `pulumi:"state"` // Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id. UniqueId *string `pulumi:"uniqueId"` @@ -314,33 +332,38 @@ type SpokeState struct { // An optional description of the spoke. Description pulumi.StringPtrInput // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. - EffectiveLabels pulumi.MapInput + EffectiveLabels pulumi.StringMapInput // Immutable. The URI of the hub that this spoke is attached to. Hub pulumi.StringPtrInput - // Optional labels in key:value format. For more information about labels, see [Requirements for - // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - // non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - // `effectiveLabels` for all of the labels present on the resource. + // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels pulumi.StringMapInput - // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - // prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - // advertising the same prefixes. + // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + // Structure is documented below. LinkedInterconnectAttachments SpokeLinkedInterconnectAttachmentsPtrInput // The URIs of linked Router appliance resources + // Structure is documented below. LinkedRouterApplianceInstances SpokeLinkedRouterApplianceInstancesPtrInput // VPC network that is associated with the spoke. + // Structure is documented below. LinkedVpcNetwork SpokeLinkedVpcNetworkPtrInput // The URIs of linked VPN tunnel resources + // Structure is documented below. LinkedVpnTunnels SpokeLinkedVpnTunnelsPtrInput // The location for the resource + // + // *** Location pulumi.StringPtrInput // Immutable. The name of the spoke. Spoke names must be unique. Name pulumi.StringPtrInput - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project pulumi.StringPtrInput - // The combination of labels configured directly on the resource and default labels configured on the provider. - PulumiLabels pulumi.MapInput - // Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + // The combination of labels configured directly on the resource + // and default labels configured on the provider. + PulumiLabels pulumi.StringMapInput + // Output only. The current lifecycle state of this spoke. State pulumi.StringPtrInput // Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id. UniqueId pulumi.StringPtrInput @@ -357,26 +380,30 @@ type spokeArgs struct { Description *string `pulumi:"description"` // Immutable. The URI of the hub that this spoke is attached to. Hub string `pulumi:"hub"` - // Optional labels in key:value format. For more information about labels, see [Requirements for - // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - // non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - // `effectiveLabels` for all of the labels present on the resource. + // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels map[string]string `pulumi:"labels"` - // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - // prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - // advertising the same prefixes. + // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + // Structure is documented below. LinkedInterconnectAttachments *SpokeLinkedInterconnectAttachments `pulumi:"linkedInterconnectAttachments"` // The URIs of linked Router appliance resources + // Structure is documented below. LinkedRouterApplianceInstances *SpokeLinkedRouterApplianceInstances `pulumi:"linkedRouterApplianceInstances"` // VPC network that is associated with the spoke. + // Structure is documented below. LinkedVpcNetwork *SpokeLinkedVpcNetwork `pulumi:"linkedVpcNetwork"` // The URIs of linked VPN tunnel resources + // Structure is documented below. LinkedVpnTunnels *SpokeLinkedVpnTunnels `pulumi:"linkedVpnTunnels"` // The location for the resource + // + // *** Location string `pulumi:"location"` // Immutable. The name of the spoke. Spoke names must be unique. Name *string `pulumi:"name"` - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project *string `pulumi:"project"` } @@ -386,26 +413,30 @@ type SpokeArgs struct { Description pulumi.StringPtrInput // Immutable. The URI of the hub that this spoke is attached to. Hub pulumi.StringInput - // Optional labels in key:value format. For more information about labels, see [Requirements for - // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - // non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - // `effectiveLabels` for all of the labels present on the resource. + // Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + // **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + // Please refer to the field `effectiveLabels` for all of the labels present on the resource. Labels pulumi.StringMapInput - // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - // prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - // advertising the same prefixes. + // A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + // Structure is documented below. LinkedInterconnectAttachments SpokeLinkedInterconnectAttachmentsPtrInput // The URIs of linked Router appliance resources + // Structure is documented below. LinkedRouterApplianceInstances SpokeLinkedRouterApplianceInstancesPtrInput // VPC network that is associated with the spoke. + // Structure is documented below. LinkedVpcNetwork SpokeLinkedVpcNetworkPtrInput // The URIs of linked VPN tunnel resources + // Structure is documented below. LinkedVpnTunnels SpokeLinkedVpnTunnelsPtrInput // The location for the resource + // + // *** Location pulumi.StringInput // Immutable. The name of the spoke. Spoke names must be unique. Name pulumi.StringPtrInput - // The project for the resource + // The ID of the project in which the resource belongs. + // If it is not provided, the provider project is used. Project pulumi.StringPtrInput } @@ -507,8 +538,8 @@ func (o SpokeOutput) Description() pulumi.StringPtrOutput { } // All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. -func (o SpokeOutput) EffectiveLabels() pulumi.MapOutput { - return o.ApplyT(func(v *Spoke) pulumi.MapOutput { return v.EffectiveLabels }).(pulumi.MapOutput) +func (o SpokeOutput) EffectiveLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *Spoke) pulumi.StringMapOutput { return v.EffectiveLabels }).(pulumi.StringMapOutput) } // Immutable. The URI of the hub that this spoke is attached to. @@ -516,37 +547,40 @@ func (o SpokeOutput) Hub() pulumi.StringOutput { return o.ApplyT(func(v *Spoke) pulumi.StringOutput { return v.Hub }).(pulumi.StringOutput) } -// Optional labels in key:value format. For more information about labels, see [Requirements for -// labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is -// non-authoritative, and will only manage the labels present in your configuration. Please refer to the field -// `effectiveLabels` for all of the labels present on the resource. +// Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). +// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. +// Please refer to the field `effectiveLabels` for all of the labels present on the resource. func (o SpokeOutput) Labels() pulumi.StringMapOutput { return o.ApplyT(func(v *Spoke) pulumi.StringMapOutput { return v.Labels }).(pulumi.StringMapOutput) } -// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same -// prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of -// advertising the same prefixes. +// A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. +// Structure is documented below. func (o SpokeOutput) LinkedInterconnectAttachments() SpokeLinkedInterconnectAttachmentsPtrOutput { return o.ApplyT(func(v *Spoke) SpokeLinkedInterconnectAttachmentsPtrOutput { return v.LinkedInterconnectAttachments }).(SpokeLinkedInterconnectAttachmentsPtrOutput) } // The URIs of linked Router appliance resources +// Structure is documented below. func (o SpokeOutput) LinkedRouterApplianceInstances() SpokeLinkedRouterApplianceInstancesPtrOutput { return o.ApplyT(func(v *Spoke) SpokeLinkedRouterApplianceInstancesPtrOutput { return v.LinkedRouterApplianceInstances }).(SpokeLinkedRouterApplianceInstancesPtrOutput) } // VPC network that is associated with the spoke. +// Structure is documented below. func (o SpokeOutput) LinkedVpcNetwork() SpokeLinkedVpcNetworkPtrOutput { return o.ApplyT(func(v *Spoke) SpokeLinkedVpcNetworkPtrOutput { return v.LinkedVpcNetwork }).(SpokeLinkedVpcNetworkPtrOutput) } // The URIs of linked VPN tunnel resources +// Structure is documented below. func (o SpokeOutput) LinkedVpnTunnels() SpokeLinkedVpnTunnelsPtrOutput { return o.ApplyT(func(v *Spoke) SpokeLinkedVpnTunnelsPtrOutput { return v.LinkedVpnTunnels }).(SpokeLinkedVpnTunnelsPtrOutput) } // The location for the resource +// +// *** func (o SpokeOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v *Spoke) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) } @@ -556,17 +590,19 @@ func (o SpokeOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Spoke) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } -// The project for the resource +// The ID of the project in which the resource belongs. +// If it is not provided, the provider project is used. func (o SpokeOutput) Project() pulumi.StringOutput { return o.ApplyT(func(v *Spoke) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) } -// The combination of labels configured directly on the resource and default labels configured on the provider. -func (o SpokeOutput) PulumiLabels() pulumi.MapOutput { - return o.ApplyT(func(v *Spoke) pulumi.MapOutput { return v.PulumiLabels }).(pulumi.MapOutput) +// The combination of labels configured directly on the resource +// and default labels configured on the provider. +func (o SpokeOutput) PulumiLabels() pulumi.StringMapOutput { + return o.ApplyT(func(v *Spoke) pulumi.StringMapOutput { return v.PulumiLabels }).(pulumi.StringMapOutput) } -// Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING +// Output only. The current lifecycle state of this spoke. func (o SpokeOutput) State() pulumi.StringOutput { return o.ApplyT(func(v *Spoke) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/networksecurity/tlsInspectionPolicy.go b/sdk/go/gcp/networksecurity/tlsInspectionPolicy.go index fc15134625..b851b42a76 100644 --- a/sdk/go/gcp/networksecurity/tlsInspectionPolicy.go +++ b/sdk/go/gcp/networksecurity/tlsInspectionPolicy.go @@ -141,8 +141,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificatemanager" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/networksecurity" @@ -227,9 +225,7 @@ import ( // defaultCaPoolIamMember, err := certificateauthority.NewCaPoolIamMember(ctx, "default", &certificateauthority.CaPoolIamMemberArgs{ // CaPool: _default.ID(), // Role: pulumi.String("roles/privateca.certificateManager"), -// Member: nsSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: nsSa.Member, // }) // if err != nil { // return err diff --git a/sdk/go/gcp/orgpolicy/policy.go b/sdk/go/gcp/orgpolicy/policy.go index 17f5d5b345..589382e018 100644 --- a/sdk/go/gcp/orgpolicy/policy.go +++ b/sdk/go/gcp/orgpolicy/policy.go @@ -183,7 +183,7 @@ import ( // &orgpolicy.PolicySpecRuleArgs{ // Condition: &orgpolicy.PolicySpecRuleConditionArgs{ // Description: pulumi.String("A sample condition for the policy"), -// Expression: pulumi.String("resource.matchLabels('labelKeys/123', 'labelValues/345')"), +// Expression: pulumi.String("resource.matchTagId('tagKeys/123', 'tagValues/345')"), // Location: pulumi.String("sample-location.log"), // Title: pulumi.String("sample-condition"), // }, @@ -227,7 +227,7 @@ import ( // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { // constraint, err := orgpolicy.NewCustomConstraint(ctx, "constraint", &orgpolicy.CustomConstraintArgs{ -// Name: pulumi.String("custom.disableGkeAutoUpgrade_40785"), +// Name: pulumi.String("custom.disableGkeAutoUpgrade_37559"), // Parent: pulumi.String("organizations/123456789"), // DisplayName: pulumi.String("Disable GKE auto upgrade"), // Description: pulumi.String("Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced."), diff --git a/sdk/go/gcp/projects/getProjectService.go b/sdk/go/gcp/projects/getProjectService.go index 0596f89884..666438b4a7 100644 --- a/sdk/go/gcp/projects/getProjectService.go +++ b/sdk/go/gcp/projects/getProjectService.go @@ -73,8 +73,9 @@ type GetProjectServiceArgs struct { // A collection of values returned by getProjectService. type GetProjectServiceResult struct { - DisableDependentServices bool `pulumi:"disableDependentServices"` - DisableOnDestroy bool `pulumi:"disableOnDestroy"` + CheckIfServiceHasUsageOnDestroy bool `pulumi:"checkIfServiceHasUsageOnDestroy"` + DisableDependentServices bool `pulumi:"disableDependentServices"` + DisableOnDestroy bool `pulumi:"disableOnDestroy"` // The provider-assigned unique ID for this managed resource. Id string `pulumi:"id"` Project *string `pulumi:"project"` @@ -124,6 +125,10 @@ func (o GetProjectServiceResultOutput) ToGetProjectServiceResultOutputWithContex return o } +func (o GetProjectServiceResultOutput) CheckIfServiceHasUsageOnDestroy() pulumi.BoolOutput { + return o.ApplyT(func(v GetProjectServiceResult) bool { return v.CheckIfServiceHasUsageOnDestroy }).(pulumi.BoolOutput) +} + func (o GetProjectServiceResultOutput) DisableDependentServices() pulumi.BoolOutput { return o.ApplyT(func(v GetProjectServiceResult) bool { return v.DisableDependentServices }).(pulumi.BoolOutput) } diff --git a/sdk/go/gcp/projects/service.go b/sdk/go/gcp/projects/service.go index a6091a29a6..6d3f84c4aa 100644 --- a/sdk/go/gcp/projects/service.go +++ b/sdk/go/gcp/projects/service.go @@ -64,6 +64,11 @@ import ( type Service struct { pulumi.CustomResourceState + // Beta + // If `true`, the usage of the service to be disabled will be checked and an error + // will be returned if the service to be disabled has usage in last 30 days. + // Defaults to `false`. + CheckIfServiceHasUsageOnDestroy pulumi.BoolPtrOutput `pulumi:"checkIfServiceHasUsageOnDestroy"` // If `true`, services that are enabled // and which depend on this service should also be disabled when this service is // destroyed. If `false` or unset, an error will be generated if any enabled @@ -110,6 +115,11 @@ func GetService(ctx *pulumi.Context, // Input properties used for looking up and filtering Service resources. type serviceState struct { + // Beta + // If `true`, the usage of the service to be disabled will be checked and an error + // will be returned if the service to be disabled has usage in last 30 days. + // Defaults to `false`. + CheckIfServiceHasUsageOnDestroy *bool `pulumi:"checkIfServiceHasUsageOnDestroy"` // If `true`, services that are enabled // and which depend on this service should also be disabled when this service is // destroyed. If `false` or unset, an error will be generated if any enabled @@ -124,6 +134,11 @@ type serviceState struct { } type ServiceState struct { + // Beta + // If `true`, the usage of the service to be disabled will be checked and an error + // will be returned if the service to be disabled has usage in last 30 days. + // Defaults to `false`. + CheckIfServiceHasUsageOnDestroy pulumi.BoolPtrInput // If `true`, services that are enabled // and which depend on this service should also be disabled when this service is // destroyed. If `false` or unset, an error will be generated if any enabled @@ -142,6 +157,11 @@ func (ServiceState) ElementType() reflect.Type { } type serviceArgs struct { + // Beta + // If `true`, the usage of the service to be disabled will be checked and an error + // will be returned if the service to be disabled has usage in last 30 days. + // Defaults to `false`. + CheckIfServiceHasUsageOnDestroy *bool `pulumi:"checkIfServiceHasUsageOnDestroy"` // If `true`, services that are enabled // and which depend on this service should also be disabled when this service is // destroyed. If `false` or unset, an error will be generated if any enabled @@ -157,6 +177,11 @@ type serviceArgs struct { // The set of arguments for constructing a Service resource. type ServiceArgs struct { + // Beta + // If `true`, the usage of the service to be disabled will be checked and an error + // will be returned if the service to be disabled has usage in last 30 days. + // Defaults to `false`. + CheckIfServiceHasUsageOnDestroy pulumi.BoolPtrInput // If `true`, services that are enabled // and which depend on this service should also be disabled when this service is // destroyed. If `false` or unset, an error will be generated if any enabled @@ -257,6 +282,14 @@ func (o ServiceOutput) ToServiceOutputWithContext(ctx context.Context) ServiceOu return o } +// Beta +// If `true`, the usage of the service to be disabled will be checked and an error +// will be returned if the service to be disabled has usage in last 30 days. +// Defaults to `false`. +func (o ServiceOutput) CheckIfServiceHasUsageOnDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Service) pulumi.BoolPtrOutput { return v.CheckIfServiceHasUsageOnDestroy }).(pulumi.BoolPtrOutput) +} + // If `true`, services that are enabled // and which depend on this service should also be disabled when this service is // destroyed. If `false` or unset, an error will be generated if any enabled diff --git a/sdk/go/gcp/projects/serviceIdentity.go b/sdk/go/gcp/projects/serviceIdentity.go index 660044f8da..a473d92d98 100644 --- a/sdk/go/gcp/projects/serviceIdentity.go +++ b/sdk/go/gcp/projects/serviceIdentity.go @@ -34,8 +34,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/projects" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -58,9 +56,7 @@ import ( // _, err = projects.NewIAMMember(ctx, "hc_sa_bq_jobuser", &projects.IAMMemberArgs{ // Project: pulumi.String(project.ProjectId), // Role: pulumi.String("roles/bigquery.jobUser"), -// Member: hcSa.Email.ApplyT(func(email string) (string, error) { -// return fmt.Sprintf("serviceAccount:%v", email), nil -// }).(pulumi.StringOutput), +// Member: hcSa.Member, // }) // if err != nil { // return err @@ -79,6 +75,8 @@ type ServiceIdentity struct { // The email address of the Google managed service account. Email pulumi.StringOutput `pulumi:"email"` + // The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + Member pulumi.StringOutput `pulumi:"member"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringOutput `pulumi:"project"` @@ -123,6 +121,8 @@ func GetServiceIdentity(ctx *pulumi.Context, type serviceIdentityState struct { // The email address of the Google managed service account. Email *string `pulumi:"email"` + // The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + Member *string `pulumi:"member"` // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project *string `pulumi:"project"` @@ -135,6 +135,8 @@ type serviceIdentityState struct { type ServiceIdentityState struct { // The email address of the Google managed service account. Email pulumi.StringPtrInput + // The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + Member pulumi.StringPtrInput // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. Project pulumi.StringPtrInput @@ -261,6 +263,11 @@ func (o ServiceIdentityOutput) Email() pulumi.StringOutput { return o.ApplyT(func(v *ServiceIdentity) pulumi.StringOutput { return v.Email }).(pulumi.StringOutput) } +// The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. +func (o ServiceIdentityOutput) Member() pulumi.StringOutput { + return o.ApplyT(func(v *ServiceIdentity) pulumi.StringOutput { return v.Member }).(pulumi.StringOutput) +} + // The ID of the project in which the resource belongs. // If it is not provided, the provider project is used. func (o ServiceIdentityOutput) Project() pulumi.StringOutput { diff --git a/sdk/go/gcp/pubsub/subscription.go b/sdk/go/gcp/pubsub/subscription.go index e72d35ec42..d5aeaf2672 100644 --- a/sdk/go/gcp/pubsub/subscription.go +++ b/sdk/go/gcp/pubsub/subscription.go @@ -499,7 +499,7 @@ import ( // CloudStorageConfig: &pubsub.SubscriptionCloudStorageConfigArgs{ // Bucket: example.Name, // FilenamePrefix: pulumi.String("pre-"), -// FilenameSuffix: pulumi.String("-_79169"), +// FilenameSuffix: pulumi.String("-_91980"), // FilenameDatetimeFormat: pulumi.String("YYYY-MM-DD/hh_mm_ssZ"), // MaxBytes: pulumi.Int(1000), // MaxDuration: pulumi.String("300s"), @@ -566,7 +566,7 @@ import ( // CloudStorageConfig: &pubsub.SubscriptionCloudStorageConfigArgs{ // Bucket: example.Name, // FilenamePrefix: pulumi.String("pre-"), -// FilenameSuffix: pulumi.String("-_56529"), +// FilenameSuffix: pulumi.String("-_37118"), // FilenameDatetimeFormat: pulumi.String("YYYY-MM-DD/hh_mm_ssZ"), // MaxBytes: pulumi.Int(1000), // MaxDuration: pulumi.String("300s"), @@ -642,7 +642,7 @@ import ( // CloudStorageConfig: &pubsub.SubscriptionCloudStorageConfigArgs{ // Bucket: example.Name, // FilenamePrefix: pulumi.String("pre-"), -// FilenameSuffix: pulumi.String("-_75413"), +// FilenameSuffix: pulumi.String("-_80332"), // FilenameDatetimeFormat: pulumi.String("YYYY-MM-DD/hh_mm_ssZ"), // MaxBytes: pulumi.Int(1000), // MaxDuration: pulumi.String("300s"), diff --git a/sdk/go/gcp/securesourcemanager/instance.go b/sdk/go/gcp/securesourcemanager/instance.go index 132394fd7d..5ebf0564cc 100644 --- a/sdk/go/gcp/securesourcemanager/instance.go +++ b/sdk/go/gcp/securesourcemanager/instance.go @@ -192,8 +192,8 @@ import ( // return err // } // // ca pool IAM permissions can take time to propagate -// wait60Seconds, err := time.NewSleep(ctx, "wait_60_seconds", &time.SleepArgs{ -// CreateDuration: "60s", +// wait120Seconds, err := time.NewSleep(ctx, "wait_120_seconds", &time.SleepArgs{ +// CreateDuration: "120s", // }, pulumi.DependsOn([]pulumi.Resource{ // caPoolBinding, // })) @@ -209,7 +209,7 @@ import ( // }, // }, pulumi.DependsOn([]pulumi.Resource{ // rootCa, -// wait60Seconds, +// wait120Seconds, // })) // if err != nil { // return err @@ -219,6 +219,467 @@ import ( // } // // ``` +// ### Secure Source Manager Instance Private Psc Backend +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/dns" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager" +// "github.com/pulumi/pulumi-time/sdk/go/time" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// project, err := organizations.LookupProject(ctx, nil, nil) +// if err != nil { +// return err +// } +// caPool, err := certificateauthority.NewCaPool(ctx, "ca_pool", &certificateauthority.CaPoolArgs{ +// Name: pulumi.String("ca-pool"), +// Location: pulumi.String("us-central1"), +// Tier: pulumi.String("ENTERPRISE"), +// PublishingOptions: &certificateauthority.CaPoolPublishingOptionsArgs{ +// PublishCaCert: pulumi.Bool(true), +// PublishCrl: pulumi.Bool(true), +// }, +// }) +// if err != nil { +// return err +// } +// rootCa, err := certificateauthority.NewAuthority(ctx, "root_ca", &certificateauthority.AuthorityArgs{ +// Pool: caPool.Name, +// CertificateAuthorityId: pulumi.String("root-ca"), +// Location: pulumi.String("us-central1"), +// Config: &certificateauthority.AuthorityConfigArgs{ +// SubjectConfig: &certificateauthority.AuthorityConfigSubjectConfigArgs{ +// Subject: &certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{ +// Organization: pulumi.String("google"), +// CommonName: pulumi.String("my-certificate-authority"), +// }, +// }, +// X509Config: &certificateauthority.AuthorityConfigX509ConfigArgs{ +// CaOptions: &certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{ +// IsCa: pulumi.Bool(true), +// }, +// KeyUsage: &certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{ +// BaseKeyUsage: &certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{ +// CertSign: pulumi.Bool(true), +// CrlSign: pulumi.Bool(true), +// }, +// ExtendedKeyUsage: &certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{ +// ServerAuth: pulumi.Bool(true), +// }, +// }, +// }, +// }, +// KeySpec: &certificateauthority.AuthorityKeySpecArgs{ +// Algorithm: pulumi.String("RSA_PKCS1_4096_SHA256"), +// }, +// DeletionProtection: pulumi.Bool(false), +// IgnoreActiveCertificatesOnDeletion: pulumi.Bool(true), +// SkipGracePeriod: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// caPoolBinding, err := certificateauthority.NewCaPoolIamBinding(ctx, "ca_pool_binding", &certificateauthority.CaPoolIamBindingArgs{ +// CaPool: caPool.ID(), +// Role: pulumi.String("roles/privateca.certificateRequester"), +// Members: pulumi.StringArray{ +// pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com", project.Number)), +// }, +// }) +// if err != nil { +// return err +// } +// // ca pool IAM permissions can take time to propagate +// wait120Seconds, err := time.NewSleep(ctx, "wait_120_seconds", &time.SleepArgs{ +// CreateDuration: "120s", +// }, pulumi.DependsOn([]pulumi.Resource{ +// caPoolBinding, +// })) +// if err != nil { +// return err +// } +// // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api +// _, err = securesourcemanager.NewInstance(ctx, "default", &securesourcemanager.InstanceArgs{ +// InstanceId: pulumi.String("my-instance"), +// Location: pulumi.String("us-central1"), +// PrivateConfig: &securesourcemanager.InstancePrivateConfigArgs{ +// IsPrivate: pulumi.Bool(true), +// CaPool: caPool.ID(), +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// rootCa, +// wait120Seconds, +// })) +// if err != nil { +// return err +// } +// // Connect SSM private instance with L4 proxy ILB. +// network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ +// Name: pulumi.String("my-network"), +// AutoCreateSubnetworks: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// subnet, err := compute.NewSubnetwork(ctx, "subnet", &compute.SubnetworkArgs{ +// Name: pulumi.String("my-subnet"), +// Region: pulumi.String("us-central1"), +// Network: network.ID(), +// IpCidrRange: pulumi.String("10.0.1.0/24"), +// PrivateIpGoogleAccess: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// pscNeg, err := compute.NewRegionNetworkEndpointGroup(ctx, "psc_neg", &compute.RegionNetworkEndpointGroupArgs{ +// Name: pulumi.String("my-neg"), +// Region: pulumi.String("us-central1"), +// NetworkEndpointType: pulumi.String("PRIVATE_SERVICE_CONNECT"), +// PscTargetService: pulumi.String(_default.PrivateConfig.ApplyT(func(privateConfig securesourcemanager.InstancePrivateConfig) (*string, error) { +// return &privateConfig.HttpServiceAttachment, nil +// }).(pulumi.StringPtrOutput)), +// Network: network.ID(), +// Subnetwork: subnet.ID(), +// }) +// if err != nil { +// return err +// } +// backendService, err := compute.NewRegionBackendService(ctx, "backend_service", &compute.RegionBackendServiceArgs{ +// Name: pulumi.String("my-backend-service"), +// Region: pulumi.String("us-central1"), +// Protocol: pulumi.String("TCP"), +// LoadBalancingScheme: pulumi.String("INTERNAL_MANAGED"), +// Backends: compute.RegionBackendServiceBackendArray{ +// &compute.RegionBackendServiceBackendArgs{ +// Group: pscNeg.ID(), +// BalancingMode: pulumi.String("UTILIZATION"), +// CapacityScaler: pulumi.Float64(1), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// proxySubnet, err := compute.NewSubnetwork(ctx, "proxy_subnet", &compute.SubnetworkArgs{ +// Name: pulumi.String("my-proxy-subnet"), +// Region: pulumi.String("us-central1"), +// Network: network.ID(), +// IpCidrRange: pulumi.String("10.0.2.0/24"), +// Purpose: pulumi.String("REGIONAL_MANAGED_PROXY"), +// Role: pulumi.String("ACTIVE"), +// }) +// if err != nil { +// return err +// } +// targetProxy, err := compute.NewRegionTargetTcpProxy(ctx, "target_proxy", &compute.RegionTargetTcpProxyArgs{ +// Name: pulumi.String("my-target-proxy"), +// Region: pulumi.String("us-central1"), +// BackendService: backendService.ID(), +// }) +// if err != nil { +// return err +// } +// fwRuleTargetProxy, err := compute.NewForwardingRule(ctx, "fw_rule_target_proxy", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("fw-rule-target-proxy"), +// Region: pulumi.String("us-central1"), +// LoadBalancingScheme: pulumi.String("INTERNAL_MANAGED"), +// IpProtocol: pulumi.String("TCP"), +// PortRange: pulumi.String("443"), +// Target: targetProxy.ID(), +// Network: network.ID(), +// Subnetwork: subnet.ID(), +// NetworkTier: pulumi.String("PREMIUM"), +// }, pulumi.DependsOn([]pulumi.Resource{ +// proxySubnet, +// })) +// if err != nil { +// return err +// } +// privateZone, err := dns.NewManagedZone(ctx, "private_zone", &dns.ManagedZoneArgs{ +// Name: pulumi.String("my-dns-zone"), +// DnsName: pulumi.String("p.sourcemanager.dev."), +// Visibility: pulumi.String("private"), +// PrivateVisibilityConfig: &dns.ManagedZonePrivateVisibilityConfigArgs{ +// Networks: dns.ManagedZonePrivateVisibilityConfigNetworkArray{ +// &dns.ManagedZonePrivateVisibilityConfigNetworkArgs{ +// NetworkUrl: network.ID(), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = dns.NewRecordSet(ctx, "ssm_instance_html_record", &dns.RecordSetArgs{ +// Name: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) { +// return fmt.Sprintf("%v.", hostConfigs[0].Html), nil +// }).(pulumi.StringOutput), +// Type: pulumi.String("A"), +// Ttl: pulumi.Int(300), +// ManagedZone: privateZone.Name, +// Rrdatas: pulumi.StringArray{ +// fwRuleTargetProxy.IpAddress, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = dns.NewRecordSet(ctx, "ssm_instance_api_record", &dns.RecordSetArgs{ +// Name: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) { +// return fmt.Sprintf("%v.", hostConfigs[0].Api), nil +// }).(pulumi.StringOutput), +// Type: pulumi.String("A"), +// Ttl: pulumi.Int(300), +// ManagedZone: privateZone.Name, +// Rrdatas: pulumi.StringArray{ +// fwRuleTargetProxy.IpAddress, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = dns.NewRecordSet(ctx, "ssm_instance_git_record", &dns.RecordSetArgs{ +// Name: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) { +// return fmt.Sprintf("%v.", hostConfigs[0].GitHttp), nil +// }).(pulumi.StringOutput), +// Type: pulumi.String("A"), +// Ttl: pulumi.Int(300), +// ManagedZone: privateZone.Name, +// Rrdatas: pulumi.StringArray{ +// fwRuleTargetProxy.IpAddress, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// ### Secure Source Manager Instance Private Psc Endpoint +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/certificateauthority" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/dns" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securesourcemanager" +// "github.com/pulumi/pulumi-time/sdk/go/time" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// project, err := organizations.LookupProject(ctx, nil, nil) +// if err != nil { +// return err +// } +// caPool, err := certificateauthority.NewCaPool(ctx, "ca_pool", &certificateauthority.CaPoolArgs{ +// Name: pulumi.String("ca-pool"), +// Location: pulumi.String("us-central1"), +// Tier: pulumi.String("ENTERPRISE"), +// PublishingOptions: &certificateauthority.CaPoolPublishingOptionsArgs{ +// PublishCaCert: pulumi.Bool(true), +// PublishCrl: pulumi.Bool(true), +// }, +// }) +// if err != nil { +// return err +// } +// rootCa, err := certificateauthority.NewAuthority(ctx, "root_ca", &certificateauthority.AuthorityArgs{ +// Pool: caPool.Name, +// CertificateAuthorityId: pulumi.String("root-ca"), +// Location: pulumi.String("us-central1"), +// Config: &certificateauthority.AuthorityConfigArgs{ +// SubjectConfig: &certificateauthority.AuthorityConfigSubjectConfigArgs{ +// Subject: &certificateauthority.AuthorityConfigSubjectConfigSubjectArgs{ +// Organization: pulumi.String("google"), +// CommonName: pulumi.String("my-certificate-authority"), +// }, +// }, +// X509Config: &certificateauthority.AuthorityConfigX509ConfigArgs{ +// CaOptions: &certificateauthority.AuthorityConfigX509ConfigCaOptionsArgs{ +// IsCa: pulumi.Bool(true), +// }, +// KeyUsage: &certificateauthority.AuthorityConfigX509ConfigKeyUsageArgs{ +// BaseKeyUsage: &certificateauthority.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs{ +// CertSign: pulumi.Bool(true), +// CrlSign: pulumi.Bool(true), +// }, +// ExtendedKeyUsage: &certificateauthority.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs{ +// ServerAuth: pulumi.Bool(true), +// }, +// }, +// }, +// }, +// KeySpec: &certificateauthority.AuthorityKeySpecArgs{ +// Algorithm: pulumi.String("RSA_PKCS1_4096_SHA256"), +// }, +// DeletionProtection: pulumi.Bool(false), +// IgnoreActiveCertificatesOnDeletion: pulumi.Bool(true), +// SkipGracePeriod: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// caPoolBinding, err := certificateauthority.NewCaPoolIamBinding(ctx, "ca_pool_binding", &certificateauthority.CaPoolIamBindingArgs{ +// CaPool: caPool.ID(), +// Role: pulumi.String("roles/privateca.certificateRequester"), +// Members: pulumi.StringArray{ +// pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-sourcemanager.iam.gserviceaccount.com", project.Number)), +// }, +// }) +// if err != nil { +// return err +// } +// // ca pool IAM permissions can take time to propagate +// wait120Seconds, err := time.NewSleep(ctx, "wait_120_seconds", &time.SleepArgs{ +// CreateDuration: "120s", +// }, pulumi.DependsOn([]pulumi.Resource{ +// caPoolBinding, +// })) +// if err != nil { +// return err +// } +// // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api +// _, err = securesourcemanager.NewInstance(ctx, "default", &securesourcemanager.InstanceArgs{ +// InstanceId: pulumi.String("my-instance"), +// Location: pulumi.String("us-central1"), +// PrivateConfig: &securesourcemanager.InstancePrivateConfigArgs{ +// IsPrivate: pulumi.Bool(true), +// CaPool: caPool.ID(), +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// rootCa, +// wait120Seconds, +// })) +// if err != nil { +// return err +// } +// // Connect SSM private instance with endpoint. +// network, err := compute.NewNetwork(ctx, "network", &compute.NetworkArgs{ +// Name: pulumi.String("my-network"), +// AutoCreateSubnetworks: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// subnet, err := compute.NewSubnetwork(ctx, "subnet", &compute.SubnetworkArgs{ +// Name: pulumi.String("my-subnet"), +// Region: pulumi.String("us-central1"), +// Network: network.ID(), +// IpCidrRange: pulumi.String("10.0.60.0/24"), +// PrivateIpGoogleAccess: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// address, err := compute.NewAddress(ctx, "address", &compute.AddressArgs{ +// Name: pulumi.String("my-address"), +// Region: pulumi.String("us-central1"), +// Address: pulumi.String("10.0.60.100"), +// AddressType: pulumi.String("INTERNAL"), +// Subnetwork: subnet.ID(), +// }) +// if err != nil { +// return err +// } +// fwRuleServiceAttachment, err := compute.NewForwardingRule(ctx, "fw_rule_service_attachment", &compute.ForwardingRuleArgs{ +// Name: pulumi.String("fw-rule-service-attachment"), +// Region: pulumi.String("us-central1"), +// LoadBalancingScheme: pulumi.String(""), +// IpAddress: address.ID(), +// Network: network.ID(), +// Target: pulumi.String(_default.PrivateConfig.ApplyT(func(privateConfig securesourcemanager.InstancePrivateConfig) (*string, error) { +// return &privateConfig.HttpServiceAttachment, nil +// }).(pulumi.StringPtrOutput)), +// }) +// if err != nil { +// return err +// } +// privateZone, err := dns.NewManagedZone(ctx, "private_zone", &dns.ManagedZoneArgs{ +// Name: pulumi.String("my-dns-zone"), +// DnsName: pulumi.String("p.sourcemanager.dev."), +// Visibility: pulumi.String("private"), +// PrivateVisibilityConfig: &dns.ManagedZonePrivateVisibilityConfigArgs{ +// Networks: dns.ManagedZonePrivateVisibilityConfigNetworkArray{ +// &dns.ManagedZonePrivateVisibilityConfigNetworkArgs{ +// NetworkUrl: network.ID(), +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = dns.NewRecordSet(ctx, "ssm_instance_html_record", &dns.RecordSetArgs{ +// Name: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) { +// return fmt.Sprintf("%v.", hostConfigs[0].Html), nil +// }).(pulumi.StringOutput), +// Type: pulumi.String("A"), +// Ttl: pulumi.Int(300), +// ManagedZone: privateZone.Name, +// Rrdatas: pulumi.StringArray{ +// fwRuleServiceAttachment.IpAddress, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = dns.NewRecordSet(ctx, "ssm_instance_api_record", &dns.RecordSetArgs{ +// Name: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) { +// return fmt.Sprintf("%v.", hostConfigs[0].Api), nil +// }).(pulumi.StringOutput), +// Type: pulumi.String("A"), +// Ttl: pulumi.Int(300), +// ManagedZone: privateZone.Name, +// Rrdatas: pulumi.StringArray{ +// fwRuleServiceAttachment.IpAddress, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = dns.NewRecordSet(ctx, "ssm_instance_git_record", &dns.RecordSetArgs{ +// Name: _default.HostConfigs.ApplyT(func(hostConfigs []securesourcemanager.InstanceHostConfig) (string, error) { +// return fmt.Sprintf("%v.", hostConfigs[0].GitHttp), nil +// }).(pulumi.StringOutput), +// Type: pulumi.String("A"), +// Ttl: pulumi.Int(300), +// ManagedZone: privateZone.Name, +// Rrdatas: pulumi.StringArray{ +// fwRuleServiceAttachment.IpAddress, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // diff --git a/sdk/go/gcp/securitycenter/init.go b/sdk/go/gcp/securitycenter/init.go index a532d46535..b1b36d03ff 100644 --- a/sdk/go/gcp/securitycenter/init.go +++ b/sdk/go/gcp/securitycenter/init.go @@ -57,6 +57,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &SourceIamMember{} case "gcp:securitycenter/sourceIamPolicy:SourceIamPolicy": r = &SourceIamPolicy{} + case "gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig": + r = &V2OrganizationMuteConfig{} case "gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig": r = &V2OrganizationNotificationConfig{} default: @@ -162,6 +164,11 @@ func init() { "securitycenter/sourceIamPolicy", &module{version}, ) + pulumi.RegisterResourceModule( + "gcp", + "securitycenter/v2OrganizationMuteConfig", + &module{version}, + ) pulumi.RegisterResourceModule( "gcp", "securitycenter/v2OrganizationNotificationConfig", diff --git a/sdk/go/gcp/securitycenter/v2organizationMuteConfig.go b/sdk/go/gcp/securitycenter/v2organizationMuteConfig.go new file mode 100644 index 0000000000..954694aeb0 --- /dev/null +++ b/sdk/go/gcp/securitycenter/v2organizationMuteConfig.go @@ -0,0 +1,479 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package securitycenter + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Mute Findings is a volume management feature in Security Command Center +// that lets you manually or programmatically hide irrelevant findings, +// and create filters to automatically silence existing and future +// findings based on criteria you specify. +// +// To get more information about OrganizationMuteConfig, see: +// +// * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.muteConfigs) +// +// ## Example Usage +// +// ### Scc V2 Organization Mute Config Basic +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/securitycenter" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := securitycenter.NewV2OrganizationMuteConfig(ctx, "default", &securitycenter.V2OrganizationMuteConfigArgs{ +// MuteConfigId: pulumi.String("my-config"), +// Organization: pulumi.String("123456789"), +// Location: pulumi.String("global"), +// Description: pulumi.String("My custom Cloud Security Command Center Finding Organization mute Configuration"), +// Filter: pulumi.String("severity = \"HIGH\""), +// Type: pulumi.String("STATIC"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// OrganizationMuteConfig can be imported using any of these accepted formats: +// +// * `organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}` +// +// * `{{organization}}/{{location}}/{{mute_config_id}}` +// +// When using the `pulumi import` command, OrganizationMuteConfig can be imported using one of the formats above. For example: +// +// ```sh +// $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}} +// ``` +// +// ```sh +// $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default {{organization}}/{{location}}/{{mute_config_id}} +// ``` +type V2OrganizationMuteConfig struct { + pulumi.CustomResourceState + + // The time at which the mute config was created. This field is set by + // the server and will be ignored if provided on config creation. + CreateTime pulumi.StringOutput `pulumi:"createTime"` + // A description of the mute config. + Description pulumi.StringPtrOutput `pulumi:"description"` + // An expression that defines the filter to apply across create/update + // events of findings. While creating a filter string, be mindful of + // the scope in which the mute configuration is being created. E.g., + // If a filter contains project = X but is created under the + // project = Y scope, it might not match any findings. + Filter pulumi.StringOutput `pulumi:"filter"` + // location Id is provided by organization. If not provided, Use global as default. + Location pulumi.StringPtrOutput `pulumi:"location"` + // Email address of the user who last edited the mute config. This + // field is set by the server and will be ignored if provided on + // config creation or update. + MostRecentEditor pulumi.StringOutput `pulumi:"mostRecentEditor"` + // Unique identifier provided by the client within the parent scope. + // + // *** + MuteConfigId pulumi.StringOutput `pulumi:"muteConfigId"` + // Name of the mute config. Its format is + // organizations/{organization}/locations/global/muteConfigs/{configId}, + // folders/{folder}/locations/global/muteConfigs/{configId}, + // or projects/{project}/locations/global/muteConfigs/{configId} + Name pulumi.StringOutput `pulumi:"name"` + // The organization whose Cloud Security Command Center the Mute + // Config lives in. + Organization pulumi.StringOutput `pulumi:"organization"` + // The type of the mute config. + Type pulumi.StringOutput `pulumi:"type"` + // Output only. The most recent time at which the mute config was + // updated. This field is set by the server and will be ignored if + // provided on config creation or update. + UpdateTime pulumi.StringOutput `pulumi:"updateTime"` +} + +// NewV2OrganizationMuteConfig registers a new resource with the given unique name, arguments, and options. +func NewV2OrganizationMuteConfig(ctx *pulumi.Context, + name string, args *V2OrganizationMuteConfigArgs, opts ...pulumi.ResourceOption) (*V2OrganizationMuteConfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Filter == nil { + return nil, errors.New("invalid value for required argument 'Filter'") + } + if args.MuteConfigId == nil { + return nil, errors.New("invalid value for required argument 'MuteConfigId'") + } + if args.Organization == nil { + return nil, errors.New("invalid value for required argument 'Organization'") + } + if args.Type == nil { + return nil, errors.New("invalid value for required argument 'Type'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource V2OrganizationMuteConfig + err := ctx.RegisterResource("gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetV2OrganizationMuteConfig gets an existing V2OrganizationMuteConfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetV2OrganizationMuteConfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *V2OrganizationMuteConfigState, opts ...pulumi.ResourceOption) (*V2OrganizationMuteConfig, error) { + var resource V2OrganizationMuteConfig + err := ctx.ReadResource("gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering V2OrganizationMuteConfig resources. +type v2organizationMuteConfigState struct { + // The time at which the mute config was created. This field is set by + // the server and will be ignored if provided on config creation. + CreateTime *string `pulumi:"createTime"` + // A description of the mute config. + Description *string `pulumi:"description"` + // An expression that defines the filter to apply across create/update + // events of findings. While creating a filter string, be mindful of + // the scope in which the mute configuration is being created. E.g., + // If a filter contains project = X but is created under the + // project = Y scope, it might not match any findings. + Filter *string `pulumi:"filter"` + // location Id is provided by organization. If not provided, Use global as default. + Location *string `pulumi:"location"` + // Email address of the user who last edited the mute config. This + // field is set by the server and will be ignored if provided on + // config creation or update. + MostRecentEditor *string `pulumi:"mostRecentEditor"` + // Unique identifier provided by the client within the parent scope. + // + // *** + MuteConfigId *string `pulumi:"muteConfigId"` + // Name of the mute config. Its format is + // organizations/{organization}/locations/global/muteConfigs/{configId}, + // folders/{folder}/locations/global/muteConfigs/{configId}, + // or projects/{project}/locations/global/muteConfigs/{configId} + Name *string `pulumi:"name"` + // The organization whose Cloud Security Command Center the Mute + // Config lives in. + Organization *string `pulumi:"organization"` + // The type of the mute config. + Type *string `pulumi:"type"` + // Output only. The most recent time at which the mute config was + // updated. This field is set by the server and will be ignored if + // provided on config creation or update. + UpdateTime *string `pulumi:"updateTime"` +} + +type V2OrganizationMuteConfigState struct { + // The time at which the mute config was created. This field is set by + // the server and will be ignored if provided on config creation. + CreateTime pulumi.StringPtrInput + // A description of the mute config. + Description pulumi.StringPtrInput + // An expression that defines the filter to apply across create/update + // events of findings. While creating a filter string, be mindful of + // the scope in which the mute configuration is being created. E.g., + // If a filter contains project = X but is created under the + // project = Y scope, it might not match any findings. + Filter pulumi.StringPtrInput + // location Id is provided by organization. If not provided, Use global as default. + Location pulumi.StringPtrInput + // Email address of the user who last edited the mute config. This + // field is set by the server and will be ignored if provided on + // config creation or update. + MostRecentEditor pulumi.StringPtrInput + // Unique identifier provided by the client within the parent scope. + // + // *** + MuteConfigId pulumi.StringPtrInput + // Name of the mute config. Its format is + // organizations/{organization}/locations/global/muteConfigs/{configId}, + // folders/{folder}/locations/global/muteConfigs/{configId}, + // or projects/{project}/locations/global/muteConfigs/{configId} + Name pulumi.StringPtrInput + // The organization whose Cloud Security Command Center the Mute + // Config lives in. + Organization pulumi.StringPtrInput + // The type of the mute config. + Type pulumi.StringPtrInput + // Output only. The most recent time at which the mute config was + // updated. This field is set by the server and will be ignored if + // provided on config creation or update. + UpdateTime pulumi.StringPtrInput +} + +func (V2OrganizationMuteConfigState) ElementType() reflect.Type { + return reflect.TypeOf((*v2organizationMuteConfigState)(nil)).Elem() +} + +type v2organizationMuteConfigArgs struct { + // A description of the mute config. + Description *string `pulumi:"description"` + // An expression that defines the filter to apply across create/update + // events of findings. While creating a filter string, be mindful of + // the scope in which the mute configuration is being created. E.g., + // If a filter contains project = X but is created under the + // project = Y scope, it might not match any findings. + Filter string `pulumi:"filter"` + // location Id is provided by organization. If not provided, Use global as default. + Location *string `pulumi:"location"` + // Unique identifier provided by the client within the parent scope. + // + // *** + MuteConfigId string `pulumi:"muteConfigId"` + // The organization whose Cloud Security Command Center the Mute + // Config lives in. + Organization string `pulumi:"organization"` + // The type of the mute config. + Type string `pulumi:"type"` +} + +// The set of arguments for constructing a V2OrganizationMuteConfig resource. +type V2OrganizationMuteConfigArgs struct { + // A description of the mute config. + Description pulumi.StringPtrInput + // An expression that defines the filter to apply across create/update + // events of findings. While creating a filter string, be mindful of + // the scope in which the mute configuration is being created. E.g., + // If a filter contains project = X but is created under the + // project = Y scope, it might not match any findings. + Filter pulumi.StringInput + // location Id is provided by organization. If not provided, Use global as default. + Location pulumi.StringPtrInput + // Unique identifier provided by the client within the parent scope. + // + // *** + MuteConfigId pulumi.StringInput + // The organization whose Cloud Security Command Center the Mute + // Config lives in. + Organization pulumi.StringInput + // The type of the mute config. + Type pulumi.StringInput +} + +func (V2OrganizationMuteConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*v2organizationMuteConfigArgs)(nil)).Elem() +} + +type V2OrganizationMuteConfigInput interface { + pulumi.Input + + ToV2OrganizationMuteConfigOutput() V2OrganizationMuteConfigOutput + ToV2OrganizationMuteConfigOutputWithContext(ctx context.Context) V2OrganizationMuteConfigOutput +} + +func (*V2OrganizationMuteConfig) ElementType() reflect.Type { + return reflect.TypeOf((**V2OrganizationMuteConfig)(nil)).Elem() +} + +func (i *V2OrganizationMuteConfig) ToV2OrganizationMuteConfigOutput() V2OrganizationMuteConfigOutput { + return i.ToV2OrganizationMuteConfigOutputWithContext(context.Background()) +} + +func (i *V2OrganizationMuteConfig) ToV2OrganizationMuteConfigOutputWithContext(ctx context.Context) V2OrganizationMuteConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(V2OrganizationMuteConfigOutput) +} + +// V2OrganizationMuteConfigArrayInput is an input type that accepts V2OrganizationMuteConfigArray and V2OrganizationMuteConfigArrayOutput values. +// You can construct a concrete instance of `V2OrganizationMuteConfigArrayInput` via: +// +// V2OrganizationMuteConfigArray{ V2OrganizationMuteConfigArgs{...} } +type V2OrganizationMuteConfigArrayInput interface { + pulumi.Input + + ToV2OrganizationMuteConfigArrayOutput() V2OrganizationMuteConfigArrayOutput + ToV2OrganizationMuteConfigArrayOutputWithContext(context.Context) V2OrganizationMuteConfigArrayOutput +} + +type V2OrganizationMuteConfigArray []V2OrganizationMuteConfigInput + +func (V2OrganizationMuteConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*V2OrganizationMuteConfig)(nil)).Elem() +} + +func (i V2OrganizationMuteConfigArray) ToV2OrganizationMuteConfigArrayOutput() V2OrganizationMuteConfigArrayOutput { + return i.ToV2OrganizationMuteConfigArrayOutputWithContext(context.Background()) +} + +func (i V2OrganizationMuteConfigArray) ToV2OrganizationMuteConfigArrayOutputWithContext(ctx context.Context) V2OrganizationMuteConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(V2OrganizationMuteConfigArrayOutput) +} + +// V2OrganizationMuteConfigMapInput is an input type that accepts V2OrganizationMuteConfigMap and V2OrganizationMuteConfigMapOutput values. +// You can construct a concrete instance of `V2OrganizationMuteConfigMapInput` via: +// +// V2OrganizationMuteConfigMap{ "key": V2OrganizationMuteConfigArgs{...} } +type V2OrganizationMuteConfigMapInput interface { + pulumi.Input + + ToV2OrganizationMuteConfigMapOutput() V2OrganizationMuteConfigMapOutput + ToV2OrganizationMuteConfigMapOutputWithContext(context.Context) V2OrganizationMuteConfigMapOutput +} + +type V2OrganizationMuteConfigMap map[string]V2OrganizationMuteConfigInput + +func (V2OrganizationMuteConfigMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*V2OrganizationMuteConfig)(nil)).Elem() +} + +func (i V2OrganizationMuteConfigMap) ToV2OrganizationMuteConfigMapOutput() V2OrganizationMuteConfigMapOutput { + return i.ToV2OrganizationMuteConfigMapOutputWithContext(context.Background()) +} + +func (i V2OrganizationMuteConfigMap) ToV2OrganizationMuteConfigMapOutputWithContext(ctx context.Context) V2OrganizationMuteConfigMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(V2OrganizationMuteConfigMapOutput) +} + +type V2OrganizationMuteConfigOutput struct{ *pulumi.OutputState } + +func (V2OrganizationMuteConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((**V2OrganizationMuteConfig)(nil)).Elem() +} + +func (o V2OrganizationMuteConfigOutput) ToV2OrganizationMuteConfigOutput() V2OrganizationMuteConfigOutput { + return o +} + +func (o V2OrganizationMuteConfigOutput) ToV2OrganizationMuteConfigOutputWithContext(ctx context.Context) V2OrganizationMuteConfigOutput { + return o +} + +// The time at which the mute config was created. This field is set by +// the server and will be ignored if provided on config creation. +func (o V2OrganizationMuteConfigOutput) CreateTime() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) +} + +// A description of the mute config. +func (o V2OrganizationMuteConfigOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) +} + +// An expression that defines the filter to apply across create/update +// events of findings. While creating a filter string, be mindful of +// the scope in which the mute configuration is being created. E.g., +// If a filter contains project = X but is created under the +// project = Y scope, it might not match any findings. +func (o V2OrganizationMuteConfigOutput) Filter() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.Filter }).(pulumi.StringOutput) +} + +// location Id is provided by organization. If not provided, Use global as default. +func (o V2OrganizationMuteConfigOutput) Location() pulumi.StringPtrOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringPtrOutput { return v.Location }).(pulumi.StringPtrOutput) +} + +// Email address of the user who last edited the mute config. This +// field is set by the server and will be ignored if provided on +// config creation or update. +func (o V2OrganizationMuteConfigOutput) MostRecentEditor() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.MostRecentEditor }).(pulumi.StringOutput) +} + +// Unique identifier provided by the client within the parent scope. +// +// *** +func (o V2OrganizationMuteConfigOutput) MuteConfigId() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.MuteConfigId }).(pulumi.StringOutput) +} + +// Name of the mute config. Its format is +// organizations/{organization}/locations/global/muteConfigs/{configId}, +// folders/{folder}/locations/global/muteConfigs/{configId}, +// or projects/{project}/locations/global/muteConfigs/{configId} +func (o V2OrganizationMuteConfigOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The organization whose Cloud Security Command Center the Mute +// Config lives in. +func (o V2OrganizationMuteConfigOutput) Organization() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.Organization }).(pulumi.StringOutput) +} + +// The type of the mute config. +func (o V2OrganizationMuteConfigOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) +} + +// Output only. The most recent time at which the mute config was +// updated. This field is set by the server and will be ignored if +// provided on config creation or update. +func (o V2OrganizationMuteConfigOutput) UpdateTime() pulumi.StringOutput { + return o.ApplyT(func(v *V2OrganizationMuteConfig) pulumi.StringOutput { return v.UpdateTime }).(pulumi.StringOutput) +} + +type V2OrganizationMuteConfigArrayOutput struct{ *pulumi.OutputState } + +func (V2OrganizationMuteConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*V2OrganizationMuteConfig)(nil)).Elem() +} + +func (o V2OrganizationMuteConfigArrayOutput) ToV2OrganizationMuteConfigArrayOutput() V2OrganizationMuteConfigArrayOutput { + return o +} + +func (o V2OrganizationMuteConfigArrayOutput) ToV2OrganizationMuteConfigArrayOutputWithContext(ctx context.Context) V2OrganizationMuteConfigArrayOutput { + return o +} + +func (o V2OrganizationMuteConfigArrayOutput) Index(i pulumi.IntInput) V2OrganizationMuteConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *V2OrganizationMuteConfig { + return vs[0].([]*V2OrganizationMuteConfig)[vs[1].(int)] + }).(V2OrganizationMuteConfigOutput) +} + +type V2OrganizationMuteConfigMapOutput struct{ *pulumi.OutputState } + +func (V2OrganizationMuteConfigMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*V2OrganizationMuteConfig)(nil)).Elem() +} + +func (o V2OrganizationMuteConfigMapOutput) ToV2OrganizationMuteConfigMapOutput() V2OrganizationMuteConfigMapOutput { + return o +} + +func (o V2OrganizationMuteConfigMapOutput) ToV2OrganizationMuteConfigMapOutputWithContext(ctx context.Context) V2OrganizationMuteConfigMapOutput { + return o +} + +func (o V2OrganizationMuteConfigMapOutput) MapIndex(k pulumi.StringInput) V2OrganizationMuteConfigOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *V2OrganizationMuteConfig { + return vs[0].(map[string]*V2OrganizationMuteConfig)[vs[1].(string)] + }).(V2OrganizationMuteConfigOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*V2OrganizationMuteConfigInput)(nil)).Elem(), &V2OrganizationMuteConfig{}) + pulumi.RegisterInputType(reflect.TypeOf((*V2OrganizationMuteConfigArrayInput)(nil)).Elem(), V2OrganizationMuteConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*V2OrganizationMuteConfigMapInput)(nil)).Elem(), V2OrganizationMuteConfigMap{}) + pulumi.RegisterOutputType(V2OrganizationMuteConfigOutput{}) + pulumi.RegisterOutputType(V2OrganizationMuteConfigArrayOutput{}) + pulumi.RegisterOutputType(V2OrganizationMuteConfigMapOutput{}) +} diff --git a/sdk/go/gcp/sql/databaseInstance.go b/sdk/go/gcp/sql/databaseInstance.go index b6e6404cff..4c6faee2f1 100644 --- a/sdk/go/gcp/sql/databaseInstance.go +++ b/sdk/go/gcp/sql/databaseInstance.go @@ -119,7 +119,7 @@ import ( // Tier: pulumi.String("db-f1-micro"), // IpConfiguration: &sql.DatabaseInstanceSettingsIpConfigurationArgs{ // Ipv4Enabled: pulumi.Bool(false), -// PrivateNetwork: privateNetwork.ID(), +// PrivateNetwork: privateNetwork.SelfLink, // EnablePrivatePathForGoogleCloudServices: pulumi.Bool(true), // }, // }, diff --git a/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go b/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go index 7dbc3b1d18..8bf9331ab1 100644 --- a/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go +++ b/sdk/go/gcp/vertex/aiFeatureOnlineStoreFeatureview.go @@ -286,8 +286,8 @@ import ( // return err // } // project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{ -// ProjectId: pulumi.String("tf-test_55138"), -// Name: pulumi.String("tf-test_37559"), +// ProjectId: pulumi.String("tf-test_13293"), +// Name: pulumi.String("tf-test_40289"), // OrgId: pulumi.String("123456789"), // BillingAccount: pulumi.String("000000-0000000-0000000-000000"), // }) diff --git a/sdk/go/gcp/vmwareengine/getPrivateCloud.go b/sdk/go/gcp/vmwareengine/getPrivateCloud.go index 0651631572..bc46853c63 100644 --- a/sdk/go/gcp/vmwareengine/getPrivateCloud.go +++ b/sdk/go/gcp/vmwareengine/getPrivateCloud.go @@ -67,20 +67,22 @@ type LookupPrivateCloudArgs struct { // A collection of values returned by getPrivateCloud. type LookupPrivateCloudResult struct { - Description string `pulumi:"description"` - Hcxes []GetPrivateCloudHcx `pulumi:"hcxes"` + DeletionDelayHours int `pulumi:"deletionDelayHours"` + Description string `pulumi:"description"` + Hcxes []GetPrivateCloudHcx `pulumi:"hcxes"` // The provider-assigned unique ID for this managed resource. - Id string `pulumi:"id"` - Location string `pulumi:"location"` - ManagementClusters []GetPrivateCloudManagementCluster `pulumi:"managementClusters"` - Name string `pulumi:"name"` - NetworkConfigs []GetPrivateCloudNetworkConfig `pulumi:"networkConfigs"` - Nsxes []GetPrivateCloudNsx `pulumi:"nsxes"` - Project *string `pulumi:"project"` - State string `pulumi:"state"` - Type string `pulumi:"type"` - Uid string `pulumi:"uid"` - Vcenters []GetPrivateCloudVcenter `pulumi:"vcenters"` + Id string `pulumi:"id"` + Location string `pulumi:"location"` + ManagementClusters []GetPrivateCloudManagementCluster `pulumi:"managementClusters"` + Name string `pulumi:"name"` + NetworkConfigs []GetPrivateCloudNetworkConfig `pulumi:"networkConfigs"` + Nsxes []GetPrivateCloudNsx `pulumi:"nsxes"` + Project *string `pulumi:"project"` + SendDeletionDelayHoursIfZero bool `pulumi:"sendDeletionDelayHoursIfZero"` + State string `pulumi:"state"` + Type string `pulumi:"type"` + Uid string `pulumi:"uid"` + Vcenters []GetPrivateCloudVcenter `pulumi:"vcenters"` } func LookupPrivateCloudOutput(ctx *pulumi.Context, args LookupPrivateCloudOutputArgs, opts ...pulumi.InvokeOption) LookupPrivateCloudResultOutput { @@ -128,6 +130,10 @@ func (o LookupPrivateCloudResultOutput) ToLookupPrivateCloudResultOutputWithCont return o } +func (o LookupPrivateCloudResultOutput) DeletionDelayHours() pulumi.IntOutput { + return o.ApplyT(func(v LookupPrivateCloudResult) int { return v.DeletionDelayHours }).(pulumi.IntOutput) +} + func (o LookupPrivateCloudResultOutput) Description() pulumi.StringOutput { return o.ApplyT(func(v LookupPrivateCloudResult) string { return v.Description }).(pulumi.StringOutput) } @@ -165,6 +171,10 @@ func (o LookupPrivateCloudResultOutput) Project() pulumi.StringPtrOutput { return o.ApplyT(func(v LookupPrivateCloudResult) *string { return v.Project }).(pulumi.StringPtrOutput) } +func (o LookupPrivateCloudResultOutput) SendDeletionDelayHoursIfZero() pulumi.BoolOutput { + return o.ApplyT(func(v LookupPrivateCloudResult) bool { return v.SendDeletionDelayHoursIfZero }).(pulumi.BoolOutput) +} + func (o LookupPrivateCloudResultOutput) State() pulumi.StringOutput { return o.ApplyT(func(v LookupPrivateCloudResult) string { return v.State }).(pulumi.StringOutput) } diff --git a/sdk/go/gcp/vmwareengine/privateCloud.go b/sdk/go/gcp/vmwareengine/privateCloud.go index 60b716cc9b..1983e27323 100644 --- a/sdk/go/gcp/vmwareengine/privateCloud.go +++ b/sdk/go/gcp/vmwareengine/privateCloud.go @@ -111,6 +111,8 @@ import ( // }, // }, // }, +// DeletionDelayHours: pulumi.Int(0), +// SendDeletionDelayHoursIfZero: pulumi.Bool(true), // }) // if err != nil { // return err @@ -147,6 +149,9 @@ import ( type PrivateCloud struct { pulumi.CustomResourceState + // The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + // starts the deletion request immediately. If no value is set, a default value is set at the API Level. + DeletionDelayHours pulumi.IntPtrOutput `pulumi:"deletionDelayHours"` // User-provided description for this private cloud. Description pulumi.StringPtrOutput `pulumi:"description"` // Details about a HCX Cloud Manager appliance. @@ -166,6 +171,10 @@ type PrivateCloud struct { // Structure is documented below. Nsxes PrivateCloudNsxArrayOutput `pulumi:"nsxes"` Project pulumi.StringOutput `pulumi:"project"` + // While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + // only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + // deletion_delay_hours. + SendDeletionDelayHoursIfZero pulumi.BoolPtrOutput `pulumi:"sendDeletionDelayHoursIfZero"` // State of the appliance. // Possible values are: `ACTIVE`, `CREATING`. State pulumi.StringOutput `pulumi:"state"` @@ -217,6 +226,9 @@ func GetPrivateCloud(ctx *pulumi.Context, // Input properties used for looking up and filtering PrivateCloud resources. type privateCloudState struct { + // The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + // starts the deletion request immediately. If no value is set, a default value is set at the API Level. + DeletionDelayHours *int `pulumi:"deletionDelayHours"` // User-provided description for this private cloud. Description *string `pulumi:"description"` // Details about a HCX Cloud Manager appliance. @@ -236,6 +248,10 @@ type privateCloudState struct { // Structure is documented below. Nsxes []PrivateCloudNsx `pulumi:"nsxes"` Project *string `pulumi:"project"` + // While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + // only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + // deletion_delay_hours. + SendDeletionDelayHoursIfZero *bool `pulumi:"sendDeletionDelayHoursIfZero"` // State of the appliance. // Possible values are: `ACTIVE`, `CREATING`. State *string `pulumi:"state"` @@ -249,6 +265,9 @@ type privateCloudState struct { } type PrivateCloudState struct { + // The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + // starts the deletion request immediately. If no value is set, a default value is set at the API Level. + DeletionDelayHours pulumi.IntPtrInput // User-provided description for this private cloud. Description pulumi.StringPtrInput // Details about a HCX Cloud Manager appliance. @@ -268,6 +287,10 @@ type PrivateCloudState struct { // Structure is documented below. Nsxes PrivateCloudNsxArrayInput Project pulumi.StringPtrInput + // While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + // only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + // deletion_delay_hours. + SendDeletionDelayHoursIfZero pulumi.BoolPtrInput // State of the appliance. // Possible values are: `ACTIVE`, `CREATING`. State pulumi.StringPtrInput @@ -285,6 +308,9 @@ func (PrivateCloudState) ElementType() reflect.Type { } type privateCloudArgs struct { + // The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + // starts the deletion request immediately. If no value is set, a default value is set at the API Level. + DeletionDelayHours *int `pulumi:"deletionDelayHours"` // User-provided description for this private cloud. Description *string `pulumi:"description"` // The location where the PrivateCloud should reside. @@ -298,12 +324,19 @@ type privateCloudArgs struct { // Structure is documented below. NetworkConfig PrivateCloudNetworkConfig `pulumi:"networkConfig"` Project *string `pulumi:"project"` + // While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + // only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + // deletion_delay_hours. + SendDeletionDelayHoursIfZero *bool `pulumi:"sendDeletionDelayHoursIfZero"` // Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] Type *string `pulumi:"type"` } // The set of arguments for constructing a PrivateCloud resource. type PrivateCloudArgs struct { + // The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + // starts the deletion request immediately. If no value is set, a default value is set at the API Level. + DeletionDelayHours pulumi.IntPtrInput // User-provided description for this private cloud. Description pulumi.StringPtrInput // The location where the PrivateCloud should reside. @@ -317,6 +350,10 @@ type PrivateCloudArgs struct { // Structure is documented below. NetworkConfig PrivateCloudNetworkConfigInput Project pulumi.StringPtrInput + // While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + // only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + // deletion_delay_hours. + SendDeletionDelayHoursIfZero pulumi.BoolPtrInput // Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] Type pulumi.StringPtrInput } @@ -408,6 +445,12 @@ func (o PrivateCloudOutput) ToPrivateCloudOutputWithContext(ctx context.Context) return o } +// The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 +// starts the deletion request immediately. If no value is set, a default value is set at the API Level. +func (o PrivateCloudOutput) DeletionDelayHours() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PrivateCloud) pulumi.IntPtrOutput { return v.DeletionDelayHours }).(pulumi.IntPtrOutput) +} + // User-provided description for this private cloud. func (o PrivateCloudOutput) Description() pulumi.StringPtrOutput { return o.ApplyT(func(v *PrivateCloud) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) @@ -451,6 +494,13 @@ func (o PrivateCloudOutput) Project() pulumi.StringOutput { return o.ApplyT(func(v *PrivateCloud) pulumi.StringOutput { return v.Project }).(pulumi.StringOutput) } +// While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is +// only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with +// deletion_delay_hours. +func (o PrivateCloudOutput) SendDeletionDelayHoursIfZero() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *PrivateCloud) pulumi.BoolPtrOutput { return v.SendDeletionDelayHoursIfZero }).(pulumi.BoolPtrOutput) +} + // State of the appliance. // Possible values are: `ACTIVE`, `CREATING`. func (o PrivateCloudOutput) State() pulumi.StringOutput { diff --git a/sdk/go/gcp/workbench/instance.go b/sdk/go/gcp/workbench/instance.go index e86243ec80..f560bc3de5 100644 --- a/sdk/go/gcp/workbench/instance.go +++ b/sdk/go/gcp/workbench/instance.go @@ -146,9 +146,6 @@ import ( // "terraform": pulumi.String("true"), // }, // }, -// InstanceOwners: pulumi.StringArray{ -// pulumi.String("my@service-account.com"), -// }, // Labels: pulumi.StringMap{ // "k": pulumi.String("val"), // }, @@ -170,6 +167,7 @@ import ( // import ( // // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/compute" +// "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount" // "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/workbench" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // @@ -193,6 +191,22 @@ import ( // if err != nil { // return err // } +// static, err := compute.NewAddress(ctx, "static", &compute.AddressArgs{ +// Name: pulumi.String("wbi-test-default"), +// }) +// if err != nil { +// return err +// } +// _, err = serviceaccount.NewIAMBinding(ctx, "act_as_permission", &serviceaccount.IAMBindingArgs{ +// ServiceAccountId: pulumi.String("projects/my-project-name/serviceAccounts/my@service-account.com"), +// Role: pulumi.String("roles/iam.serviceAccountUser"), +// Members: pulumi.StringArray{ +// pulumi.String("user:example@example.com"), +// }, +// }) +// if err != nil { +// return err +// } // _, err = workbench.NewInstance(ctx, "instance", &workbench.InstanceArgs{ // Name: pulumi.String("workbench-instance"), // Location: pulumi.String("us-central1-a"), @@ -232,6 +246,11 @@ import ( // Network: myNetwork.ID(), // Subnet: mySubnetwork.ID(), // NicType: pulumi.String("GVNIC"), +// AccessConfigs: workbench.InstanceGceSetupNetworkInterfaceAccessConfigArray{ +// &workbench.InstanceGceSetupNetworkInterfaceAccessConfigArgs{ +// ExternalIp: static.Address, +// }, +// }, // }, // }, // Metadata: pulumi.StringMap{ @@ -245,7 +264,7 @@ import ( // }, // DisableProxyAccess: pulumi.Bool(true), // InstanceOwners: pulumi.StringArray{ -// pulumi.String("my@service-account.com"), +// pulumi.String("example@example.com"), // }, // Labels: pulumi.StringMap{ // "k": pulumi.String("val"), diff --git a/sdk/go/gcp/workbench/pulumiTypes.go b/sdk/go/gcp/workbench/pulumiTypes.go index 4aa3554649..4a97c866b2 100644 --- a/sdk/go/gcp/workbench/pulumiTypes.go +++ b/sdk/go/gcp/workbench/pulumiTypes.go @@ -1152,6 +1152,12 @@ func (o InstanceGceSetupDataDisksPtrOutput) KmsKey() pulumi.StringPtrOutput { } type InstanceGceSetupNetworkInterface struct { + // Optional. An array of configurations for this interface. Currently, only one access + // config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + // instance will have an external internet access through an ephemeral + // external IP address. + // Structure is documented below. + AccessConfigs []InstanceGceSetupNetworkInterfaceAccessConfig `pulumi:"accessConfigs"` // Optional. The name of the VPC that this VM instance is in. Network *string `pulumi:"network"` // Optional. The type of vNIC to be used on this interface. This @@ -1174,6 +1180,12 @@ type InstanceGceSetupNetworkInterfaceInput interface { } type InstanceGceSetupNetworkInterfaceArgs struct { + // Optional. An array of configurations for this interface. Currently, only one access + // config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + // instance will have an external internet access through an ephemeral + // external IP address. + // Structure is documented below. + AccessConfigs InstanceGceSetupNetworkInterfaceAccessConfigArrayInput `pulumi:"accessConfigs"` // Optional. The name of the VPC that this VM instance is in. Network pulumi.StringPtrInput `pulumi:"network"` // Optional. The type of vNIC to be used on this interface. This @@ -1235,6 +1247,17 @@ func (o InstanceGceSetupNetworkInterfaceOutput) ToInstanceGceSetupNetworkInterfa return o } +// Optional. An array of configurations for this interface. Currently, only one access +// config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the +// instance will have an external internet access through an ephemeral +// external IP address. +// Structure is documented below. +func (o InstanceGceSetupNetworkInterfaceOutput) AccessConfigs() InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput { + return o.ApplyT(func(v InstanceGceSetupNetworkInterface) []InstanceGceSetupNetworkInterfaceAccessConfig { + return v.AccessConfigs + }).(InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput) +} + // Optional. The name of the VPC that this VM instance is in. func (o InstanceGceSetupNetworkInterfaceOutput) Network() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceGceSetupNetworkInterface) *string { return v.Network }).(pulumi.StringPtrOutput) @@ -1272,6 +1295,115 @@ func (o InstanceGceSetupNetworkInterfaceArrayOutput) Index(i pulumi.IntInput) In }).(InstanceGceSetupNetworkInterfaceOutput) } +type InstanceGceSetupNetworkInterfaceAccessConfig struct { + // An external IP address associated with this instance. Specify an unused + // static external IP address available to the project or leave this field + // undefined to use an IP from a shared ephemeral IP address pool. If you + // specify a static external IP address, it must live in the same region as + // the zone of the instance. + ExternalIp string `pulumi:"externalIp"` +} + +// InstanceGceSetupNetworkInterfaceAccessConfigInput is an input type that accepts InstanceGceSetupNetworkInterfaceAccessConfigArgs and InstanceGceSetupNetworkInterfaceAccessConfigOutput values. +// You can construct a concrete instance of `InstanceGceSetupNetworkInterfaceAccessConfigInput` via: +// +// InstanceGceSetupNetworkInterfaceAccessConfigArgs{...} +type InstanceGceSetupNetworkInterfaceAccessConfigInput interface { + pulumi.Input + + ToInstanceGceSetupNetworkInterfaceAccessConfigOutput() InstanceGceSetupNetworkInterfaceAccessConfigOutput + ToInstanceGceSetupNetworkInterfaceAccessConfigOutputWithContext(context.Context) InstanceGceSetupNetworkInterfaceAccessConfigOutput +} + +type InstanceGceSetupNetworkInterfaceAccessConfigArgs struct { + // An external IP address associated with this instance. Specify an unused + // static external IP address available to the project or leave this field + // undefined to use an IP from a shared ephemeral IP address pool. If you + // specify a static external IP address, it must live in the same region as + // the zone of the instance. + ExternalIp pulumi.StringInput `pulumi:"externalIp"` +} + +func (InstanceGceSetupNetworkInterfaceAccessConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceGceSetupNetworkInterfaceAccessConfig)(nil)).Elem() +} + +func (i InstanceGceSetupNetworkInterfaceAccessConfigArgs) ToInstanceGceSetupNetworkInterfaceAccessConfigOutput() InstanceGceSetupNetworkInterfaceAccessConfigOutput { + return i.ToInstanceGceSetupNetworkInterfaceAccessConfigOutputWithContext(context.Background()) +} + +func (i InstanceGceSetupNetworkInterfaceAccessConfigArgs) ToInstanceGceSetupNetworkInterfaceAccessConfigOutputWithContext(ctx context.Context) InstanceGceSetupNetworkInterfaceAccessConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceGceSetupNetworkInterfaceAccessConfigOutput) +} + +// InstanceGceSetupNetworkInterfaceAccessConfigArrayInput is an input type that accepts InstanceGceSetupNetworkInterfaceAccessConfigArray and InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput values. +// You can construct a concrete instance of `InstanceGceSetupNetworkInterfaceAccessConfigArrayInput` via: +// +// InstanceGceSetupNetworkInterfaceAccessConfigArray{ InstanceGceSetupNetworkInterfaceAccessConfigArgs{...} } +type InstanceGceSetupNetworkInterfaceAccessConfigArrayInput interface { + pulumi.Input + + ToInstanceGceSetupNetworkInterfaceAccessConfigArrayOutput() InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput + ToInstanceGceSetupNetworkInterfaceAccessConfigArrayOutputWithContext(context.Context) InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput +} + +type InstanceGceSetupNetworkInterfaceAccessConfigArray []InstanceGceSetupNetworkInterfaceAccessConfigInput + +func (InstanceGceSetupNetworkInterfaceAccessConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InstanceGceSetupNetworkInterfaceAccessConfig)(nil)).Elem() +} + +func (i InstanceGceSetupNetworkInterfaceAccessConfigArray) ToInstanceGceSetupNetworkInterfaceAccessConfigArrayOutput() InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput { + return i.ToInstanceGceSetupNetworkInterfaceAccessConfigArrayOutputWithContext(context.Background()) +} + +func (i InstanceGceSetupNetworkInterfaceAccessConfigArray) ToInstanceGceSetupNetworkInterfaceAccessConfigArrayOutputWithContext(ctx context.Context) InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput) +} + +type InstanceGceSetupNetworkInterfaceAccessConfigOutput struct{ *pulumi.OutputState } + +func (InstanceGceSetupNetworkInterfaceAccessConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceGceSetupNetworkInterfaceAccessConfig)(nil)).Elem() +} + +func (o InstanceGceSetupNetworkInterfaceAccessConfigOutput) ToInstanceGceSetupNetworkInterfaceAccessConfigOutput() InstanceGceSetupNetworkInterfaceAccessConfigOutput { + return o +} + +func (o InstanceGceSetupNetworkInterfaceAccessConfigOutput) ToInstanceGceSetupNetworkInterfaceAccessConfigOutputWithContext(ctx context.Context) InstanceGceSetupNetworkInterfaceAccessConfigOutput { + return o +} + +// An external IP address associated with this instance. Specify an unused +// static external IP address available to the project or leave this field +// undefined to use an IP from a shared ephemeral IP address pool. If you +// specify a static external IP address, it must live in the same region as +// the zone of the instance. +func (o InstanceGceSetupNetworkInterfaceAccessConfigOutput) ExternalIp() pulumi.StringOutput { + return o.ApplyT(func(v InstanceGceSetupNetworkInterfaceAccessConfig) string { return v.ExternalIp }).(pulumi.StringOutput) +} + +type InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput struct{ *pulumi.OutputState } + +func (InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InstanceGceSetupNetworkInterfaceAccessConfig)(nil)).Elem() +} + +func (o InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput) ToInstanceGceSetupNetworkInterfaceAccessConfigArrayOutput() InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput { + return o +} + +func (o InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput) ToInstanceGceSetupNetworkInterfaceAccessConfigArrayOutputWithContext(ctx context.Context) InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput { + return o +} + +func (o InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput) Index(i pulumi.IntInput) InstanceGceSetupNetworkInterfaceAccessConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceGceSetupNetworkInterfaceAccessConfig { + return vs[0].([]InstanceGceSetupNetworkInterfaceAccessConfig)[vs[1].(int)] + }).(InstanceGceSetupNetworkInterfaceAccessConfigOutput) +} + type InstanceGceSetupServiceAccount struct { // Optional. Email address of the service account. Email *string `pulumi:"email"` @@ -2376,6 +2508,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupDataDisksPtrInput)(nil)).Elem(), InstanceGceSetupDataDisksArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupNetworkInterfaceInput)(nil)).Elem(), InstanceGceSetupNetworkInterfaceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupNetworkInterfaceArrayInput)(nil)).Elem(), InstanceGceSetupNetworkInterfaceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupNetworkInterfaceAccessConfigInput)(nil)).Elem(), InstanceGceSetupNetworkInterfaceAccessConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupNetworkInterfaceAccessConfigArrayInput)(nil)).Elem(), InstanceGceSetupNetworkInterfaceAccessConfigArray{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupServiceAccountInput)(nil)).Elem(), InstanceGceSetupServiceAccountArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupServiceAccountArrayInput)(nil)).Elem(), InstanceGceSetupServiceAccountArray{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceGceSetupShieldedInstanceConfigInput)(nil)).Elem(), InstanceGceSetupShieldedInstanceConfigArgs{}) @@ -2402,6 +2536,8 @@ func init() { pulumi.RegisterOutputType(InstanceGceSetupDataDisksPtrOutput{}) pulumi.RegisterOutputType(InstanceGceSetupNetworkInterfaceOutput{}) pulumi.RegisterOutputType(InstanceGceSetupNetworkInterfaceArrayOutput{}) + pulumi.RegisterOutputType(InstanceGceSetupNetworkInterfaceAccessConfigOutput{}) + pulumi.RegisterOutputType(InstanceGceSetupNetworkInterfaceAccessConfigArrayOutput{}) pulumi.RegisterOutputType(InstanceGceSetupServiceAccountOutput{}) pulumi.RegisterOutputType(InstanceGceSetupServiceAccountArrayOutput{}) pulumi.RegisterOutputType(InstanceGceSetupShieldedInstanceConfigOutput{}) diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 342039df40..6aa0ca4529 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -44,7 +44,7 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:pulumi:0.12.0") + implementation("com.pulumi:pulumi:0.13.0") } task sourcesJar(type: Jar) { @@ -150,4 +150,4 @@ if (signingKey) { useInMemoryPgpKeys(signingKey, signingPassword) sign publishing.publications.mainPublication } -} \ No newline at end of file +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/Provider.java b/sdk/java/src/main/java/com/pulumi/gcp/Provider.java index 612d04a3cd..07674b3ed8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/Provider.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/Provider.java @@ -1042,7 +1042,14 @@ public Provider(String name, @Nullable ProviderArgs args) { * @param options A bag of options that control this resource's behavior. */ public Provider(String name, @Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp", name, args == null ? ProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private static ProviderArgs makeArgs(@Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProviderArgs.Empty : args; } private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevel.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevel.java index cd8b738901..5940f4ea95 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevel.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevel.java @@ -231,13 +231,20 @@ public AccessLevel(String name, AccessLevelArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessLevel(String name, AccessLevelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/accessLevel:AccessLevel", name, args == null ? AccessLevelArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/accessLevel:AccessLevel", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessLevel(String name, Output id, @Nullable AccessLevelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/accessLevel:AccessLevel", name, state, makeResourceOptions(options, id)); } + private static AccessLevelArgs makeArgs(AccessLevelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessLevelArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevelCondition.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevelCondition.java index a82ac3456b..d95309d2a2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevelCondition.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevelCondition.java @@ -331,13 +331,20 @@ public AccessLevelCondition(String name, AccessLevelConditionArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessLevelCondition(String name, AccessLevelConditionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/accessLevelCondition:AccessLevelCondition", name, args == null ? AccessLevelConditionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/accessLevelCondition:AccessLevelCondition", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessLevelCondition(String name, Output id, @Nullable AccessLevelConditionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/accessLevelCondition:AccessLevelCondition", name, state, makeResourceOptions(options, id)); } + private static AccessLevelConditionArgs makeArgs(AccessLevelConditionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessLevelConditionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevels.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevels.java index cad9eb3fb1..5d633d8281 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevels.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessLevels.java @@ -180,13 +180,20 @@ public AccessLevels(String name, AccessLevelsArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessLevels(String name, AccessLevelsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/accessLevels:AccessLevels", name, args == null ? AccessLevelsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/accessLevels:AccessLevels", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessLevels(String name, Output id, @Nullable AccessLevelsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/accessLevels:AccessLevels", name, state, makeResourceOptions(options, id)); } + private static AccessLevelsArgs makeArgs(AccessLevelsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessLevelsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicy.java index 7795c6d47c..7dd8ce0969 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicy.java @@ -245,13 +245,20 @@ public AccessPolicy(String name, AccessPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessPolicy(String name, AccessPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/accessPolicy:AccessPolicy", name, args == null ? AccessPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/accessPolicy:AccessPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessPolicy(String name, Output id, @Nullable AccessPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/accessPolicy:AccessPolicy", name, state, makeResourceOptions(options, id)); } + private static AccessPolicyArgs makeArgs(AccessPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamBinding.java index 8bfbcf30ab..57849a18f5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamBinding.java @@ -415,13 +415,20 @@ public AccessPolicyIamBinding(String name, AccessPolicyIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessPolicyIamBinding(String name, AccessPolicyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/accessPolicyIamBinding:AccessPolicyIamBinding", name, args == null ? AccessPolicyIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/accessPolicyIamBinding:AccessPolicyIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessPolicyIamBinding(String name, Output id, @Nullable AccessPolicyIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/accessPolicyIamBinding:AccessPolicyIamBinding", name, state, makeResourceOptions(options, id)); } + private static AccessPolicyIamBindingArgs makeArgs(AccessPolicyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessPolicyIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamMember.java index 2efbe015ce..33b699e79b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamMember.java @@ -414,13 +414,20 @@ public AccessPolicyIamMember(String name, AccessPolicyIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessPolicyIamMember(String name, AccessPolicyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/accessPolicyIamMember:AccessPolicyIamMember", name, args == null ? AccessPolicyIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/accessPolicyIamMember:AccessPolicyIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessPolicyIamMember(String name, Output id, @Nullable AccessPolicyIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/accessPolicyIamMember:AccessPolicyIamMember", name, state, makeResourceOptions(options, id)); } + private static AccessPolicyIamMemberArgs makeArgs(AccessPolicyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessPolicyIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamPolicy.java index aeb9e22047..36aa9e2a03 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AccessPolicyIamPolicy.java @@ -370,13 +370,20 @@ public AccessPolicyIamPolicy(String name, AccessPolicyIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessPolicyIamPolicy(String name, AccessPolicyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/accessPolicyIamPolicy:AccessPolicyIamPolicy", name, args == null ? AccessPolicyIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/accessPolicyIamPolicy:AccessPolicyIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessPolicyIamPolicy(String name, Output id, @Nullable AccessPolicyIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/accessPolicyIamPolicy:AccessPolicyIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AccessPolicyIamPolicyArgs makeArgs(AccessPolicyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessPolicyIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AuthorizedOrgsDesc.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AuthorizedOrgsDesc.java index 34f931a4f8..1c3346247a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AuthorizedOrgsDesc.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/AuthorizedOrgsDesc.java @@ -287,13 +287,20 @@ public AuthorizedOrgsDesc(String name, AuthorizedOrgsDescArgs args) { * @param options A bag of options that control this resource's behavior. */ public AuthorizedOrgsDesc(String name, AuthorizedOrgsDescArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/authorizedOrgsDesc:AuthorizedOrgsDesc", name, args == null ? AuthorizedOrgsDescArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/authorizedOrgsDesc:AuthorizedOrgsDesc", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AuthorizedOrgsDesc(String name, Output id, @Nullable AuthorizedOrgsDescState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/authorizedOrgsDesc:AuthorizedOrgsDesc", name, state, makeResourceOptions(options, id)); } + private static AuthorizedOrgsDescArgs makeArgs(AuthorizedOrgsDescArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AuthorizedOrgsDescArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/EgressPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/EgressPolicy.java index 5b2424c3ee..8430c8dea7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/EgressPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/EgressPolicy.java @@ -90,13 +90,20 @@ public EgressPolicy(String name, EgressPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public EgressPolicy(String name, EgressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/egressPolicy:EgressPolicy", name, args == null ? EgressPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/egressPolicy:EgressPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EgressPolicy(String name, Output id, @Nullable EgressPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/egressPolicy:EgressPolicy", name, state, makeResourceOptions(options, id)); } + private static EgressPolicyArgs makeArgs(EgressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EgressPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/GcpUserAccessBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/GcpUserAccessBinding.java index f062f9682b..847b820ff8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/GcpUserAccessBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/GcpUserAccessBinding.java @@ -196,13 +196,20 @@ public GcpUserAccessBinding(String name, GcpUserAccessBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public GcpUserAccessBinding(String name, GcpUserAccessBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/gcpUserAccessBinding:GcpUserAccessBinding", name, args == null ? GcpUserAccessBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/gcpUserAccessBinding:GcpUserAccessBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GcpUserAccessBinding(String name, Output id, @Nullable GcpUserAccessBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/gcpUserAccessBinding:GcpUserAccessBinding", name, state, makeResourceOptions(options, id)); } + private static GcpUserAccessBindingArgs makeArgs(GcpUserAccessBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GcpUserAccessBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/IngressPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/IngressPolicy.java index f1fef870ae..c9b392377e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/IngressPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/IngressPolicy.java @@ -90,13 +90,20 @@ public IngressPolicy(String name, IngressPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public IngressPolicy(String name, IngressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/ingressPolicy:IngressPolicy", name, args == null ? IngressPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/ingressPolicy:IngressPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IngressPolicy(String name, Output id, @Nullable IngressPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/ingressPolicy:IngressPolicy", name, state, makeResourceOptions(options, id)); } + private static IngressPolicyArgs makeArgs(IngressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IngressPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeter.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeter.java index a6003de022..50d9ac721f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeter.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeter.java @@ -560,13 +560,20 @@ public ServicePerimeter(String name, ServicePerimeterArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServicePerimeter(String name, ServicePerimeterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/servicePerimeter:ServicePerimeter", name, args == null ? ServicePerimeterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/servicePerimeter:ServicePerimeter", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServicePerimeter(String name, Output id, @Nullable ServicePerimeterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/servicePerimeter:ServicePerimeter", name, state, makeResourceOptions(options, id)); } + private static ServicePerimeterArgs makeArgs(ServicePerimeterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServicePerimeterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterDryRunResource.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterDryRunResource.java index 1455726a39..0bed42abf8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterDryRunResource.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterDryRunResource.java @@ -168,13 +168,20 @@ public ServicePerimeterDryRunResource(String name, ServicePerimeterDryRunResourc * @param options A bag of options that control this resource's behavior. */ public ServicePerimeterDryRunResource(String name, ServicePerimeterDryRunResourceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/servicePerimeterDryRunResource:ServicePerimeterDryRunResource", name, args == null ? ServicePerimeterDryRunResourceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/servicePerimeterDryRunResource:ServicePerimeterDryRunResource", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServicePerimeterDryRunResource(String name, Output id, @Nullable ServicePerimeterDryRunResourceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/servicePerimeterDryRunResource:ServicePerimeterDryRunResource", name, state, makeResourceOptions(options, id)); } + private static ServicePerimeterDryRunResourceArgs makeArgs(ServicePerimeterDryRunResourceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServicePerimeterDryRunResourceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterEgressPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterEgressPolicy.java index 5d61d1788e..8012083ab5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterEgressPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterEgressPolicy.java @@ -125,13 +125,20 @@ public ServicePerimeterEgressPolicy(String name, ServicePerimeterEgressPolicyArg * @param options A bag of options that control this resource's behavior. */ public ServicePerimeterEgressPolicy(String name, ServicePerimeterEgressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/servicePerimeterEgressPolicy:ServicePerimeterEgressPolicy", name, args == null ? ServicePerimeterEgressPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/servicePerimeterEgressPolicy:ServicePerimeterEgressPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServicePerimeterEgressPolicy(String name, Output id, @Nullable ServicePerimeterEgressPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/servicePerimeterEgressPolicy:ServicePerimeterEgressPolicy", name, state, makeResourceOptions(options, id)); } + private static ServicePerimeterEgressPolicyArgs makeArgs(ServicePerimeterEgressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServicePerimeterEgressPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterIngressPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterIngressPolicy.java index a02b082fde..da90ce55bb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterIngressPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterIngressPolicy.java @@ -128,13 +128,20 @@ public ServicePerimeterIngressPolicy(String name, ServicePerimeterIngressPolicyA * @param options A bag of options that control this resource's behavior. */ public ServicePerimeterIngressPolicy(String name, ServicePerimeterIngressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/servicePerimeterIngressPolicy:ServicePerimeterIngressPolicy", name, args == null ? ServicePerimeterIngressPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/servicePerimeterIngressPolicy:ServicePerimeterIngressPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServicePerimeterIngressPolicy(String name, Output id, @Nullable ServicePerimeterIngressPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/servicePerimeterIngressPolicy:ServicePerimeterIngressPolicy", name, state, makeResourceOptions(options, id)); } + private static ServicePerimeterIngressPolicyArgs makeArgs(ServicePerimeterIngressPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServicePerimeterIngressPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterResource.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterResource.java index c615c63903..834683ac6d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterResource.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeterResource.java @@ -167,13 +167,20 @@ public ServicePerimeterResource(String name, ServicePerimeterResourceArgs args) * @param options A bag of options that control this resource's behavior. */ public ServicePerimeterResource(String name, ServicePerimeterResourceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/servicePerimeterResource:ServicePerimeterResource", name, args == null ? ServicePerimeterResourceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/servicePerimeterResource:ServicePerimeterResource", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServicePerimeterResource(String name, Output id, @Nullable ServicePerimeterResourceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/servicePerimeterResource:ServicePerimeterResource", name, state, makeResourceOptions(options, id)); } + private static ServicePerimeterResourceArgs makeArgs(ServicePerimeterResourceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServicePerimeterResourceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeters.java b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeters.java index 53e0f47e0f..7d11b952c0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeters.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/accesscontextmanager/ServicePerimeters.java @@ -191,13 +191,20 @@ public ServicePerimeters(String name, ServicePerimetersArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServicePerimeters(String name, ServicePerimetersArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:accesscontextmanager/servicePerimeters:ServicePerimeters", name, args == null ? ServicePerimetersArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:accesscontextmanager/servicePerimeters:ServicePerimeters", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServicePerimeters(String name, Output id, @Nullable ServicePerimetersState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:accesscontextmanager/servicePerimeters:ServicePerimeters", name, state, makeResourceOptions(options, id)); } + private static ServicePerimetersArgs makeArgs(ServicePerimetersArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServicePerimetersArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java index 7ceb4d5b27..826258c207 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Domain.java @@ -280,13 +280,20 @@ public Domain(String name, DomainArgs args) { * @param options A bag of options that control this resource's behavior. */ public Domain(String name, DomainArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:activedirectory/domain:Domain", name, args == null ? DomainArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:activedirectory/domain:Domain", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Domain(String name, Output id, @Nullable DomainState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:activedirectory/domain:Domain", name, state, makeResourceOptions(options, id)); } + private static DomainArgs makeArgs(DomainArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DomainArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/DomainTrust.java b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/DomainTrust.java index a062675632..569ba8cdf8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/DomainTrust.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/DomainTrust.java @@ -243,13 +243,20 @@ public DomainTrust(String name, DomainTrustArgs args) { * @param options A bag of options that control this resource's behavior. */ public DomainTrust(String name, DomainTrustArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:activedirectory/domainTrust:DomainTrust", name, args == null ? DomainTrustArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:activedirectory/domainTrust:DomainTrust", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DomainTrust(String name, Output id, @Nullable DomainTrustState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:activedirectory/domainTrust:DomainTrust", name, state, makeResourceOptions(options, id)); } + private static DomainTrustArgs makeArgs(DomainTrustArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DomainTrustArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Peering.java b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Peering.java index 29cceddeed..6b660fd574 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Peering.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/activedirectory/Peering.java @@ -271,13 +271,20 @@ public Peering(String name, PeeringArgs args) { * @param options A bag of options that control this resource's behavior. */ public Peering(String name, PeeringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:activedirectory/peering:Peering", name, args == null ? PeeringArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:activedirectory/peering:Peering", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Peering(String name, Output id, @Nullable PeeringState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:activedirectory/peering:Peering", name, state, makeResourceOptions(options, id)); } + private static PeeringArgs makeArgs(PeeringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PeeringArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java index 109a2574ed..d731a4012c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Backup.java @@ -651,13 +651,20 @@ public Backup(String name, BackupArgs args) { * @param options A bag of options that control this resource's behavior. */ public Backup(String name, BackupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:alloydb/backup:Backup", name, args == null ? BackupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:alloydb/backup:Backup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Backup(String name, Output id, @Nullable BackupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:alloydb/backup:Backup", name, state, makeResourceOptions(options, id)); } + private static BackupArgs makeArgs(BackupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java index 114c783c29..cd2154d781 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Cluster.java @@ -951,13 +951,20 @@ public Cluster(String name, ClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public Cluster(String name, ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:alloydb/cluster:Cluster", name, args == null ? ClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:alloydb/cluster:Cluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Cluster(String name, Output id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:alloydb/cluster:Cluster", name, state, makeResourceOptions(options, id)); } + private static ClusterArgs makeArgs(ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java index 764ffb9a79..d3e3e8a96d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/Instance.java @@ -13,6 +13,7 @@ import com.pulumi.gcp.alloydb.outputs.InstanceClientConnectionConfig; import com.pulumi.gcp.alloydb.outputs.InstanceMachineConfig; import com.pulumi.gcp.alloydb.outputs.InstanceNetworkConfig; +import com.pulumi.gcp.alloydb.outputs.InstanceObservabilityConfig; import com.pulumi.gcp.alloydb.outputs.InstancePscInstanceConfig; import com.pulumi.gcp.alloydb.outputs.InstanceQueryInsightsConfig; import com.pulumi.gcp.alloydb.outputs.InstanceReadPoolConfig; @@ -502,6 +503,22 @@ public Output name() { public Output> networkConfig() { return Codegen.optional(this.networkConfig); } + /** + * Configuration for enhanced query insights. + * Structure is documented below. + * + */ + @Export(name="observabilityConfig", refs={InstanceObservabilityConfig.class}, tree="[0]") + private Output observabilityConfig; + + /** + * @return Configuration for enhanced query insights. + * Structure is documented below. + * + */ + public Output observabilityConfig() { + return this.observabilityConfig; + } /** * Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. @@ -663,13 +680,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:alloydb/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:alloydb/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:alloydb/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/InstanceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/InstanceArgs.java index 082134f522..f4b32e2a92 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/InstanceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/InstanceArgs.java @@ -9,6 +9,7 @@ import com.pulumi.gcp.alloydb.inputs.InstanceClientConnectionConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceMachineConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceNetworkConfigArgs; +import com.pulumi.gcp.alloydb.inputs.InstanceObservabilityConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstancePscInstanceConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceQueryInsightsConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceReadPoolConfigArgs; @@ -227,6 +228,23 @@ public Optional> networkConfig() { return Optional.ofNullable(this.networkConfig); } + /** + * Configuration for enhanced query insights. + * Structure is documented below. + * + */ + @Import(name="observabilityConfig") + private @Nullable Output observabilityConfig; + + /** + * @return Configuration for enhanced query insights. + * Structure is documented below. + * + */ + public Optional> observabilityConfig() { + return Optional.ofNullable(this.observabilityConfig); + } + /** * Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. @@ -293,6 +311,7 @@ private InstanceArgs(InstanceArgs $) { this.labels = $.labels; this.machineConfig = $.machineConfig; this.networkConfig = $.networkConfig; + this.observabilityConfig = $.observabilityConfig; this.pscInstanceConfig = $.pscInstanceConfig; this.queryInsightsConfig = $.queryInsightsConfig; this.readPoolConfig = $.readPoolConfig; @@ -588,6 +607,29 @@ public Builder networkConfig(InstanceNetworkConfigArgs networkConfig) { return networkConfig(Output.of(networkConfig)); } + /** + * @param observabilityConfig Configuration for enhanced query insights. + * Structure is documented below. + * + * @return builder + * + */ + public Builder observabilityConfig(@Nullable Output observabilityConfig) { + $.observabilityConfig = observabilityConfig; + return this; + } + + /** + * @param observabilityConfig Configuration for enhanced query insights. + * Structure is documented below. + * + * @return builder + * + */ + public Builder observabilityConfig(InstanceObservabilityConfigArgs observabilityConfig) { + return observabilityConfig(Output.of(observabilityConfig)); + } + /** * @param pscInstanceConfig Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/User.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/User.java index 31b80ec80b..8be1966042 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/User.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/User.java @@ -350,13 +350,20 @@ public User(String name, UserArgs args) { * @param options A bag of options that control this resource's behavior. */ public User(String name, UserArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:alloydb/user:User", name, args == null ? UserArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:alloydb/user:User", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private User(String name, Output id, @Nullable UserState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:alloydb/user:User", name, state, makeResourceOptions(options, id)); } + private static UserArgs makeArgs(UserArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? UserArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/inputs/InstanceObservabilityConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/inputs/InstanceObservabilityConfigArgs.java new file mode 100644 index 0000000000..b6e0879e84 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/inputs/InstanceObservabilityConfigArgs.java @@ -0,0 +1,343 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.alloydb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class InstanceObservabilityConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final InstanceObservabilityConfigArgs Empty = new InstanceObservabilityConfigArgs(); + + /** + * Observability feature status for an instance. + * + */ + @Import(name="enabled") + private @Nullable Output enabled; + + /** + * @return Observability feature status for an instance. + * + */ + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + * + */ + @Import(name="maxQueryStringLength") + private @Nullable Output maxQueryStringLength; + + /** + * @return Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + * + */ + public Optional> maxQueryStringLength() { + return Optional.ofNullable(this.maxQueryStringLength); + } + + /** + * Preserve comments in the query string. + * + */ + @Import(name="preserveComments") + private @Nullable Output preserveComments; + + /** + * @return Preserve comments in the query string. + * + */ + public Optional> preserveComments() { + return Optional.ofNullable(this.preserveComments); + } + + /** + * 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. + * + */ + @Import(name="queryPlansPerMinute") + private @Nullable Output queryPlansPerMinute; + + /** + * @return 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. + * + */ + public Optional> queryPlansPerMinute() { + return Optional.ofNullable(this.queryPlansPerMinute); + } + + /** + * Record application tags for an instance. This flag is turned "on" by default. + * + */ + @Import(name="recordApplicationTags") + private @Nullable Output recordApplicationTags; + + /** + * @return Record application tags for an instance. This flag is turned "on" by default. + * + */ + public Optional> recordApplicationTags() { + return Optional.ofNullable(this.recordApplicationTags); + } + + /** + * Track actively running queries. If not set, default value is "off". + * + */ + @Import(name="trackActiveQueries") + private @Nullable Output trackActiveQueries; + + /** + * @return Track actively running queries. If not set, default value is "off". + * + */ + public Optional> trackActiveQueries() { + return Optional.ofNullable(this.trackActiveQueries); + } + + /** + * Record wait event types during query execution for an instance. + * + */ + @Import(name="trackWaitEventTypes") + private @Nullable Output trackWaitEventTypes; + + /** + * @return Record wait event types during query execution for an instance. + * + */ + public Optional> trackWaitEventTypes() { + return Optional.ofNullable(this.trackWaitEventTypes); + } + + /** + * Record wait events during query execution for an instance. + * + */ + @Import(name="trackWaitEvents") + private @Nullable Output trackWaitEvents; + + /** + * @return Record wait events during query execution for an instance. + * + */ + public Optional> trackWaitEvents() { + return Optional.ofNullable(this.trackWaitEvents); + } + + private InstanceObservabilityConfigArgs() {} + + private InstanceObservabilityConfigArgs(InstanceObservabilityConfigArgs $) { + this.enabled = $.enabled; + this.maxQueryStringLength = $.maxQueryStringLength; + this.preserveComments = $.preserveComments; + this.queryPlansPerMinute = $.queryPlansPerMinute; + this.recordApplicationTags = $.recordApplicationTags; + this.trackActiveQueries = $.trackActiveQueries; + this.trackWaitEventTypes = $.trackWaitEventTypes; + this.trackWaitEvents = $.trackWaitEvents; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(InstanceObservabilityConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private InstanceObservabilityConfigArgs $; + + public Builder() { + $ = new InstanceObservabilityConfigArgs(); + } + + public Builder(InstanceObservabilityConfigArgs defaults) { + $ = new InstanceObservabilityConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param enabled Observability feature status for an instance. + * + * @return builder + * + */ + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + /** + * @param enabled Observability feature status for an instance. + * + * @return builder + * + */ + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param maxQueryStringLength Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + * + * @return builder + * + */ + public Builder maxQueryStringLength(@Nullable Output maxQueryStringLength) { + $.maxQueryStringLength = maxQueryStringLength; + return this; + } + + /** + * @param maxQueryStringLength Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + * + * @return builder + * + */ + public Builder maxQueryStringLength(Integer maxQueryStringLength) { + return maxQueryStringLength(Output.of(maxQueryStringLength)); + } + + /** + * @param preserveComments Preserve comments in the query string. + * + * @return builder + * + */ + public Builder preserveComments(@Nullable Output preserveComments) { + $.preserveComments = preserveComments; + return this; + } + + /** + * @param preserveComments Preserve comments in the query string. + * + * @return builder + * + */ + public Builder preserveComments(Boolean preserveComments) { + return preserveComments(Output.of(preserveComments)); + } + + /** + * @param queryPlansPerMinute 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. + * + * @return builder + * + */ + public Builder queryPlansPerMinute(@Nullable Output queryPlansPerMinute) { + $.queryPlansPerMinute = queryPlansPerMinute; + return this; + } + + /** + * @param queryPlansPerMinute 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. + * + * @return builder + * + */ + public Builder queryPlansPerMinute(Integer queryPlansPerMinute) { + return queryPlansPerMinute(Output.of(queryPlansPerMinute)); + } + + /** + * @param recordApplicationTags Record application tags for an instance. This flag is turned "on" by default. + * + * @return builder + * + */ + public Builder recordApplicationTags(@Nullable Output recordApplicationTags) { + $.recordApplicationTags = recordApplicationTags; + return this; + } + + /** + * @param recordApplicationTags Record application tags for an instance. This flag is turned "on" by default. + * + * @return builder + * + */ + public Builder recordApplicationTags(Boolean recordApplicationTags) { + return recordApplicationTags(Output.of(recordApplicationTags)); + } + + /** + * @param trackActiveQueries Track actively running queries. If not set, default value is "off". + * + * @return builder + * + */ + public Builder trackActiveQueries(@Nullable Output trackActiveQueries) { + $.trackActiveQueries = trackActiveQueries; + return this; + } + + /** + * @param trackActiveQueries Track actively running queries. If not set, default value is "off". + * + * @return builder + * + */ + public Builder trackActiveQueries(Boolean trackActiveQueries) { + return trackActiveQueries(Output.of(trackActiveQueries)); + } + + /** + * @param trackWaitEventTypes Record wait event types during query execution for an instance. + * + * @return builder + * + */ + public Builder trackWaitEventTypes(@Nullable Output trackWaitEventTypes) { + $.trackWaitEventTypes = trackWaitEventTypes; + return this; + } + + /** + * @param trackWaitEventTypes Record wait event types during query execution for an instance. + * + * @return builder + * + */ + public Builder trackWaitEventTypes(Boolean trackWaitEventTypes) { + return trackWaitEventTypes(Output.of(trackWaitEventTypes)); + } + + /** + * @param trackWaitEvents Record wait events during query execution for an instance. + * + * @return builder + * + */ + public Builder trackWaitEvents(@Nullable Output trackWaitEvents) { + $.trackWaitEvents = trackWaitEvents; + return this; + } + + /** + * @param trackWaitEvents Record wait events during query execution for an instance. + * + * @return builder + * + */ + public Builder trackWaitEvents(Boolean trackWaitEvents) { + return trackWaitEvents(Output.of(trackWaitEvents)); + } + + public InstanceObservabilityConfigArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/inputs/InstanceState.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/inputs/InstanceState.java index 35d65449fb..d7aa90aa68 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/inputs/InstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/inputs/InstanceState.java @@ -8,6 +8,7 @@ import com.pulumi.gcp.alloydb.inputs.InstanceClientConnectionConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceMachineConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceNetworkConfigArgs; +import com.pulumi.gcp.alloydb.inputs.InstanceObservabilityConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstancePscInstanceConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceQueryInsightsConfigArgs; import com.pulumi.gcp.alloydb.inputs.InstanceReadPoolConfigArgs; @@ -294,6 +295,23 @@ public Optional> networkConfig() { return Optional.ofNullable(this.networkConfig); } + /** + * Configuration for enhanced query insights. + * Structure is documented below. + * + */ + @Import(name="observabilityConfig") + private @Nullable Output observabilityConfig; + + /** + * @return Configuration for enhanced query insights. + * Structure is documented below. + * + */ + public Optional> observabilityConfig() { + return Optional.ofNullable(this.observabilityConfig); + } + /** * Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. @@ -461,6 +479,7 @@ private InstanceState(InstanceState $) { this.machineConfig = $.machineConfig; this.name = $.name; this.networkConfig = $.networkConfig; + this.observabilityConfig = $.observabilityConfig; this.pscInstanceConfig = $.pscInstanceConfig; this.publicIpAddress = $.publicIpAddress; this.pulumiLabels = $.pulumiLabels; @@ -855,6 +874,29 @@ public Builder networkConfig(InstanceNetworkConfigArgs networkConfig) { return networkConfig(Output.of(networkConfig)); } + /** + * @param observabilityConfig Configuration for enhanced query insights. + * Structure is documented below. + * + * @return builder + * + */ + public Builder observabilityConfig(@Nullable Output observabilityConfig) { + $.observabilityConfig = observabilityConfig; + return this; + } + + /** + * @param observabilityConfig Configuration for enhanced query insights. + * Structure is documented below. + * + * @return builder + * + */ + public Builder observabilityConfig(InstanceObservabilityConfigArgs observabilityConfig) { + return observabilityConfig(Output.of(observabilityConfig)); + } + /** * @param pscInstanceConfig Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/alloydb/outputs/InstanceObservabilityConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/outputs/InstanceObservabilityConfig.java new file mode 100644 index 0000000000..962350d455 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/alloydb/outputs/InstanceObservabilityConfig.java @@ -0,0 +1,205 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.alloydb.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.lang.Integer; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class InstanceObservabilityConfig { + /** + * @return Observability feature status for an instance. + * + */ + private @Nullable Boolean enabled; + /** + * @return Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + * + */ + private @Nullable Integer maxQueryStringLength; + /** + * @return Preserve comments in the query string. + * + */ + private @Nullable Boolean preserveComments; + /** + * @return 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. + * + */ + private @Nullable Integer queryPlansPerMinute; + /** + * @return Record application tags for an instance. This flag is turned "on" by default. + * + */ + private @Nullable Boolean recordApplicationTags; + /** + * @return Track actively running queries. If not set, default value is "off". + * + */ + private @Nullable Boolean trackActiveQueries; + /** + * @return Record wait event types during query execution for an instance. + * + */ + private @Nullable Boolean trackWaitEventTypes; + /** + * @return Record wait events during query execution for an instance. + * + */ + private @Nullable Boolean trackWaitEvents; + + private InstanceObservabilityConfig() {} + /** + * @return Observability feature status for an instance. + * + */ + public Optional enabled() { + return Optional.ofNullable(this.enabled); + } + /** + * @return Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + * + */ + public Optional maxQueryStringLength() { + return Optional.ofNullable(this.maxQueryStringLength); + } + /** + * @return Preserve comments in the query string. + * + */ + public Optional preserveComments() { + return Optional.ofNullable(this.preserveComments); + } + /** + * @return 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. + * + */ + public Optional queryPlansPerMinute() { + return Optional.ofNullable(this.queryPlansPerMinute); + } + /** + * @return Record application tags for an instance. This flag is turned "on" by default. + * + */ + public Optional recordApplicationTags() { + return Optional.ofNullable(this.recordApplicationTags); + } + /** + * @return Track actively running queries. If not set, default value is "off". + * + */ + public Optional trackActiveQueries() { + return Optional.ofNullable(this.trackActiveQueries); + } + /** + * @return Record wait event types during query execution for an instance. + * + */ + public Optional trackWaitEventTypes() { + return Optional.ofNullable(this.trackWaitEventTypes); + } + /** + * @return Record wait events during query execution for an instance. + * + */ + public Optional trackWaitEvents() { + return Optional.ofNullable(this.trackWaitEvents); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(InstanceObservabilityConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean enabled; + private @Nullable Integer maxQueryStringLength; + private @Nullable Boolean preserveComments; + private @Nullable Integer queryPlansPerMinute; + private @Nullable Boolean recordApplicationTags; + private @Nullable Boolean trackActiveQueries; + private @Nullable Boolean trackWaitEventTypes; + private @Nullable Boolean trackWaitEvents; + public Builder() {} + public Builder(InstanceObservabilityConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.maxQueryStringLength = defaults.maxQueryStringLength; + this.preserveComments = defaults.preserveComments; + this.queryPlansPerMinute = defaults.queryPlansPerMinute; + this.recordApplicationTags = defaults.recordApplicationTags; + this.trackActiveQueries = defaults.trackActiveQueries; + this.trackWaitEventTypes = defaults.trackWaitEventTypes; + this.trackWaitEvents = defaults.trackWaitEvents; + } + + @CustomType.Setter + public Builder enabled(@Nullable Boolean enabled) { + + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder maxQueryStringLength(@Nullable Integer maxQueryStringLength) { + + this.maxQueryStringLength = maxQueryStringLength; + return this; + } + @CustomType.Setter + public Builder preserveComments(@Nullable Boolean preserveComments) { + + this.preserveComments = preserveComments; + return this; + } + @CustomType.Setter + public Builder queryPlansPerMinute(@Nullable Integer queryPlansPerMinute) { + + this.queryPlansPerMinute = queryPlansPerMinute; + return this; + } + @CustomType.Setter + public Builder recordApplicationTags(@Nullable Boolean recordApplicationTags) { + + this.recordApplicationTags = recordApplicationTags; + return this; + } + @CustomType.Setter + public Builder trackActiveQueries(@Nullable Boolean trackActiveQueries) { + + this.trackActiveQueries = trackActiveQueries; + return this; + } + @CustomType.Setter + public Builder trackWaitEventTypes(@Nullable Boolean trackWaitEventTypes) { + + this.trackWaitEventTypes = trackWaitEventTypes; + return this; + } + @CustomType.Setter + public Builder trackWaitEvents(@Nullable Boolean trackWaitEvents) { + + this.trackWaitEvents = trackWaitEvents; + return this; + } + public InstanceObservabilityConfig build() { + final var _resultValue = new InstanceObservabilityConfig(); + _resultValue.enabled = enabled; + _resultValue.maxQueryStringLength = maxQueryStringLength; + _resultValue.preserveComments = preserveComments; + _resultValue.queryPlansPerMinute = queryPlansPerMinute; + _resultValue.recordApplicationTags = recordApplicationTags; + _resultValue.trackActiveQueries = trackActiveQueries; + _resultValue.trackWaitEventTypes = trackWaitEventTypes; + _resultValue.trackWaitEvents = trackWaitEvents; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Api.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Api.java index f96e009535..991df9943f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Api.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Api.java @@ -254,13 +254,20 @@ public Api(String name, ApiArgs args) { * @param options A bag of options that control this resource's behavior. */ public Api(String name, ApiArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/api:Api", name, args == null ? ApiArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/api:Api", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Api(String name, Output id, @Nullable ApiState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/api:Api", name, state, makeResourceOptions(options, id)); } + private static ApiArgs makeArgs(ApiArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfig.java index d95ab2db30..8fc01f6eaf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfig.java @@ -305,13 +305,20 @@ public ApiConfig(String name, ApiConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public ApiConfig(String name, ApiConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/apiConfig:ApiConfig", name, args == null ? ApiConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/apiConfig:ApiConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApiConfig(String name, Output id, @Nullable ApiConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/apiConfig:ApiConfig", name, state, makeResourceOptions(options, id)); } + private static ApiConfigArgs makeArgs(ApiConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamBinding.java index e3d7f2385e..58870dada1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamBinding.java @@ -449,13 +449,20 @@ public ApiConfigIamBinding(String name, ApiConfigIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ApiConfigIamBinding(String name, ApiConfigIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/apiConfigIamBinding:ApiConfigIamBinding", name, args == null ? ApiConfigIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/apiConfigIamBinding:ApiConfigIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApiConfigIamBinding(String name, Output id, @Nullable ApiConfigIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/apiConfigIamBinding:ApiConfigIamBinding", name, state, makeResourceOptions(options, id)); } + private static ApiConfigIamBindingArgs makeArgs(ApiConfigIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiConfigIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamMember.java index 336a5907fd..e35e6d86ff 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamMember.java @@ -448,13 +448,20 @@ public ApiConfigIamMember(String name, ApiConfigIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ApiConfigIamMember(String name, ApiConfigIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/apiConfigIamMember:ApiConfigIamMember", name, args == null ? ApiConfigIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/apiConfigIamMember:ApiConfigIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApiConfigIamMember(String name, Output id, @Nullable ApiConfigIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/apiConfigIamMember:ApiConfigIamMember", name, state, makeResourceOptions(options, id)); } + private static ApiConfigIamMemberArgs makeArgs(ApiConfigIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiConfigIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamPolicy.java index b8acfaad24..69aa84644d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiConfigIamPolicy.java @@ -404,13 +404,20 @@ public ApiConfigIamPolicy(String name, ApiConfigIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ApiConfigIamPolicy(String name, ApiConfigIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/apiConfigIamPolicy:ApiConfigIamPolicy", name, args == null ? ApiConfigIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/apiConfigIamPolicy:ApiConfigIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApiConfigIamPolicy(String name, Output id, @Nullable ApiConfigIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/apiConfigIamPolicy:ApiConfigIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ApiConfigIamPolicyArgs makeArgs(ApiConfigIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiConfigIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamBinding.java index 4c1f3de9ff..03f6c80622 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamBinding.java @@ -431,13 +431,20 @@ public ApiIamBinding(String name, ApiIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ApiIamBinding(String name, ApiIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/apiIamBinding:ApiIamBinding", name, args == null ? ApiIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/apiIamBinding:ApiIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApiIamBinding(String name, Output id, @Nullable ApiIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/apiIamBinding:ApiIamBinding", name, state, makeResourceOptions(options, id)); } + private static ApiIamBindingArgs makeArgs(ApiIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamMember.java index 7b17ee9104..fe5a71f889 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamMember.java @@ -430,13 +430,20 @@ public ApiIamMember(String name, ApiIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ApiIamMember(String name, ApiIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/apiIamMember:ApiIamMember", name, args == null ? ApiIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/apiIamMember:ApiIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApiIamMember(String name, Output id, @Nullable ApiIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/apiIamMember:ApiIamMember", name, state, makeResourceOptions(options, id)); } + private static ApiIamMemberArgs makeArgs(ApiIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamPolicy.java index 0fa08fbaff..f089b9d641 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/ApiIamPolicy.java @@ -386,13 +386,20 @@ public ApiIamPolicy(String name, ApiIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ApiIamPolicy(String name, ApiIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/apiIamPolicy:ApiIamPolicy", name, args == null ? ApiIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/apiIamPolicy:ApiIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApiIamPolicy(String name, Output id, @Nullable ApiIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/apiIamPolicy:ApiIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ApiIamPolicyArgs makeArgs(ApiIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApiIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Gateway.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Gateway.java index c297837c1e..6c68c360ce 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Gateway.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/Gateway.java @@ -241,13 +241,20 @@ public Gateway(String name, GatewayArgs args) { * @param options A bag of options that control this resource's behavior. */ public Gateway(String name, GatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/gateway:Gateway", name, args == null ? GatewayArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/gateway:Gateway", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Gateway(String name, Output id, @Nullable GatewayState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/gateway:Gateway", name, state, makeResourceOptions(options, id)); } + private static GatewayArgs makeArgs(GatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GatewayArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamBinding.java index f754681d08..0ce877ff92 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamBinding.java @@ -459,13 +459,20 @@ public GatewayIamBinding(String name, GatewayIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public GatewayIamBinding(String name, GatewayIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/gatewayIamBinding:GatewayIamBinding", name, args == null ? GatewayIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/gatewayIamBinding:GatewayIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GatewayIamBinding(String name, Output id, @Nullable GatewayIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/gatewayIamBinding:GatewayIamBinding", name, state, makeResourceOptions(options, id)); } + private static GatewayIamBindingArgs makeArgs(GatewayIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GatewayIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamMember.java index 435227f7e7..d56d471fcf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamMember.java @@ -458,13 +458,20 @@ public GatewayIamMember(String name, GatewayIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public GatewayIamMember(String name, GatewayIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/gatewayIamMember:GatewayIamMember", name, args == null ? GatewayIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/gatewayIamMember:GatewayIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GatewayIamMember(String name, Output id, @Nullable GatewayIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/gatewayIamMember:GatewayIamMember", name, state, makeResourceOptions(options, id)); } + private static GatewayIamMemberArgs makeArgs(GatewayIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GatewayIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamPolicy.java index 585256fb18..fffc0080f6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigateway/GatewayIamPolicy.java @@ -414,13 +414,20 @@ public GatewayIamPolicy(String name, GatewayIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public GatewayIamPolicy(String name, GatewayIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigateway/gatewayIamPolicy:GatewayIamPolicy", name, args == null ? GatewayIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigateway/gatewayIamPolicy:GatewayIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GatewayIamPolicy(String name, Output id, @Nullable GatewayIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigateway/gatewayIamPolicy:GatewayIamPolicy", name, state, makeResourceOptions(options, id)); } + private static GatewayIamPolicyArgs makeArgs(GatewayIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GatewayIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java index 5c5f3f8afb..fb92464ad8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/AddonsConfig.java @@ -269,13 +269,20 @@ public AddonsConfig(String name, AddonsConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public AddonsConfig(String name, AddonsConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/addonsConfig:AddonsConfig", name, args == null ? AddonsConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/addonsConfig:AddonsConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AddonsConfig(String name, Output id, @Nullable AddonsConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/addonsConfig:AddonsConfig", name, state, makeResourceOptions(options, id)); } + private static AddonsConfigArgs makeArgs(AddonsConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AddonsConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EndpointAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EndpointAttachment.java index d58f393e6f..2a4025cf6f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EndpointAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EndpointAttachment.java @@ -250,13 +250,20 @@ public EndpointAttachment(String name, EndpointAttachmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public EndpointAttachment(String name, EndpointAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/endpointAttachment:EndpointAttachment", name, args == null ? EndpointAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/endpointAttachment:EndpointAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EndpointAttachment(String name, Output id, @Nullable EndpointAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/endpointAttachment:EndpointAttachment", name, state, makeResourceOptions(options, id)); } + private static EndpointAttachmentArgs makeArgs(EndpointAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EndpointAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroup.java index 88acb66b9d..3f6805e3fb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroup.java @@ -193,13 +193,20 @@ public EnvGroup(String name, EnvGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public EnvGroup(String name, EnvGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/envGroup:EnvGroup", name, args == null ? EnvGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/envGroup:EnvGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EnvGroup(String name, Output id, @Nullable EnvGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/envGroup:EnvGroup", name, state, makeResourceOptions(options, id)); } + private static EnvGroupArgs makeArgs(EnvGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroupAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroupAttachment.java index e463834d24..d9b663efae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroupAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvGroupAttachment.java @@ -116,13 +116,20 @@ public EnvGroupAttachment(String name, EnvGroupAttachmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public EnvGroupAttachment(String name, EnvGroupAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/envGroupAttachment:EnvGroupAttachment", name, args == null ? EnvGroupAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/envGroupAttachment:EnvGroupAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EnvGroupAttachment(String name, Output id, @Nullable EnvGroupAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/envGroupAttachment:EnvGroupAttachment", name, state, makeResourceOptions(options, id)); } + private static EnvGroupAttachmentArgs makeArgs(EnvGroupAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvGroupAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvKeystore.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvKeystore.java index a83f64c041..413775d14c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvKeystore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvKeystore.java @@ -115,13 +115,20 @@ public EnvKeystore(String name, EnvKeystoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public EnvKeystore(String name, EnvKeystoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/envKeystore:EnvKeystore", name, args == null ? EnvKeystoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/envKeystore:EnvKeystore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EnvKeystore(String name, Output id, @Nullable EnvKeystoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/envKeystore:EnvKeystore", name, state, makeResourceOptions(options, id)); } + private static EnvKeystoreArgs makeArgs(EnvKeystoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvKeystoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvReferences.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvReferences.java index 33927ea933..51145e298e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvReferences.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvReferences.java @@ -143,13 +143,20 @@ public EnvReferences(String name, EnvReferencesArgs args) { * @param options A bag of options that control this resource's behavior. */ public EnvReferences(String name, EnvReferencesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/envReferences:EnvReferences", name, args == null ? EnvReferencesArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/envReferences:EnvReferences", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EnvReferences(String name, Output id, @Nullable EnvReferencesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/envReferences:EnvReferences", name, state, makeResourceOptions(options, id)); } + private static EnvReferencesArgs makeArgs(EnvReferencesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvReferencesArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Environment.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Environment.java index 3a776cb6c6..b652a3e0ca 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Environment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Environment.java @@ -306,13 +306,20 @@ public Environment(String name, EnvironmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public Environment(String name, EnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/environment:Environment", name, args == null ? EnvironmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/environment:Environment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Environment(String name, Output id, @Nullable EnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/environment:Environment", name, state, makeResourceOptions(options, id)); } + private static EnvironmentArgs makeArgs(EnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamBinding.java index 36d29ef965..24b0f9f049 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamBinding.java @@ -427,13 +427,20 @@ public EnvironmentIamBinding(String name, EnvironmentIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public EnvironmentIamBinding(String name, EnvironmentIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/environmentIamBinding:EnvironmentIamBinding", name, args == null ? EnvironmentIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/environmentIamBinding:EnvironmentIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EnvironmentIamBinding(String name, Output id, @Nullable EnvironmentIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/environmentIamBinding:EnvironmentIamBinding", name, state, makeResourceOptions(options, id)); } + private static EnvironmentIamBindingArgs makeArgs(EnvironmentIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamMember.java index e5e8d0d383..bc48bcfea0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamMember.java @@ -426,13 +426,20 @@ public EnvironmentIamMember(String name, EnvironmentIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public EnvironmentIamMember(String name, EnvironmentIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/environmentIamMember:EnvironmentIamMember", name, args == null ? EnvironmentIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/environmentIamMember:EnvironmentIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EnvironmentIamMember(String name, Output id, @Nullable EnvironmentIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/environmentIamMember:EnvironmentIamMember", name, state, makeResourceOptions(options, id)); } + private static EnvironmentIamMemberArgs makeArgs(EnvironmentIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamPolicy.java index 9d1e2a5c0b..7216161428 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentIamPolicy.java @@ -382,13 +382,20 @@ public EnvironmentIamPolicy(String name, EnvironmentIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public EnvironmentIamPolicy(String name, EnvironmentIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy", name, args == null ? EnvironmentIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EnvironmentIamPolicy(String name, Output id, @Nullable EnvironmentIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy", name, state, makeResourceOptions(options, id)); } + private static EnvironmentIamPolicyArgs makeArgs(EnvironmentIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemaps.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemaps.java new file mode 100644 index 0000000000..331efe71d4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemaps.java @@ -0,0 +1,242 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsArgs; +import com.pulumi.gcp.apigee.inputs.EnvironmentKeyvaluemapsState; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Collection of key/value string pairs. + * + * To get more information about EnvironmentKeyvaluemaps, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create) + * * How-to Guides + * * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + * + * ## Example Usage + * + * ### Apigee Environment Keyvaluemaps Basic + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.GlobalAddress;
+ * import com.pulumi.gcp.compute.GlobalAddressArgs;
+ * import com.pulumi.gcp.servicenetworking.Connection;
+ * import com.pulumi.gcp.servicenetworking.ConnectionArgs;
+ * import com.pulumi.gcp.apigee.Organization;
+ * import com.pulumi.gcp.apigee.OrganizationArgs;
+ * import com.pulumi.gcp.apigee.Environment;
+ * import com.pulumi.gcp.apigee.EnvironmentArgs;
+ * import com.pulumi.gcp.apigee.Instance;
+ * import com.pulumi.gcp.apigee.InstanceArgs;
+ * import com.pulumi.gcp.apigee.InstanceAttachment;
+ * import com.pulumi.gcp.apigee.InstanceAttachmentArgs;
+ * import com.pulumi.gcp.apigee.EnvironmentKeyvaluemaps;
+ * import com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var current = OrganizationsFunctions.getClientConfig();
+ * 
+ *         var apigeeNetwork = new Network("apigeeNetwork", NetworkArgs.builder()
+ *             .name("apigee-network")
+ *             .build());
+ * 
+ *         var apigeeRange = new GlobalAddress("apigeeRange", GlobalAddressArgs.builder()
+ *             .name("apigee-range")
+ *             .purpose("VPC_PEERING")
+ *             .addressType("INTERNAL")
+ *             .prefixLength(16)
+ *             .network(apigeeNetwork.id())
+ *             .build());
+ * 
+ *         var apigeeVpcConnection = new Connection("apigeeVpcConnection", ConnectionArgs.builder()
+ *             .network(apigeeNetwork.id())
+ *             .service("servicenetworking.googleapis.com")
+ *             .reservedPeeringRanges(apigeeRange.name())
+ *             .build());
+ * 
+ *         var apigeeOrg = new Organization("apigeeOrg", OrganizationArgs.builder()
+ *             .analyticsRegion("us-central1")
+ *             .projectId(current.applyValue(getClientConfigResult -> getClientConfigResult.project()))
+ *             .authorizedNetwork(apigeeNetwork.id())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(apigeeVpcConnection)
+ *                 .build());
+ * 
+ *         var apigeeEnvironment = new Environment("apigeeEnvironment", EnvironmentArgs.builder()
+ *             .orgId(apigeeOrg.id())
+ *             .name("tf-test-env")
+ *             .description("Apigee Environment")
+ *             .displayName("Apigee Environment")
+ *             .build());
+ * 
+ *         var apigeeInstance = new Instance("apigeeInstance", InstanceArgs.builder()
+ *             .name("tf-test-instance")
+ *             .location("us-central1")
+ *             .orgId(apigeeOrg.id())
+ *             .build());
+ * 
+ *         var apigeeInstanceAttachment = new InstanceAttachment("apigeeInstanceAttachment", InstanceAttachmentArgs.builder()
+ *             .instanceId(apigeeInstance.id())
+ *             .environment(apigeeEnvironment.name())
+ *             .build());
+ * 
+ *         var apigeeEnvironmentKeyvaluemaps = new EnvironmentKeyvaluemaps("apigeeEnvironmentKeyvaluemaps", EnvironmentKeyvaluemapsArgs.builder()
+ *             .envId(apigeeEnvironment.id())
+ *             .name("tf-test-env-kvms")
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     apigeeOrg,
+ *                     apigeeEnvironment,
+ *                     apigeeInstance,
+ *                     apigeeInstanceAttachment)
+ *                 .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * EnvironmentKeyvaluemaps can be imported using any of these accepted formats: + * + * * `{{env_id}}/keyvaluemaps/{{name}}` + * + * * `{{env_id}}/{{name}}` + * + * When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}} + * ``` + * + */ +@ResourceType(type="gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps") +public class EnvironmentKeyvaluemaps extends com.pulumi.resources.CustomResource { + /** + * The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + */ + @Export(name="envId", refs={String.class}, tree="[0]") + private Output envId; + + /** + * @return The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + */ + public Output envId() { + return this.envId; + } + /** + * Required. ID of the key value map. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Required. ID of the key value map. + * + */ + public Output name() { + return this.name; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public EnvironmentKeyvaluemaps(String name) { + this(name, EnvironmentKeyvaluemapsArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public EnvironmentKeyvaluemaps(String name, EnvironmentKeyvaluemapsArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public EnvironmentKeyvaluemaps(String name, EnvironmentKeyvaluemapsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private EnvironmentKeyvaluemaps(String name, Output id, @Nullable EnvironmentKeyvaluemapsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps", name, state, makeResourceOptions(options, id)); + } + + private static EnvironmentKeyvaluemapsArgs makeArgs(EnvironmentKeyvaluemapsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentKeyvaluemapsArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static EnvironmentKeyvaluemaps get(String name, Output id, @Nullable EnvironmentKeyvaluemapsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new EnvironmentKeyvaluemaps(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsArgs.java new file mode 100644 index 0000000000..c252f094b5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsArgs.java @@ -0,0 +1,136 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EnvironmentKeyvaluemapsArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentKeyvaluemapsArgs Empty = new EnvironmentKeyvaluemapsArgs(); + + /** + * The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + */ + @Import(name="envId", required=true) + private Output envId; + + /** + * @return The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + */ + public Output envId() { + return this.envId; + } + + /** + * Required. ID of the key value map. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Required. ID of the key value map. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private EnvironmentKeyvaluemapsArgs() {} + + private EnvironmentKeyvaluemapsArgs(EnvironmentKeyvaluemapsArgs $) { + this.envId = $.envId; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentKeyvaluemapsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentKeyvaluemapsArgs $; + + public Builder() { + $ = new EnvironmentKeyvaluemapsArgs(); + } + + public Builder(EnvironmentKeyvaluemapsArgs defaults) { + $ = new EnvironmentKeyvaluemapsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param envId The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envId(Output envId) { + $.envId = envId; + return this; + } + + /** + * @param envId The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envId(String envId) { + return envId(Output.of(envId)); + } + + /** + * @param name Required. ID of the key value map. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Required. ID of the key value map. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public EnvironmentKeyvaluemapsArgs build() { + if ($.envId == null) { + throw new MissingRequiredPropertyException("EnvironmentKeyvaluemapsArgs", "envId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsEntries.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsEntries.java new file mode 100644 index 0000000000..bcffc1663b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsEntries.java @@ -0,0 +1,271 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsEntriesArgs; +import com.pulumi.gcp.apigee.inputs.EnvironmentKeyvaluemapsEntriesState; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Creates key value entries in a key value map scoped to an environment. + * + * To get more information about EnvironmentKeyvaluemapsEntries, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.keyvaluemaps.entries/create) + * * How-to Guides + * * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + * + * ## Example Usage + * + * ### Apigee Environment Keyvaluemaps Entries Basic + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.GlobalAddress;
+ * import com.pulumi.gcp.compute.GlobalAddressArgs;
+ * import com.pulumi.gcp.servicenetworking.Connection;
+ * import com.pulumi.gcp.servicenetworking.ConnectionArgs;
+ * import com.pulumi.gcp.apigee.Organization;
+ * import com.pulumi.gcp.apigee.OrganizationArgs;
+ * import com.pulumi.gcp.apigee.Environment;
+ * import com.pulumi.gcp.apigee.EnvironmentArgs;
+ * import com.pulumi.gcp.apigee.Instance;
+ * import com.pulumi.gcp.apigee.InstanceArgs;
+ * import com.pulumi.gcp.apigee.InstanceAttachment;
+ * import com.pulumi.gcp.apigee.InstanceAttachmentArgs;
+ * import com.pulumi.gcp.apigee.EnvironmentKeyvaluemaps;
+ * import com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsArgs;
+ * import com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsEntries;
+ * import com.pulumi.gcp.apigee.EnvironmentKeyvaluemapsEntriesArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var current = OrganizationsFunctions.getClientConfig();
+ * 
+ *         var apigeeNetwork = new Network("apigeeNetwork", NetworkArgs.builder()
+ *             .name("apigee-network")
+ *             .build());
+ * 
+ *         var apigeeRange = new GlobalAddress("apigeeRange", GlobalAddressArgs.builder()
+ *             .name("apigee-range")
+ *             .purpose("VPC_PEERING")
+ *             .addressType("INTERNAL")
+ *             .prefixLength(16)
+ *             .network(apigeeNetwork.id())
+ *             .build());
+ * 
+ *         var apigeeVpcConnection = new Connection("apigeeVpcConnection", ConnectionArgs.builder()
+ *             .network(apigeeNetwork.id())
+ *             .service("servicenetworking.googleapis.com")
+ *             .reservedPeeringRanges(apigeeRange.name())
+ *             .build());
+ * 
+ *         var apigeeOrg = new Organization("apigeeOrg", OrganizationArgs.builder()
+ *             .analyticsRegion("us-central1")
+ *             .projectId(current.applyValue(getClientConfigResult -> getClientConfigResult.project()))
+ *             .authorizedNetwork(apigeeNetwork.id())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(apigeeVpcConnection)
+ *                 .build());
+ * 
+ *         var apigeeEnvironment = new Environment("apigeeEnvironment", EnvironmentArgs.builder()
+ *             .orgId(apigeeOrg.id())
+ *             .name("tf-test-env")
+ *             .description("Apigee Environment")
+ *             .displayName("Apigee Environment")
+ *             .build());
+ * 
+ *         var apigeeInstance = new Instance("apigeeInstance", InstanceArgs.builder()
+ *             .name("tf-test-instance")
+ *             .location("us-central1")
+ *             .orgId(apigeeOrg.id())
+ *             .build());
+ * 
+ *         var apigeeInstanceAttachment = new InstanceAttachment("apigeeInstanceAttachment", InstanceAttachmentArgs.builder()
+ *             .instanceId(apigeeInstance.id())
+ *             .environment(apigeeEnvironment.name())
+ *             .build());
+ * 
+ *         var apigeeEnvironmentKeyvaluemaps = new EnvironmentKeyvaluemaps("apigeeEnvironmentKeyvaluemaps", EnvironmentKeyvaluemapsArgs.builder()
+ *             .envId(createApigeeEnvironment.id())
+ *             .name("tf-test-env-kvms")
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     apigeeOrg,
+ *                     apigeeEnvironment,
+ *                     apigeeInstance,
+ *                     apigeeInstanceAttachment)
+ *                 .build());
+ * 
+ *         var apigeeEnvironmentKeyvaluemapsEntries = new EnvironmentKeyvaluemapsEntries("apigeeEnvironmentKeyvaluemapsEntries", EnvironmentKeyvaluemapsEntriesArgs.builder()
+ *             .envKeyvaluemapId(apigeeEnvironmentKeyvaluemaps.id())
+ *             .name("testName")
+ *             .value("testValue")
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     apigeeOrg,
+ *                     apigeeEnvironment,
+ *                     apigeeInstance,
+ *                     apigeeInstanceAttachment,
+ *                     apigeeEnvironmentKeyvaluemaps)
+ *                 .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * EnvironmentKeyvaluemapsEntries can be imported using any of these accepted formats: + * + * * `{{env_keyvaluemap_id}}/entries/{{name}}` + * + * * `{{env_keyvaluemap_id}}/{{name}}` + * + * When using the `pulumi import` command, EnvironmentKeyvaluemapsEntries can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/entries/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/{{name}} + * ``` + * + */ +@ResourceType(type="gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries") +public class EnvironmentKeyvaluemapsEntries extends com.pulumi.resources.CustomResource { + /** + * The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + */ + @Export(name="envKeyvaluemapId", refs={String.class}, tree="[0]") + private Output envKeyvaluemapId; + + /** + * @return The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + */ + public Output envKeyvaluemapId() { + return this.envKeyvaluemapId; + } + /** + * Required. Resource URI that can be used to identify the scope of the key value map entries. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Required. Resource URI that can be used to identify the scope of the key value map entries. + * + */ + public Output name() { + return this.name; + } + /** + * Required. Data or payload that is being retrieved and associated with the unique key. + * + */ + @Export(name="value", refs={String.class}, tree="[0]") + private Output value; + + /** + * @return Required. Data or payload that is being retrieved and associated with the unique key. + * + */ + public Output value() { + return this.value; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public EnvironmentKeyvaluemapsEntries(String name) { + this(name, EnvironmentKeyvaluemapsEntriesArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public EnvironmentKeyvaluemapsEntries(String name, EnvironmentKeyvaluemapsEntriesArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public EnvironmentKeyvaluemapsEntries(String name, EnvironmentKeyvaluemapsEntriesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private EnvironmentKeyvaluemapsEntries(String name, Output id, @Nullable EnvironmentKeyvaluemapsEntriesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries", name, state, makeResourceOptions(options, id)); + } + + private static EnvironmentKeyvaluemapsEntriesArgs makeArgs(EnvironmentKeyvaluemapsEntriesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentKeyvaluemapsEntriesArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static EnvironmentKeyvaluemapsEntries get(String name, Output id, @Nullable EnvironmentKeyvaluemapsEntriesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new EnvironmentKeyvaluemapsEntries(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsEntriesArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsEntriesArgs.java new file mode 100644 index 0000000000..cb0b74a0f9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/EnvironmentKeyvaluemapsEntriesArgs.java @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EnvironmentKeyvaluemapsEntriesArgs extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentKeyvaluemapsEntriesArgs Empty = new EnvironmentKeyvaluemapsEntriesArgs(); + + /** + * The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + */ + @Import(name="envKeyvaluemapId", required=true) + private Output envKeyvaluemapId; + + /** + * @return The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + */ + public Output envKeyvaluemapId() { + return this.envKeyvaluemapId; + } + + /** + * Required. Resource URI that can be used to identify the scope of the key value map entries. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Required. Resource URI that can be used to identify the scope of the key value map entries. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Required. Data or payload that is being retrieved and associated with the unique key. + * + */ + @Import(name="value", required=true) + private Output value; + + /** + * @return Required. Data or payload that is being retrieved and associated with the unique key. + * + */ + public Output value() { + return this.value; + } + + private EnvironmentKeyvaluemapsEntriesArgs() {} + + private EnvironmentKeyvaluemapsEntriesArgs(EnvironmentKeyvaluemapsEntriesArgs $) { + this.envKeyvaluemapId = $.envKeyvaluemapId; + this.name = $.name; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentKeyvaluemapsEntriesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentKeyvaluemapsEntriesArgs $; + + public Builder() { + $ = new EnvironmentKeyvaluemapsEntriesArgs(); + } + + public Builder(EnvironmentKeyvaluemapsEntriesArgs defaults) { + $ = new EnvironmentKeyvaluemapsEntriesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param envKeyvaluemapId The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envKeyvaluemapId(Output envKeyvaluemapId) { + $.envKeyvaluemapId = envKeyvaluemapId; + return this; + } + + /** + * @param envKeyvaluemapId The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envKeyvaluemapId(String envKeyvaluemapId) { + return envKeyvaluemapId(Output.of(envKeyvaluemapId)); + } + + /** + * @param name Required. Resource URI that can be used to identify the scope of the key value map entries. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Required. Resource URI that can be used to identify the scope of the key value map entries. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param value Required. Data or payload that is being retrieved and associated with the unique key. + * + * @return builder + * + */ + public Builder value(Output value) { + $.value = value; + return this; + } + + /** + * @param value Required. Data or payload that is being retrieved and associated with the unique key. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public EnvironmentKeyvaluemapsEntriesArgs build() { + if ($.envKeyvaluemapId == null) { + throw new MissingRequiredPropertyException("EnvironmentKeyvaluemapsEntriesArgs", "envKeyvaluemapId"); + } + if ($.value == null) { + throw new MissingRequiredPropertyException("EnvironmentKeyvaluemapsEntriesArgs", "value"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Flowhook.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Flowhook.java index 5d4aae8ebc..c0d804f0d4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Flowhook.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Flowhook.java @@ -152,13 +152,20 @@ public Flowhook(String name, FlowhookArgs args) { * @param options A bag of options that control this resource's behavior. */ public Flowhook(String name, FlowhookArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/flowhook:Flowhook", name, args == null ? FlowhookArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/flowhook:Flowhook", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Flowhook(String name, Output id, @Nullable FlowhookState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/flowhook:Flowhook", name, state, makeResourceOptions(options, id)); } + private static FlowhookArgs makeArgs(FlowhookArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FlowhookArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Instance.java index 03f75a5491..71a8d9c900 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Instance.java @@ -331,7 +331,7 @@ * var apigeeSaKeyuser = new CryptoKeyIAMMember("apigeeSaKeyuser", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId(apigeeKey.id()) * .role("roles/cloudkms.cryptoKeyEncrypterDecrypter") - * .member(apigeeSa.email().applyValue(email -> String.format("serviceAccount:%s", email))) + * .member(apigeeSa.member()) * .build()); * * var apigeeOrg = new Organization("apigeeOrg", OrganizationArgs.builder() @@ -606,13 +606,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/InstanceAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/InstanceAttachment.java index f817ff6381..1628fde8fa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/InstanceAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/InstanceAttachment.java @@ -116,13 +116,20 @@ public InstanceAttachment(String name, InstanceAttachmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceAttachment(String name, InstanceAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/instanceAttachment:InstanceAttachment", name, args == null ? InstanceAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/instanceAttachment:InstanceAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceAttachment(String name, Output id, @Nullable InstanceAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/instanceAttachment:InstanceAttachment", name, state, makeResourceOptions(options, id)); } + private static InstanceAttachmentArgs makeArgs(InstanceAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesKeyCertFile.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesKeyCertFile.java index 9d68651fbd..c659171a04 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesKeyCertFile.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesKeyCertFile.java @@ -201,13 +201,20 @@ public KeystoresAliasesKeyCertFile(String name, KeystoresAliasesKeyCertFileArgs * @param options A bag of options that control this resource's behavior. */ public KeystoresAliasesKeyCertFile(String name, KeystoresAliasesKeyCertFileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/keystoresAliasesKeyCertFile:KeystoresAliasesKeyCertFile", name, args == null ? KeystoresAliasesKeyCertFileArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/keystoresAliasesKeyCertFile:KeystoresAliasesKeyCertFile", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeystoresAliasesKeyCertFile(String name, Output id, @Nullable KeystoresAliasesKeyCertFileState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/keystoresAliasesKeyCertFile:KeystoresAliasesKeyCertFile", name, state, makeResourceOptions(options, id)); } + private static KeystoresAliasesKeyCertFileArgs makeArgs(KeystoresAliasesKeyCertFileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeystoresAliasesKeyCertFileArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesPkcs12.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesPkcs12.java index 0a5d14aaee..e204dd36f9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesPkcs12.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesPkcs12.java @@ -200,13 +200,20 @@ public KeystoresAliasesPkcs12(String name, KeystoresAliasesPkcs12Args args) { * @param options A bag of options that control this resource's behavior. */ public KeystoresAliasesPkcs12(String name, KeystoresAliasesPkcs12Args args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12", name, args == null ? KeystoresAliasesPkcs12Args.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeystoresAliasesPkcs12(String name, Output id, @Nullable KeystoresAliasesPkcs12State state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12", name, state, makeResourceOptions(options, id)); } + private static KeystoresAliasesPkcs12Args makeArgs(KeystoresAliasesPkcs12Args args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeystoresAliasesPkcs12Args.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesSelfSignedCert.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesSelfSignedCert.java index 82d6fd7855..ab384dc796 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesSelfSignedCert.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/KeystoresAliasesSelfSignedCert.java @@ -374,13 +374,20 @@ public KeystoresAliasesSelfSignedCert(String name, KeystoresAliasesSelfSignedCer * @param options A bag of options that control this resource's behavior. */ public KeystoresAliasesSelfSignedCert(String name, KeystoresAliasesSelfSignedCertArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/keystoresAliasesSelfSignedCert:KeystoresAliasesSelfSignedCert", name, args == null ? KeystoresAliasesSelfSignedCertArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/keystoresAliasesSelfSignedCert:KeystoresAliasesSelfSignedCert", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeystoresAliasesSelfSignedCert(String name, Output id, @Nullable KeystoresAliasesSelfSignedCertState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/keystoresAliasesSelfSignedCert:KeystoresAliasesSelfSignedCert", name, state, makeResourceOptions(options, id)); } + private static KeystoresAliasesSelfSignedCertArgs makeArgs(KeystoresAliasesSelfSignedCertArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeystoresAliasesSelfSignedCertArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/NatAddress.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/NatAddress.java index d0b20b6a30..369726b6ce 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/NatAddress.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/NatAddress.java @@ -108,7 +108,7 @@ * var apigeeSaKeyuser = new CryptoKeyIAMMember("apigeeSaKeyuser", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId(apigeeKey.id()) * .role("roles/cloudkms.cryptoKeyEncrypterDecrypter") - * .member(apigeeSa.email().applyValue(email -> String.format("serviceAccount:%s", email))) + * .member(apigeeSa.member()) * .build()); * * var apigeeOrg = new Organization("apigeeOrg", OrganizationArgs.builder() @@ -250,13 +250,20 @@ public NatAddress(String name, NatAddressArgs args) { * @param options A bag of options that control this resource's behavior. */ public NatAddress(String name, NatAddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/natAddress:NatAddress", name, args == null ? NatAddressArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/natAddress:NatAddress", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NatAddress(String name, Output id, @Nullable NatAddressState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/natAddress:NatAddress", name, state, makeResourceOptions(options, id)); } + private static NatAddressArgs makeArgs(NatAddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NatAddressArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Organization.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Organization.java index 713c0d90fd..3c05962f0f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Organization.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Organization.java @@ -212,7 +212,7 @@ * var apigeeSaKeyuser = new CryptoKeyIAMMember("apigeeSaKeyuser", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId(apigeeKey.id()) * .role("roles/cloudkms.cryptoKeyEncrypterDecrypter") - * .member(apigeeSa.email().applyValue(email -> String.format("serviceAccount:%s", email))) + * .member(apigeeSa.member()) * .build()); * * var org = new Organization("org", OrganizationArgs.builder() @@ -288,7 +288,7 @@ * var apigeeSaKeyuser = new CryptoKeyIAMMember("apigeeSaKeyuser", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId(apigeeKey.id()) * .role("roles/cloudkms.cryptoKeyEncrypterDecrypter") - * .member(apigeeSa.email().applyValue(email -> String.format("serviceAccount:%s", email))) + * .member(apigeeSa.member()) * .build()); * * var org = new Organization("org", OrganizationArgs.builder() @@ -652,13 +652,20 @@ public Organization(String name, OrganizationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Organization(String name, OrganizationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/organization:Organization", name, args == null ? OrganizationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/organization:Organization", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Organization(String name, Output id, @Nullable OrganizationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/organization:Organization", name, state, makeResourceOptions(options, id)); } + private static OrganizationArgs makeArgs(OrganizationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Sharedflow.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Sharedflow.java index e4002dad95..dd06f2aa42 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/Sharedflow.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/Sharedflow.java @@ -179,13 +179,20 @@ public Sharedflow(String name, SharedflowArgs args) { * @param options A bag of options that control this resource's behavior. */ public Sharedflow(String name, SharedflowArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/sharedflow:Sharedflow", name, args == null ? SharedflowArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/sharedflow:Sharedflow", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Sharedflow(String name, Output id, @Nullable SharedflowState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/sharedflow:Sharedflow", name, state, makeResourceOptions(options, id)); } + private static SharedflowArgs makeArgs(SharedflowArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SharedflowArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/SharedflowDeployment.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/SharedflowDeployment.java index 1ffab5fea7..affb6926e9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/SharedflowDeployment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/SharedflowDeployment.java @@ -141,13 +141,20 @@ public SharedflowDeployment(String name, SharedflowDeploymentArgs args) { * @param options A bag of options that control this resource's behavior. */ public SharedflowDeployment(String name, SharedflowDeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/sharedflowDeployment:SharedflowDeployment", name, args == null ? SharedflowDeploymentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/sharedflowDeployment:SharedflowDeployment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SharedflowDeployment(String name, Output id, @Nullable SharedflowDeploymentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/sharedflowDeployment:SharedflowDeployment", name, state, makeResourceOptions(options, id)); } + private static SharedflowDeploymentArgs makeArgs(SharedflowDeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SharedflowDeploymentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/SyncAuthorization.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/SyncAuthorization.java index 9e959bf41c..d090193e61 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/SyncAuthorization.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/SyncAuthorization.java @@ -203,13 +203,20 @@ public SyncAuthorization(String name, SyncAuthorizationArgs args) { * @param options A bag of options that control this resource's behavior. */ public SyncAuthorization(String name, SyncAuthorizationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/syncAuthorization:SyncAuthorization", name, args == null ? SyncAuthorizationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/syncAuthorization:SyncAuthorization", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SyncAuthorization(String name, Output id, @Nullable SyncAuthorizationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/syncAuthorization:SyncAuthorization", name, state, makeResourceOptions(options, id)); } + private static SyncAuthorizationArgs makeArgs(SyncAuthorizationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SyncAuthorizationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/TargetServer.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/TargetServer.java index 55f99b06b0..0f530573b7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apigee/TargetServer.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/TargetServer.java @@ -316,13 +316,20 @@ public TargetServer(String name, TargetServerArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetServer(String name, TargetServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apigee/targetServer:TargetServer", name, args == null ? TargetServerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apigee/targetServer:TargetServer", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetServer(String name, Output id, @Nullable TargetServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apigee/targetServer:TargetServer", name, state, makeResourceOptions(options, id)); } + private static TargetServerArgs makeArgs(TargetServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetServerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/EnvironmentKeyvaluemapsEntriesState.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/EnvironmentKeyvaluemapsEntriesState.java new file mode 100644 index 0000000000..ef83217009 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/EnvironmentKeyvaluemapsEntriesState.java @@ -0,0 +1,169 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EnvironmentKeyvaluemapsEntriesState extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentKeyvaluemapsEntriesState Empty = new EnvironmentKeyvaluemapsEntriesState(); + + /** + * The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + */ + @Import(name="envKeyvaluemapId") + private @Nullable Output envKeyvaluemapId; + + /** + * @return The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + */ + public Optional> envKeyvaluemapId() { + return Optional.ofNullable(this.envKeyvaluemapId); + } + + /** + * Required. Resource URI that can be used to identify the scope of the key value map entries. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Required. Resource URI that can be used to identify the scope of the key value map entries. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Required. Data or payload that is being retrieved and associated with the unique key. + * + */ + @Import(name="value") + private @Nullable Output value; + + /** + * @return Required. Data or payload that is being retrieved and associated with the unique key. + * + */ + public Optional> value() { + return Optional.ofNullable(this.value); + } + + private EnvironmentKeyvaluemapsEntriesState() {} + + private EnvironmentKeyvaluemapsEntriesState(EnvironmentKeyvaluemapsEntriesState $) { + this.envKeyvaluemapId = $.envKeyvaluemapId; + this.name = $.name; + this.value = $.value; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentKeyvaluemapsEntriesState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentKeyvaluemapsEntriesState $; + + public Builder() { + $ = new EnvironmentKeyvaluemapsEntriesState(); + } + + public Builder(EnvironmentKeyvaluemapsEntriesState defaults) { + $ = new EnvironmentKeyvaluemapsEntriesState(Objects.requireNonNull(defaults)); + } + + /** + * @param envKeyvaluemapId The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envKeyvaluemapId(@Nullable Output envKeyvaluemapId) { + $.envKeyvaluemapId = envKeyvaluemapId; + return this; + } + + /** + * @param envKeyvaluemapId The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envKeyvaluemapId(String envKeyvaluemapId) { + return envKeyvaluemapId(Output.of(envKeyvaluemapId)); + } + + /** + * @param name Required. Resource URI that can be used to identify the scope of the key value map entries. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Required. Resource URI that can be used to identify the scope of the key value map entries. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param value Required. Data or payload that is being retrieved and associated with the unique key. + * + * @return builder + * + */ + public Builder value(@Nullable Output value) { + $.value = value; + return this; + } + + /** + * @param value Required. Data or payload that is being retrieved and associated with the unique key. + * + * @return builder + * + */ + public Builder value(String value) { + return value(Output.of(value)); + } + + public EnvironmentKeyvaluemapsEntriesState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/EnvironmentKeyvaluemapsState.java b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/EnvironmentKeyvaluemapsState.java new file mode 100644 index 0000000000..35f05de6a6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/apigee/inputs/EnvironmentKeyvaluemapsState.java @@ -0,0 +1,132 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.apigee.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class EnvironmentKeyvaluemapsState extends com.pulumi.resources.ResourceArgs { + + public static final EnvironmentKeyvaluemapsState Empty = new EnvironmentKeyvaluemapsState(); + + /** + * The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + */ + @Import(name="envId") + private @Nullable Output envId; + + /** + * @return The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + */ + public Optional> envId() { + return Optional.ofNullable(this.envId); + } + + /** + * Required. ID of the key value map. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Required. ID of the key value map. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private EnvironmentKeyvaluemapsState() {} + + private EnvironmentKeyvaluemapsState(EnvironmentKeyvaluemapsState $) { + this.envId = $.envId; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(EnvironmentKeyvaluemapsState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private EnvironmentKeyvaluemapsState $; + + public Builder() { + $ = new EnvironmentKeyvaluemapsState(); + } + + public Builder(EnvironmentKeyvaluemapsState defaults) { + $ = new EnvironmentKeyvaluemapsState(Objects.requireNonNull(defaults)); + } + + /** + * @param envId The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envId(@Nullable Output envId) { + $.envId = envId; + return this; + } + + /** + * @param envId The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * *** + * + * @return builder + * + */ + public Builder envId(String envId) { + return envId(Output.of(envId)); + } + + /** + * @param name Required. ID of the key value map. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Required. ID of the key value map. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public EnvironmentKeyvaluemapsState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/Application.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/Application.java index ae6278d488..244fb89033 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/Application.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/Application.java @@ -319,13 +319,20 @@ public Application(String name, ApplicationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Application(String name, ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/application:Application", name, args == null ? ApplicationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/application:Application", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Application(String name, Output id, @Nullable ApplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/application:Application", name, state, makeResourceOptions(options, id)); } + private static ApplicationArgs makeArgs(ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApplicationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/ApplicationUrlDispatchRules.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/ApplicationUrlDispatchRules.java index d23a31f3be..082263d1e5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/ApplicationUrlDispatchRules.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/ApplicationUrlDispatchRules.java @@ -171,13 +171,20 @@ public ApplicationUrlDispatchRules(String name, ApplicationUrlDispatchRulesArgs * @param options A bag of options that control this resource's behavior. */ public ApplicationUrlDispatchRules(String name, ApplicationUrlDispatchRulesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/applicationUrlDispatchRules:ApplicationUrlDispatchRules", name, args == null ? ApplicationUrlDispatchRulesArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/applicationUrlDispatchRules:ApplicationUrlDispatchRules", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ApplicationUrlDispatchRules(String name, Output id, @Nullable ApplicationUrlDispatchRulesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/applicationUrlDispatchRules:ApplicationUrlDispatchRules", name, state, makeResourceOptions(options, id)); } + private static ApplicationUrlDispatchRulesArgs makeArgs(ApplicationUrlDispatchRulesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApplicationUrlDispatchRulesArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/DomainMapping.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/DomainMapping.java index 69a18f34b6..2df333870b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/DomainMapping.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/DomainMapping.java @@ -219,13 +219,20 @@ public DomainMapping(String name, DomainMappingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DomainMapping(String name, DomainMappingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/domainMapping:DomainMapping", name, args == null ? DomainMappingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/domainMapping:DomainMapping", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DomainMapping(String name, Output id, @Nullable DomainMappingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/domainMapping:DomainMapping", name, state, makeResourceOptions(options, id)); } + private static DomainMappingArgs makeArgs(DomainMappingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DomainMappingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/EngineSplitTraffic.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/EngineSplitTraffic.java index fbec8856ca..6fba52c84c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/EngineSplitTraffic.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/EngineSplitTraffic.java @@ -130,13 +130,20 @@ public EngineSplitTraffic(String name, EngineSplitTrafficArgs args) { * @param options A bag of options that control this resource's behavior. */ public EngineSplitTraffic(String name, EngineSplitTrafficArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/engineSplitTraffic:EngineSplitTraffic", name, args == null ? EngineSplitTrafficArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/engineSplitTraffic:EngineSplitTraffic", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EngineSplitTraffic(String name, Output id, @Nullable EngineSplitTrafficState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/engineSplitTraffic:EngineSplitTraffic", name, state, makeResourceOptions(options, id)); } + private static EngineSplitTrafficArgs makeArgs(EngineSplitTrafficArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EngineSplitTrafficArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/FirewallRule.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/FirewallRule.java index a62103229d..041cebfe7f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/FirewallRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/FirewallRule.java @@ -217,13 +217,20 @@ public FirewallRule(String name, FirewallRuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public FirewallRule(String name, FirewallRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/firewallRule:FirewallRule", name, args == null ? FirewallRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/firewallRule:FirewallRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FirewallRule(String name, Output id, @Nullable FirewallRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/firewallRule:FirewallRule", name, state, makeResourceOptions(options, id)); } + private static FirewallRuleArgs makeArgs(FirewallRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FirewallRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/FlexibleAppVersion.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/FlexibleAppVersion.java index 195ecfe380..4e9da0e3bd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/FlexibleAppVersion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/FlexibleAppVersion.java @@ -696,13 +696,20 @@ public FlexibleAppVersion(String name, FlexibleAppVersionArgs args) { * @param options A bag of options that control this resource's behavior. */ public FlexibleAppVersion(String name, FlexibleAppVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/flexibleAppVersion:FlexibleAppVersion", name, args == null ? FlexibleAppVersionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/flexibleAppVersion:FlexibleAppVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FlexibleAppVersion(String name, Output id, @Nullable FlexibleAppVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/flexibleAppVersion:FlexibleAppVersion", name, state, makeResourceOptions(options, id)); } + private static FlexibleAppVersionArgs makeArgs(FlexibleAppVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FlexibleAppVersionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/ServiceNetworkSettings.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/ServiceNetworkSettings.java index 6619158f45..0145b9a8be 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/ServiceNetworkSettings.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/ServiceNetworkSettings.java @@ -189,13 +189,20 @@ public ServiceNetworkSettings(String name, ServiceNetworkSettingsArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceNetworkSettings(String name, ServiceNetworkSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/serviceNetworkSettings:ServiceNetworkSettings", name, args == null ? ServiceNetworkSettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/serviceNetworkSettings:ServiceNetworkSettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceNetworkSettings(String name, Output id, @Nullable ServiceNetworkSettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/serviceNetworkSettings:ServiceNetworkSettings", name, state, makeResourceOptions(options, id)); } + private static ServiceNetworkSettingsArgs makeArgs(ServiceNetworkSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceNetworkSettingsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/appengine/StandardAppVersion.java b/sdk/java/src/main/java/com/pulumi/gcp/appengine/StandardAppVersion.java index 7b78df0626..a75c6974ca 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/appengine/StandardAppVersion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/appengine/StandardAppVersion.java @@ -550,13 +550,20 @@ public StandardAppVersion(String name, StandardAppVersionArgs args) { * @param options A bag of options that control this resource's behavior. */ public StandardAppVersion(String name, StandardAppVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:appengine/standardAppVersion:StandardAppVersion", name, args == null ? StandardAppVersionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:appengine/standardAppVersion:StandardAppVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private StandardAppVersion(String name, Output id, @Nullable StandardAppVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:appengine/standardAppVersion:StandardAppVersion", name, state, makeResourceOptions(options, id)); } + private static StandardAppVersionArgs makeArgs(StandardAppVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? StandardAppVersionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apphub/Application.java b/sdk/java/src/main/java/com/pulumi/gcp/apphub/Application.java index a3b64851fe..cabfd22d28 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apphub/Application.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apphub/Application.java @@ -349,13 +349,20 @@ public Application(String name, ApplicationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Application(String name, ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apphub/application:Application", name, args == null ? ApplicationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apphub/application:Application", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Application(String name, Output id, @Nullable ApplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apphub/application:Application", name, state, makeResourceOptions(options, id)); } + private static ApplicationArgs makeArgs(ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ApplicationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apphub/Service.java b/sdk/java/src/main/java/com/pulumi/gcp/apphub/Service.java index 23daacebb3..b498bb8426 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apphub/Service.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apphub/Service.java @@ -643,13 +643,20 @@ public Service(String name, ServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Service(String name, ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apphub/service:Service", name, args == null ? ServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apphub/service:Service", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Service(String name, Output id, @Nullable ServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apphub/service:Service", name, state, makeResourceOptions(options, id)); } + private static ServiceArgs makeArgs(ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachment.java index afd6bda352..b643c0d322 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachment.java @@ -169,14 +169,14 @@ public Output createTime() { return this.createTime; } /** - * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; /** - * @return "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * @return "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" * */ public Output name() { @@ -201,7 +201,7 @@ public Output project() { /** * "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * */ @Export(name="serviceProject", refs={String.class}, tree="[0]") @@ -210,7 +210,7 @@ public Output project() { /** * @return "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * */ public Output> serviceProject() { @@ -285,13 +285,20 @@ public ServiceProjectAttachment(String name, ServiceProjectAttachmentArgs args) * @param options A bag of options that control this resource's behavior. */ public ServiceProjectAttachment(String name, ServiceProjectAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment", name, args == null ? ServiceProjectAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceProjectAttachment(String name, Output id, @Nullable ServiceProjectAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment", name, state, makeResourceOptions(options, id)); } + private static ServiceProjectAttachmentArgs makeArgs(ServiceProjectAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceProjectAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachmentArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachmentArgs.java index aed17f2c46..47ef56240e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachmentArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apphub/ServiceProjectAttachmentArgs.java @@ -36,7 +36,7 @@ public Optional> project() { /** * "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * */ @Import(name="serviceProject") @@ -45,7 +45,7 @@ public Optional> project() { /** * @return "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * */ public Optional> serviceProject() { @@ -123,7 +123,7 @@ public Builder project(String project) { /** * @param serviceProject "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * * @return builder * @@ -136,7 +136,7 @@ public Builder serviceProject(@Nullable Output serviceProject) { /** * @param serviceProject "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apphub/Workload.java b/sdk/java/src/main/java/com/pulumi/gcp/apphub/Workload.java index 356f7f439a..376eec7ecc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apphub/Workload.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apphub/Workload.java @@ -295,13 +295,20 @@ public Workload(String name, WorkloadArgs args) { * @param options A bag of options that control this resource's behavior. */ public Workload(String name, WorkloadArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:apphub/workload:Workload", name, args == null ? WorkloadArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:apphub/workload:Workload", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Workload(String name, Output id, @Nullable WorkloadState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:apphub/workload:Workload", name, state, makeResourceOptions(options, id)); } + private static WorkloadArgs makeArgs(WorkloadArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkloadArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/apphub/inputs/ServiceProjectAttachmentState.java b/sdk/java/src/main/java/com/pulumi/gcp/apphub/inputs/ServiceProjectAttachmentState.java index a8d0fd621e..8e8d6f8f12 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/apphub/inputs/ServiceProjectAttachmentState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/apphub/inputs/ServiceProjectAttachmentState.java @@ -31,14 +31,14 @@ public Optional> createTime() { } /** - * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" * */ @Import(name="name") private @Nullable Output name; /** - * @return "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * @return "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" * */ public Optional> name() { @@ -65,7 +65,7 @@ public Optional> project() { /** * "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * */ @Import(name="serviceProject") @@ -74,7 +74,7 @@ public Optional> project() { /** * @return "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * */ public Optional> serviceProject() { @@ -182,7 +182,7 @@ public Builder createTime(String createTime) { } /** - * @param name "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * @param name "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" * * @return builder * @@ -193,7 +193,7 @@ public Builder name(@Nullable Output name) { } /** - * @param name "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * @param name "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" * * @return builder * @@ -228,7 +228,7 @@ public Builder project(String project) { /** * @param serviceProject "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * * @return builder * @@ -241,7 +241,7 @@ public Builder serviceProject(@Nullable Output serviceProject) { /** * @param serviceProject "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java index ea16011a94..8eaab8882a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/AuthConfig.java @@ -426,13 +426,20 @@ public AuthConfig(String name, AuthConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public AuthConfig(String name, AuthConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:applicationintegration/authConfig:AuthConfig", name, args == null ? AuthConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:applicationintegration/authConfig:AuthConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AuthConfig(String name, Output id, @Nullable AuthConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:applicationintegration/authConfig:AuthConfig", name, state, makeResourceOptions(options, id)); } + private static AuthConfigArgs makeArgs(AuthConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AuthConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/Client.java b/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/Client.java index d186eefc33..06b7f467f6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/Client.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/applicationintegration/Client.java @@ -315,13 +315,20 @@ public Client(String name, ClientArgs args) { * @param options A bag of options that control this resource's behavior. */ public Client(String name, ClientArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:applicationintegration/client:Client", name, args == null ? ClientArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:applicationintegration/client:Client", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Client(String name, Output id, @Nullable ClientState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:applicationintegration/client:Client", name, state, makeResourceOptions(options, id)); } + private static ClientArgs makeArgs(ClientArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClientArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/Repository.java b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/Repository.java index 51a5846a10..bd94728c7e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/Repository.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/Repository.java @@ -1275,13 +1275,20 @@ public Repository(String name, RepositoryArgs args) { * @param options A bag of options that control this resource's behavior. */ public Repository(String name, RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:artifactregistry/repository:Repository", name, args == null ? RepositoryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:artifactregistry/repository:Repository", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Repository(String name, Output id, @Nullable RepositoryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:artifactregistry/repository:Repository", name, state, makeResourceOptions(options, id)); } + private static RepositoryArgs makeArgs(RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamBinding.java index 2ecd08f9a6..067d89e6f0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamBinding.java @@ -467,13 +467,20 @@ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:artifactregistry/repositoryIamBinding:RepositoryIamBinding", name, args == null ? RepositoryIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:artifactregistry/repositoryIamBinding:RepositoryIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamBinding(String name, Output id, @Nullable RepositoryIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:artifactregistry/repositoryIamBinding:RepositoryIamBinding", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamBindingArgs makeArgs(RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamMember.java index e04e620aca..817f87b6ff 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamMember.java @@ -466,13 +466,20 @@ public RepositoryIamMember(String name, RepositoryIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamMember(String name, RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:artifactregistry/repositoryIamMember:RepositoryIamMember", name, args == null ? RepositoryIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:artifactregistry/repositoryIamMember:RepositoryIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamMember(String name, Output id, @Nullable RepositoryIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:artifactregistry/repositoryIamMember:RepositoryIamMember", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamMemberArgs makeArgs(RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamPolicy.java index 38471f02cf..c6da7a9d6c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/RepositoryIamPolicy.java @@ -422,13 +422,20 @@ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:artifactregistry/repositoryIamPolicy:RepositoryIamPolicy", name, args == null ? RepositoryIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:artifactregistry/repositoryIamPolicy:RepositoryIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamPolicy(String name, Output id, @Nullable RepositoryIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:artifactregistry/repositoryIamPolicy:RepositoryIamPolicy", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamPolicyArgs makeArgs(RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/VpcscConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/VpcscConfig.java index 086764693f..fc4975df97 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/VpcscConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/artifactregistry/VpcscConfig.java @@ -165,13 +165,20 @@ public VpcscConfig(String name, @Nullable VpcscConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public VpcscConfig(String name, @Nullable VpcscConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:artifactregistry/vpcscConfig:VpcscConfig", name, args == null ? VpcscConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:artifactregistry/vpcscConfig:VpcscConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VpcscConfig(String name, Output id, @Nullable VpcscConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:artifactregistry/vpcscConfig:VpcscConfig", name, state, makeResourceOptions(options, id)); } + private static VpcscConfigArgs makeArgs(@Nullable VpcscConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VpcscConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/assuredworkloads/Workload.java b/sdk/java/src/main/java/com/pulumi/gcp/assuredworkloads/Workload.java index 10c8ca588e..455281ac44 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/assuredworkloads/Workload.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/assuredworkloads/Workload.java @@ -523,13 +523,20 @@ public Workload(String name, WorkloadArgs args) { * @param options A bag of options that control this resource's behavior. */ public Workload(String name, WorkloadArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:assuredworkloads/workload:Workload", name, args == null ? WorkloadArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:assuredworkloads/workload:Workload", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Workload(String name, Output id, @Nullable WorkloadState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:assuredworkloads/workload:Workload", name, state, makeResourceOptions(options, id)); } + private static WorkloadArgs makeArgs(WorkloadArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkloadArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/ManagementServer.java b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/ManagementServer.java index c582033941..447555b9de 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/ManagementServer.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/backupdisasterrecovery/ManagementServer.java @@ -233,13 +233,20 @@ public ManagementServer(String name, ManagementServerArgs args) { * @param options A bag of options that control this resource's behavior. */ public ManagementServer(String name, ManagementServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:backupdisasterrecovery/managementServer:ManagementServer", name, args == null ? ManagementServerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:backupdisasterrecovery/managementServer:ManagementServer", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagementServer(String name, Output id, @Nullable ManagementServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:backupdisasterrecovery/managementServer:ManagementServer", name, state, makeResourceOptions(options, id)); } + private static ManagementServerArgs makeArgs(ManagementServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagementServerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnection.java b/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnection.java index ae83d350b8..3c84aec874 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnection.java @@ -385,13 +385,20 @@ public AppConnection(String name, AppConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppConnection(String name, AppConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:beyondcorp/appConnection:AppConnection", name, args == null ? AppConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:beyondcorp/appConnection:AppConnection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppConnection(String name, Output id, @Nullable AppConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:beyondcorp/appConnection:AppConnection", name, state, makeResourceOptions(options, id)); } + private static AppConnectionArgs makeArgs(AppConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnector.java b/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnector.java index 92b69385ac..d17e980c8e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnector.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppConnector.java @@ -316,13 +316,20 @@ public AppConnector(String name, AppConnectorArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppConnector(String name, AppConnectorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:beyondcorp/appConnector:AppConnector", name, args == null ? AppConnectorArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:beyondcorp/appConnector:AppConnector", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppConnector(String name, Output id, @Nullable AppConnectorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:beyondcorp/appConnector:AppConnector", name, state, makeResourceOptions(options, id)); } + private static AppConnectorArgs makeArgs(AppConnectorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppConnectorArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppGateway.java b/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppGateway.java index f61db19578..7a6f72c77c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppGateway.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/beyondcorp/AppGateway.java @@ -358,13 +358,20 @@ public AppGateway(String name, @Nullable AppGatewayArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppGateway(String name, @Nullable AppGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:beyondcorp/appGateway:AppGateway", name, args == null ? AppGatewayArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:beyondcorp/appGateway:AppGateway", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppGateway(String name, Output id, @Nullable AppGatewayState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:beyondcorp/appGateway:AppGateway", name, state, makeResourceOptions(options, id)); } + private static AppGatewayArgs makeArgs(@Nullable AppGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppGatewayArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/biglake/Catalog.java b/sdk/java/src/main/java/com/pulumi/gcp/biglake/Catalog.java index 52585d0a44..cdedc093a8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/biglake/Catalog.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/biglake/Catalog.java @@ -234,13 +234,20 @@ public Catalog(String name, CatalogArgs args) { * @param options A bag of options that control this resource's behavior. */ public Catalog(String name, CatalogArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:biglake/catalog:Catalog", name, args == null ? CatalogArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:biglake/catalog:Catalog", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Catalog(String name, Output id, @Nullable CatalogState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:biglake/catalog:Catalog", name, state, makeResourceOptions(options, id)); } + private static CatalogArgs makeArgs(CatalogArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CatalogArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/biglake/Database.java b/sdk/java/src/main/java/com/pulumi/gcp/biglake/Database.java index f0ea914e57..b8855dfab0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/biglake/Database.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/biglake/Database.java @@ -271,13 +271,20 @@ public Database(String name, DatabaseArgs args) { * @param options A bag of options that control this resource's behavior. */ public Database(String name, DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:biglake/database:Database", name, args == null ? DatabaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:biglake/database:Database", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Database(String name, Output id, @Nullable DatabaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:biglake/database:Database", name, state, makeResourceOptions(options, id)); } + private static DatabaseArgs makeArgs(DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/biglake/Table.java b/sdk/java/src/main/java/com/pulumi/gcp/biglake/Table.java index d6fd84db4e..f2bcfd4a17 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/biglake/Table.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/biglake/Table.java @@ -338,13 +338,20 @@ public Table(String name, @Nullable TableArgs args) { * @param options A bag of options that control this resource's behavior. */ public Table(String name, @Nullable TableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:biglake/table:Table", name, args == null ? TableArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:biglake/table:Table", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Table(String name, Output id, @Nullable TableState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:biglake/table:Table", name, state, makeResourceOptions(options, id)); } + private static TableArgs makeArgs(@Nullable TableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TableArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfile.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfile.java index a77d9e8edf..5a6f742469 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfile.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfile.java @@ -10,6 +10,7 @@ import com.pulumi.gcp.Utilities; import com.pulumi.gcp.bigquery.AppProfileArgs; import com.pulumi.gcp.bigquery.inputs.AppProfileState; +import com.pulumi.gcp.bigquery.outputs.AppProfileDataBoostIsolationReadOnly; import com.pulumi.gcp.bigquery.outputs.AppProfileSingleClusterRouting; import com.pulumi.gcp.bigquery.outputs.AppProfileStandardIsolation; import java.lang.Boolean; @@ -318,6 +319,22 @@ public class AppProfile extends com.pulumi.resources.CustomResource { public Output appProfileId() { return this.appProfileId; } + /** + * Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + */ + @Export(name="dataBoostIsolationReadOnly", refs={AppProfileDataBoostIsolationReadOnly.class}, tree="[0]") + private Output dataBoostIsolationReadOnly; + + /** + * @return Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + */ + public Output> dataBoostIsolationReadOnly() { + return Codegen.optional(this.dataBoostIsolationReadOnly); + } /** * Long form description of the use case for this app profile. * @@ -479,13 +496,20 @@ public AppProfile(String name, AppProfileArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppProfile(String name, AppProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/appProfile:AppProfile", name, args == null ? AppProfileArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/appProfile:AppProfile", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppProfile(String name, Output id, @Nullable AppProfileState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/appProfile:AppProfile", name, state, makeResourceOptions(options, id)); } + private static AppProfileArgs makeArgs(AppProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppProfileArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfileArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfileArgs.java index 60ba602677..177591182f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfileArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/AppProfileArgs.java @@ -6,6 +6,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.bigquery.inputs.AppProfileDataBoostIsolationReadOnlyArgs; import com.pulumi.gcp.bigquery.inputs.AppProfileSingleClusterRoutingArgs; import com.pulumi.gcp.bigquery.inputs.AppProfileStandardIsolationArgs; import java.lang.Boolean; @@ -39,6 +40,23 @@ public Output appProfileId() { return this.appProfileId; } + /** + * Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + */ + @Import(name="dataBoostIsolationReadOnly") + private @Nullable Output dataBoostIsolationReadOnly; + + /** + * @return Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + */ + public Optional> dataBoostIsolationReadOnly() { + return Optional.ofNullable(this.dataBoostIsolationReadOnly); + } + /** * Long form description of the use case for this app profile. * @@ -175,6 +193,7 @@ private AppProfileArgs() {} private AppProfileArgs(AppProfileArgs $) { this.appProfileId = $.appProfileId; + this.dataBoostIsolationReadOnly = $.dataBoostIsolationReadOnly; this.description = $.description; this.ignoreWarnings = $.ignoreWarnings; this.instance = $.instance; @@ -228,6 +247,29 @@ public Builder appProfileId(String appProfileId) { return appProfileId(Output.of(appProfileId)); } + /** + * @param dataBoostIsolationReadOnly Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + * @return builder + * + */ + public Builder dataBoostIsolationReadOnly(@Nullable Output dataBoostIsolationReadOnly) { + $.dataBoostIsolationReadOnly = dataBoostIsolationReadOnly; + return this; + } + + /** + * @param dataBoostIsolationReadOnly Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + * @return builder + * + */ + public Builder dataBoostIsolationReadOnly(AppProfileDataBoostIsolationReadOnlyArgs dataBoostIsolationReadOnly) { + return dataBoostIsolationReadOnly(Output.of(dataBoostIsolationReadOnly)); + } + /** * @param description Long form description of the use case for this app profile. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/BiReservation.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/BiReservation.java index 02b5a130b8..1b8b3eb0be 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/BiReservation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/BiReservation.java @@ -208,13 +208,20 @@ public BiReservation(String name, BiReservationArgs args) { * @param options A bag of options that control this resource's behavior. */ public BiReservation(String name, BiReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/biReservation:BiReservation", name, args == null ? BiReservationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/biReservation:BiReservation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BiReservation(String name, Output id, @Nullable BiReservationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/biReservation:BiReservation", name, state, makeResourceOptions(options, id)); } + private static BiReservationArgs makeArgs(BiReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BiReservationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/CapacityCommitment.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/CapacityCommitment.java index bff338c43b..226037769f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/CapacityCommitment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/CapacityCommitment.java @@ -299,13 +299,20 @@ public CapacityCommitment(String name, CapacityCommitmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public CapacityCommitment(String name, CapacityCommitmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/capacityCommitment:CapacityCommitment", name, args == null ? CapacityCommitmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/capacityCommitment:CapacityCommitment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CapacityCommitment(String name, Output id, @Nullable CapacityCommitmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/capacityCommitment:CapacityCommitment", name, state, makeResourceOptions(options, id)); } + private static CapacityCommitmentArgs makeArgs(CapacityCommitmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CapacityCommitmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Connection.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Connection.java index d96029e465..5cd9e4c137 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Connection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Connection.java @@ -828,13 +828,20 @@ public Connection(String name, @Nullable ConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public Connection(String name, @Nullable ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/connection:Connection", name, args == null ? ConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/connection:Connection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Connection(String name, Output id, @Nullable ConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/connection:Connection", name, state, makeResourceOptions(options, id)); } + private static ConnectionArgs makeArgs(@Nullable ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamBinding.java index a9f938d9eb..6dd90663a9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamBinding.java @@ -479,13 +479,20 @@ public ConnectionIamBinding(String name, ConnectionIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionIamBinding(String name, ConnectionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/connectionIamBinding:ConnectionIamBinding", name, args == null ? ConnectionIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/connectionIamBinding:ConnectionIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionIamBinding(String name, Output id, @Nullable ConnectionIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/connectionIamBinding:ConnectionIamBinding", name, state, makeResourceOptions(options, id)); } + private static ConnectionIamBindingArgs makeArgs(ConnectionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamMember.java index 2d12669de6..875e27ed18 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamMember.java @@ -478,13 +478,20 @@ public ConnectionIamMember(String name, ConnectionIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionIamMember(String name, ConnectionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/connectionIamMember:ConnectionIamMember", name, args == null ? ConnectionIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/connectionIamMember:ConnectionIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionIamMember(String name, Output id, @Nullable ConnectionIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/connectionIamMember:ConnectionIamMember", name, state, makeResourceOptions(options, id)); } + private static ConnectionIamMemberArgs makeArgs(ConnectionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamPolicy.java index 0ad121efef..5894a6a75a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ConnectionIamPolicy.java @@ -434,13 +434,20 @@ public ConnectionIamPolicy(String name, ConnectionIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionIamPolicy(String name, ConnectionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/connectionIamPolicy:ConnectionIamPolicy", name, args == null ? ConnectionIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/connectionIamPolicy:ConnectionIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionIamPolicy(String name, Output id, @Nullable ConnectionIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/connectionIamPolicy:ConnectionIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ConnectionIamPolicyArgs makeArgs(ConnectionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java index ef0fc5eb84..01838ba898 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DataTransferConfig.java @@ -420,13 +420,20 @@ public DataTransferConfig(String name, DataTransferConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataTransferConfig(String name, DataTransferConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/dataTransferConfig:DataTransferConfig", name, args == null ? DataTransferConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/dataTransferConfig:DataTransferConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataTransferConfig(String name, Output id, @Nullable DataTransferConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/dataTransferConfig:DataTransferConfig", name, state, makeResourceOptions(options, id)); } + private static DataTransferConfigArgs makeArgs(DataTransferConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataTransferConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Dataset.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Dataset.java index 06fe7a8d76..1bb2b77a16 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Dataset.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Dataset.java @@ -849,13 +849,20 @@ public Dataset(String name, DatasetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Dataset(String name, DatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/dataset:Dataset", name, args == null ? DatasetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/dataset:Dataset", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Dataset(String name, Output id, @Nullable DatasetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/dataset:Dataset", name, state, makeResourceOptions(options, id)); } + private static DatasetArgs makeArgs(DatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetAccess.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetAccess.java index 88cf04c7df..ddd104ff19 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetAccess.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetAccess.java @@ -525,13 +525,20 @@ public DatasetAccess(String name, DatasetAccessArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatasetAccess(String name, DatasetAccessArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/datasetAccess:DatasetAccess", name, args == null ? DatasetAccessArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/datasetAccess:DatasetAccess", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatasetAccess(String name, Output id, @Nullable DatasetAccessState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/datasetAccess:DatasetAccess", name, state, makeResourceOptions(options, id)); } + private static DatasetAccessArgs makeArgs(DatasetAccessArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetAccessArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamBinding.java index bcf543736d..6212866e40 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamBinding.java @@ -459,13 +459,20 @@ public DatasetIamBinding(String name, DatasetIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatasetIamBinding(String name, DatasetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/datasetIamBinding:DatasetIamBinding", name, args == null ? DatasetIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/datasetIamBinding:DatasetIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatasetIamBinding(String name, Output id, @Nullable DatasetIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/datasetIamBinding:DatasetIamBinding", name, state, makeResourceOptions(options, id)); } + private static DatasetIamBindingArgs makeArgs(DatasetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamMember.java index 95728d63f6..5da1994fb5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamMember.java @@ -458,13 +458,20 @@ public DatasetIamMember(String name, DatasetIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatasetIamMember(String name, DatasetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/datasetIamMember:DatasetIamMember", name, args == null ? DatasetIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/datasetIamMember:DatasetIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatasetIamMember(String name, Output id, @Nullable DatasetIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/datasetIamMember:DatasetIamMember", name, state, makeResourceOptions(options, id)); } + private static DatasetIamMemberArgs makeArgs(DatasetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamPolicy.java index 93e95157e0..d4b49ff443 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/DatasetIamPolicy.java @@ -418,13 +418,20 @@ public DatasetIamPolicy(String name, DatasetIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatasetIamPolicy(String name, DatasetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/datasetIamPolicy:DatasetIamPolicy", name, args == null ? DatasetIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/datasetIamPolicy:DatasetIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatasetIamPolicy(String name, Output id, @Nullable DatasetIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/datasetIamPolicy:DatasetIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DatasetIamPolicyArgs makeArgs(DatasetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamBinding.java index e3e710f297..05bcba6d78 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamBinding.java @@ -737,13 +737,20 @@ public IamBinding(String name, IamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public IamBinding(String name, IamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/iamBinding:IamBinding", name, args == null ? IamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/iamBinding:IamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IamBinding(String name, Output id, @Nullable IamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/iamBinding:IamBinding", name, state, makeResourceOptions(options, id)); } + private static IamBindingArgs makeArgs(IamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamMember.java index b2ce62d122..3d523ffa5c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamMember.java @@ -736,13 +736,20 @@ public IamMember(String name, IamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public IamMember(String name, IamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/iamMember:IamMember", name, args == null ? IamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/iamMember:IamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IamMember(String name, Output id, @Nullable IamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/iamMember:IamMember", name, state, makeResourceOptions(options, id)); } + private static IamMemberArgs makeArgs(IamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamPolicy.java index 10d5a1976f..9c34e79e16 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/IamPolicy.java @@ -682,13 +682,20 @@ public IamPolicy(String name, IamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public IamPolicy(String name, IamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/iamPolicy:IamPolicy", name, args == null ? IamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/iamPolicy:IamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IamPolicy(String name, Output id, @Nullable IamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/iamPolicy:IamPolicy", name, state, makeResourceOptions(options, id)); } + private static IamPolicyArgs makeArgs(IamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Job.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Job.java index 40c7ce5823..77727a5c53 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Job.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Job.java @@ -960,13 +960,20 @@ public Job(String name, JobArgs args) { * @param options A bag of options that control this resource's behavior. */ public Job(String name, JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/job:Job", name, args == null ? JobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/job:Job", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Job(String name, Output id, @Nullable JobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/job:Job", name, state, makeResourceOptions(options, id)); } + private static JobArgs makeArgs(JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Reservation.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Reservation.java index 47a7acb51d..17eb437ce5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Reservation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Reservation.java @@ -178,17 +178,27 @@ public Output> location() { return Codegen.optional(this.location); } /** + * (Optional, Deprecated) * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ @Export(name="multiRegionAuxiliary", refs={Boolean.class}, tree="[0]") private Output multiRegionAuxiliary; /** - * @return Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + * @return (Optional, Deprecated) + * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ public Output> multiRegionAuxiliary() { return Codegen.optional(this.multiRegionAuxiliary); @@ -266,13 +276,20 @@ public Reservation(String name, ReservationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Reservation(String name, ReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/reservation:Reservation", name, args == null ? ReservationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/reservation:Reservation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Reservation(String name, Output id, @Nullable ReservationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/reservation:Reservation", name, state, makeResourceOptions(options, id)); } + private static ReservationArgs makeArgs(ReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ReservationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationArgs.java index a0e5ca98f4..2f07e8daf3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationArgs.java @@ -103,18 +103,32 @@ public Optional> location() { } /** + * (Optional, Deprecated) * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ @Import(name="multiRegionAuxiliary") private @Nullable Output multiRegionAuxiliary; /** - * @return Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + * @return (Optional, Deprecated) + * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ public Optional> multiRegionAuxiliary() { return Optional.ofNullable(this.multiRegionAuxiliary); } @@ -318,24 +332,38 @@ public Builder location(String location) { } /** - * @param multiRegionAuxiliary Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + * @param multiRegionAuxiliary (Optional, Deprecated) + * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * * @return builder * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ public Builder multiRegionAuxiliary(@Nullable Output multiRegionAuxiliary) { $.multiRegionAuxiliary = multiRegionAuxiliary; return this; } /** - * @param multiRegionAuxiliary Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + * @param multiRegionAuxiliary (Optional, Deprecated) + * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * * @return builder * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ public Builder multiRegionAuxiliary(Boolean multiRegionAuxiliary) { return multiRegionAuxiliary(Output.of(multiRegionAuxiliary)); } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationAssignment.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationAssignment.java index 89bf1282c9..2c3f5b9d8d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationAssignment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/ReservationAssignment.java @@ -227,13 +227,20 @@ public ReservationAssignment(String name, ReservationAssignmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public ReservationAssignment(String name, ReservationAssignmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/reservationAssignment:ReservationAssignment", name, args == null ? ReservationAssignmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/reservationAssignment:ReservationAssignment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ReservationAssignment(String name, Output id, @Nullable ReservationAssignmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/reservationAssignment:ReservationAssignment", name, state, makeResourceOptions(options, id)); } + private static ReservationAssignmentArgs makeArgs(ReservationAssignmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ReservationAssignmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Routine.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Routine.java index c28f30d7a3..29513f8fb1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Routine.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Routine.java @@ -849,13 +849,20 @@ public Routine(String name, RoutineArgs args) { * @param options A bag of options that control this resource's behavior. */ public Routine(String name, RoutineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/routine:Routine", name, args == null ? RoutineArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/routine:Routine", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Routine(String name, Output id, @Nullable RoutineState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/routine:Routine", name, state, makeResourceOptions(options, id)); } + private static RoutineArgs makeArgs(RoutineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RoutineArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Table.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Table.java index 6258d9c563..fc17b17e51 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Table.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/Table.java @@ -146,16 +146,30 @@ @ResourceType(type="gcp:bigquery/table:Table") public class Table extends com.pulumi.resources.CustomResource { /** - * This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ @Export(name="allowResourceTagsOnDeletion", refs={Boolean.class}, tree="[0]") private Output allowResourceTagsOnDeletion; /** - * @return This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * @return If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. * */ public Output> allowResourceTagsOnDeletion() { @@ -560,7 +574,7 @@ public Output> requirePartitionFilter() { return Codegen.optional(this.requirePartitionFilter); } /** - * This field is in beta. The tags attached to this table. Tag keys are + * The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -571,7 +585,7 @@ public Output> requirePartitionFilter() { private Output> resourceTags; /** - * @return This field is in beta. The tags attached to this table. Tag keys are + * @return The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -730,13 +744,20 @@ public Table(String name, TableArgs args) { * @param options A bag of options that control this resource's behavior. */ public Table(String name, TableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquery/table:Table", name, args == null ? TableArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquery/table:Table", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Table(String name, Output id, @Nullable TableState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquery/table:Table", name, state, makeResourceOptions(options, id)); } + private static TableArgs makeArgs(TableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TableArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/TableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/TableArgs.java index 2eba92eff7..565c46fd54 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/TableArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/TableArgs.java @@ -29,18 +29,36 @@ public final class TableArgs extends com.pulumi.resources.ResourceArgs { public static final TableArgs Empty = new TableArgs(); /** - * This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ @Import(name="allowResourceTagsOnDeletion") private @Nullable Output allowResourceTagsOnDeletion; /** - * @return This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * @return If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ public Optional> allowResourceTagsOnDeletion() { return Optional.ofNullable(this.allowResourceTagsOnDeletion); } @@ -302,7 +320,7 @@ public Optional> requirePartitionFilter() { } /** - * This field is in beta. The tags attached to this table. Tag keys are + * The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -313,7 +331,7 @@ public Optional> requirePartitionFilter() { private @Nullable Output> resourceTags; /** - * @return This field is in beta. The tags attached to this table. Tag keys are + * @return The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -474,24 +492,42 @@ public Builder(TableArgs defaults) { } /** - * @param allowResourceTagsOnDeletion This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * @param allowResourceTagsOnDeletion If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. * * @return builder * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. + * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ public Builder allowResourceTagsOnDeletion(@Nullable Output allowResourceTagsOnDeletion) { $.allowResourceTagsOnDeletion = allowResourceTagsOnDeletion; return this; } /** - * @param allowResourceTagsOnDeletion This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * @param allowResourceTagsOnDeletion If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. * * @return builder * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. + * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ public Builder allowResourceTagsOnDeletion(Boolean allowResourceTagsOnDeletion) { return allowResourceTagsOnDeletion(Output.of(allowResourceTagsOnDeletion)); } @@ -849,7 +885,7 @@ public Builder requirePartitionFilter(Boolean requirePartitionFilter) { } /** - * @param resourceTags This field is in beta. The tags attached to this table. Tag keys are + * @param resourceTags The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -864,7 +900,7 @@ public Builder resourceTags(@Nullable Output> resourceTags) { } /** - * @param resourceTags This field is in beta. The tags attached to this table. Tag keys are + * @param resourceTags The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/AppProfileDataBoostIsolationReadOnlyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/AppProfileDataBoostIsolationReadOnlyArgs.java new file mode 100644 index 0000000000..505de4df3e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/AppProfileDataBoostIsolationReadOnlyArgs.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.bigquery.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class AppProfileDataBoostIsolationReadOnlyArgs extends com.pulumi.resources.ResourceArgs { + + public static final AppProfileDataBoostIsolationReadOnlyArgs Empty = new AppProfileDataBoostIsolationReadOnlyArgs(); + + /** + * The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + * + */ + @Import(name="computeBillingOwner", required=true) + private Output computeBillingOwner; + + /** + * @return The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + * + */ + public Output computeBillingOwner() { + return this.computeBillingOwner; + } + + private AppProfileDataBoostIsolationReadOnlyArgs() {} + + private AppProfileDataBoostIsolationReadOnlyArgs(AppProfileDataBoostIsolationReadOnlyArgs $) { + this.computeBillingOwner = $.computeBillingOwner; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AppProfileDataBoostIsolationReadOnlyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AppProfileDataBoostIsolationReadOnlyArgs $; + + public Builder() { + $ = new AppProfileDataBoostIsolationReadOnlyArgs(); + } + + public Builder(AppProfileDataBoostIsolationReadOnlyArgs defaults) { + $ = new AppProfileDataBoostIsolationReadOnlyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param computeBillingOwner The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + * + * @return builder + * + */ + public Builder computeBillingOwner(Output computeBillingOwner) { + $.computeBillingOwner = computeBillingOwner; + return this; + } + + /** + * @param computeBillingOwner The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + * + * @return builder + * + */ + public Builder computeBillingOwner(String computeBillingOwner) { + return computeBillingOwner(Output.of(computeBillingOwner)); + } + + public AppProfileDataBoostIsolationReadOnlyArgs build() { + if ($.computeBillingOwner == null) { + throw new MissingRequiredPropertyException("AppProfileDataBoostIsolationReadOnlyArgs", "computeBillingOwner"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/AppProfileState.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/AppProfileState.java index 687d5df1e1..01e91f3723 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/AppProfileState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/AppProfileState.java @@ -5,6 +5,7 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.bigquery.inputs.AppProfileDataBoostIsolationReadOnlyArgs; import com.pulumi.gcp.bigquery.inputs.AppProfileSingleClusterRoutingArgs; import com.pulumi.gcp.bigquery.inputs.AppProfileStandardIsolationArgs; import java.lang.Boolean; @@ -38,6 +39,23 @@ public Optional> appProfileId() { return Optional.ofNullable(this.appProfileId); } + /** + * Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + */ + @Import(name="dataBoostIsolationReadOnly") + private @Nullable Output dataBoostIsolationReadOnly; + + /** + * @return Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + */ + public Optional> dataBoostIsolationReadOnly() { + return Optional.ofNullable(this.dataBoostIsolationReadOnly); + } + /** * Long form description of the use case for this app profile. * @@ -189,6 +207,7 @@ private AppProfileState() {} private AppProfileState(AppProfileState $) { this.appProfileId = $.appProfileId; + this.dataBoostIsolationReadOnly = $.dataBoostIsolationReadOnly; this.description = $.description; this.ignoreWarnings = $.ignoreWarnings; this.instance = $.instance; @@ -243,6 +262,29 @@ public Builder appProfileId(String appProfileId) { return appProfileId(Output.of(appProfileId)); } + /** + * @param dataBoostIsolationReadOnly Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + * @return builder + * + */ + public Builder dataBoostIsolationReadOnly(@Nullable Output dataBoostIsolationReadOnly) { + $.dataBoostIsolationReadOnly = dataBoostIsolationReadOnly; + return this; + } + + /** + * @param dataBoostIsolationReadOnly Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + * + * @return builder + * + */ + public Builder dataBoostIsolationReadOnly(AppProfileDataBoostIsolationReadOnlyArgs dataBoostIsolationReadOnly) { + return dataBoostIsolationReadOnly(Output.of(dataBoostIsolationReadOnly)); + } + /** * @param description Long form description of the use case for this app profile. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/ReservationState.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/ReservationState.java index 6bae46807f..7d7a47a964 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/ReservationState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/ReservationState.java @@ -102,18 +102,32 @@ public Optional> location() { } /** + * (Optional, Deprecated) * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ @Import(name="multiRegionAuxiliary") private @Nullable Output multiRegionAuxiliary; /** - * @return Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + * @return (Optional, Deprecated) + * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ public Optional> multiRegionAuxiliary() { return Optional.ofNullable(this.multiRegionAuxiliary); } @@ -317,24 +331,38 @@ public Builder location(String location) { } /** - * @param multiRegionAuxiliary Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + * @param multiRegionAuxiliary (Optional, Deprecated) + * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * * @return builder * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ public Builder multiRegionAuxiliary(@Nullable Output multiRegionAuxiliary) { $.multiRegionAuxiliary = multiRegionAuxiliary; return this; } /** - * @param multiRegionAuxiliary Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + * @param multiRegionAuxiliary (Optional, Deprecated) + * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. * + * > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * * @return builder * + * @deprecated + * `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * */ + @Deprecated /* `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ public Builder multiRegionAuxiliary(Boolean multiRegionAuxiliary) { return multiRegionAuxiliary(Output.of(multiRegionAuxiliary)); } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/TableState.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/TableState.java index dd4f70c467..17be6128fa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/TableState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/inputs/TableState.java @@ -28,18 +28,36 @@ public final class TableState extends com.pulumi.resources.ResourceArgs { public static final TableState Empty = new TableState(); /** - * This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ @Import(name="allowResourceTagsOnDeletion") private @Nullable Output allowResourceTagsOnDeletion; /** - * @return This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * @return If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ public Optional> allowResourceTagsOnDeletion() { return Optional.ofNullable(this.allowResourceTagsOnDeletion); } @@ -466,7 +484,7 @@ public Optional> requirePartitionFilter() { } /** - * This field is in beta. The tags attached to this table. Tag keys are + * The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -477,7 +495,7 @@ public Optional> requirePartitionFilter() { private @Nullable Output> resourceTags; /** - * @return This field is in beta. The tags attached to this table. Tag keys are + * @return The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -679,24 +697,42 @@ public Builder(TableState defaults) { } /** - * @param allowResourceTagsOnDeletion This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * @param allowResourceTagsOnDeletion If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. * * @return builder * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. + * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ public Builder allowResourceTagsOnDeletion(@Nullable Output allowResourceTagsOnDeletion) { $.allowResourceTagsOnDeletion = allowResourceTagsOnDeletion; return this; } /** - * @param allowResourceTagsOnDeletion This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * @param allowResourceTagsOnDeletion If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. * * @return builder * + * @deprecated + * This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. + * */ + @Deprecated /* This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ public Builder allowResourceTagsOnDeletion(Boolean allowResourceTagsOnDeletion) { return allowResourceTagsOnDeletion(Output.of(allowResourceTagsOnDeletion)); } @@ -1273,7 +1309,7 @@ public Builder requirePartitionFilter(Boolean requirePartitionFilter) { } /** - * @param resourceTags This field is in beta. The tags attached to this table. Tag keys are + * @param resourceTags The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -1288,7 +1324,7 @@ public Builder resourceTags(@Nullable Output> resourceTags) { } /** - * @param resourceTags This field is in beta. The tags attached to this table. Tag keys are + * @param resourceTags The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquery/outputs/AppProfileDataBoostIsolationReadOnly.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/outputs/AppProfileDataBoostIsolationReadOnly.java new file mode 100644 index 0000000000..dfc59eeefe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquery/outputs/AppProfileDataBoostIsolationReadOnly.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.bigquery.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class AppProfileDataBoostIsolationReadOnly { + /** + * @return The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + * + */ + private String computeBillingOwner; + + private AppProfileDataBoostIsolationReadOnly() {} + /** + * @return The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + * + */ + public String computeBillingOwner() { + return this.computeBillingOwner; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(AppProfileDataBoostIsolationReadOnly defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String computeBillingOwner; + public Builder() {} + public Builder(AppProfileDataBoostIsolationReadOnly defaults) { + Objects.requireNonNull(defaults); + this.computeBillingOwner = defaults.computeBillingOwner; + } + + @CustomType.Setter + public Builder computeBillingOwner(String computeBillingOwner) { + if (computeBillingOwner == null) { + throw new MissingRequiredPropertyException("AppProfileDataBoostIsolationReadOnly", "computeBillingOwner"); + } + this.computeBillingOwner = computeBillingOwner; + return this; + } + public AppProfileDataBoostIsolationReadOnly build() { + final var _resultValue = new AppProfileDataBoostIsolationReadOnly(); + _resultValue.computeBillingOwner = computeBillingOwner; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchange.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchange.java index ab88e81689..ed1887d564 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchange.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchange.java @@ -268,13 +268,20 @@ public DataExchange(String name, DataExchangeArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataExchange(String name, DataExchangeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/dataExchange:DataExchange", name, args == null ? DataExchangeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/dataExchange:DataExchange", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataExchange(String name, Output id, @Nullable DataExchangeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/dataExchange:DataExchange", name, state, makeResourceOptions(options, id)); } + private static DataExchangeArgs makeArgs(DataExchangeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataExchangeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamBinding.java index fe00fae96f..ce97f0459a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamBinding.java @@ -467,13 +467,20 @@ public DataExchangeIamBinding(String name, DataExchangeIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataExchangeIamBinding(String name, DataExchangeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/dataExchangeIamBinding:DataExchangeIamBinding", name, args == null ? DataExchangeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/dataExchangeIamBinding:DataExchangeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataExchangeIamBinding(String name, Output id, @Nullable DataExchangeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/dataExchangeIamBinding:DataExchangeIamBinding", name, state, makeResourceOptions(options, id)); } + private static DataExchangeIamBindingArgs makeArgs(DataExchangeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataExchangeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamMember.java index 9e3512d7cc..83319dc676 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamMember.java @@ -466,13 +466,20 @@ public DataExchangeIamMember(String name, DataExchangeIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataExchangeIamMember(String name, DataExchangeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/dataExchangeIamMember:DataExchangeIamMember", name, args == null ? DataExchangeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/dataExchangeIamMember:DataExchangeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataExchangeIamMember(String name, Output id, @Nullable DataExchangeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/dataExchangeIamMember:DataExchangeIamMember", name, state, makeResourceOptions(options, id)); } + private static DataExchangeIamMemberArgs makeArgs(DataExchangeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataExchangeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamPolicy.java index e20b2a544f..348080650a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/DataExchangeIamPolicy.java @@ -422,13 +422,20 @@ public DataExchangeIamPolicy(String name, DataExchangeIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataExchangeIamPolicy(String name, DataExchangeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/dataExchangeIamPolicy:DataExchangeIamPolicy", name, args == null ? DataExchangeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/dataExchangeIamPolicy:DataExchangeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataExchangeIamPolicy(String name, Output id, @Nullable DataExchangeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/dataExchangeIamPolicy:DataExchangeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DataExchangeIamPolicyArgs makeArgs(DataExchangeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataExchangeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/Listing.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/Listing.java index 61b641408c..ba3a372019 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/Listing.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/Listing.java @@ -426,13 +426,20 @@ public Listing(String name, ListingArgs args) { * @param options A bag of options that control this resource's behavior. */ public Listing(String name, ListingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/listing:Listing", name, args == null ? ListingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/listing:Listing", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Listing(String name, Output id, @Nullable ListingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/listing:Listing", name, state, makeResourceOptions(options, id)); } + private static ListingArgs makeArgs(ListingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ListingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamBinding.java index f7fdf5ee7e..8b1d19ad8f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamBinding.java @@ -487,13 +487,20 @@ public ListingIamBinding(String name, ListingIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ListingIamBinding(String name, ListingIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/listingIamBinding:ListingIamBinding", name, args == null ? ListingIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/listingIamBinding:ListingIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ListingIamBinding(String name, Output id, @Nullable ListingIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/listingIamBinding:ListingIamBinding", name, state, makeResourceOptions(options, id)); } + private static ListingIamBindingArgs makeArgs(ListingIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ListingIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamMember.java index 1e8bee2e17..63b73f23e0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamMember.java @@ -486,13 +486,20 @@ public ListingIamMember(String name, ListingIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ListingIamMember(String name, ListingIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/listingIamMember:ListingIamMember", name, args == null ? ListingIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/listingIamMember:ListingIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ListingIamMember(String name, Output id, @Nullable ListingIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/listingIamMember:ListingIamMember", name, state, makeResourceOptions(options, id)); } + private static ListingIamMemberArgs makeArgs(ListingIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ListingIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamPolicy.java index 9f16835b09..78d468f8fc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigqueryanalyticshub/ListingIamPolicy.java @@ -442,13 +442,20 @@ public ListingIamPolicy(String name, ListingIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ListingIamPolicy(String name, ListingIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigqueryanalyticshub/listingIamPolicy:ListingIamPolicy", name, args == null ? ListingIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigqueryanalyticshub/listingIamPolicy:ListingIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ListingIamPolicy(String name, Output id, @Nullable ListingIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigqueryanalyticshub/listingIamPolicy:ListingIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ListingIamPolicyArgs makeArgs(ListingIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ListingIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicy.java index be366fe164..3d010aff1a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicy.java @@ -321,13 +321,20 @@ public DataPolicy(String name, DataPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataPolicy(String name, DataPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquerydatapolicy/dataPolicy:DataPolicy", name, args == null ? DataPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquerydatapolicy/dataPolicy:DataPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataPolicy(String name, Output id, @Nullable DataPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquerydatapolicy/dataPolicy:DataPolicy", name, state, makeResourceOptions(options, id)); } + private static DataPolicyArgs makeArgs(DataPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamBinding.java index 9cf1f987f7..b7c7fbc8b7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamBinding.java @@ -459,13 +459,20 @@ public DataPolicyIamBinding(String name, DataPolicyIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataPolicyIamBinding(String name, DataPolicyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquerydatapolicy/dataPolicyIamBinding:DataPolicyIamBinding", name, args == null ? DataPolicyIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquerydatapolicy/dataPolicyIamBinding:DataPolicyIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataPolicyIamBinding(String name, Output id, @Nullable DataPolicyIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquerydatapolicy/dataPolicyIamBinding:DataPolicyIamBinding", name, state, makeResourceOptions(options, id)); } + private static DataPolicyIamBindingArgs makeArgs(DataPolicyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataPolicyIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamMember.java index 659ddc55f6..29e9c24151 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamMember.java @@ -458,13 +458,20 @@ public DataPolicyIamMember(String name, DataPolicyIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataPolicyIamMember(String name, DataPolicyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquerydatapolicy/dataPolicyIamMember:DataPolicyIamMember", name, args == null ? DataPolicyIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquerydatapolicy/dataPolicyIamMember:DataPolicyIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataPolicyIamMember(String name, Output id, @Nullable DataPolicyIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquerydatapolicy/dataPolicyIamMember:DataPolicyIamMember", name, state, makeResourceOptions(options, id)); } + private static DataPolicyIamMemberArgs makeArgs(DataPolicyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataPolicyIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamPolicy.java index 6450546afa..53c51143a5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigquerydatapolicy/DataPolicyIamPolicy.java @@ -414,13 +414,20 @@ public DataPolicyIamPolicy(String name, DataPolicyIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataPolicyIamPolicy(String name, DataPolicyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigquerydatapolicy/dataPolicyIamPolicy:DataPolicyIamPolicy", name, args == null ? DataPolicyIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigquerydatapolicy/dataPolicyIamPolicy:DataPolicyIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataPolicyIamPolicy(String name, Output id, @Nullable DataPolicyIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigquerydatapolicy/dataPolicyIamPolicy:DataPolicyIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DataPolicyIamPolicyArgs makeArgs(DataPolicyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataPolicyIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/AuthorizedView.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/AuthorizedView.java index 248bc7b4be..0014e2562e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/AuthorizedView.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/AuthorizedView.java @@ -239,13 +239,20 @@ public AuthorizedView(String name, AuthorizedViewArgs args) { * @param options A bag of options that control this resource's behavior. */ public AuthorizedView(String name, AuthorizedViewArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/authorizedView:AuthorizedView", name, args == null ? AuthorizedViewArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/authorizedView:AuthorizedView", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AuthorizedView(String name, Output id, @Nullable AuthorizedViewState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/authorizedView:AuthorizedView", name, state, makeResourceOptions(options, id)); } + private static AuthorizedViewArgs makeArgs(AuthorizedViewArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AuthorizedViewArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/GCPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/GCPolicy.java index cc242cc147..779a03be2f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/GCPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/GCPolicy.java @@ -418,13 +418,20 @@ public GCPolicy(String name, GCPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public GCPolicy(String name, GCPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/gCPolicy:GCPolicy", name, args == null ? GCPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/gCPolicy:GCPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GCPolicy(String name, Output id, @Nullable GCPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/gCPolicy:GCPolicy", name, state, makeResourceOptions(options, id)); } + private static GCPolicyArgs makeArgs(GCPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GCPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Instance.java index ecfd718ca8..4fd15663f8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Instance.java @@ -357,13 +357,20 @@ public Instance(String name, @Nullable InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, @Nullable InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(@Nullable InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamBinding.java index b2b6acd922..b30ed2c20c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamBinding.java @@ -423,13 +423,20 @@ public InstanceIamBinding(String name, InstanceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamBinding(String name, InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/instanceIamBinding:InstanceIamBinding", name, args == null ? InstanceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/instanceIamBinding:InstanceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamBinding(String name, Output id, @Nullable InstanceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/instanceIamBinding:InstanceIamBinding", name, state, makeResourceOptions(options, id)); } + private static InstanceIamBindingArgs makeArgs(InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamMember.java index bf059de709..bb26f221d2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamMember.java @@ -422,13 +422,20 @@ public InstanceIamMember(String name, InstanceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamMember(String name, InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/instanceIamMember:InstanceIamMember", name, args == null ? InstanceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/instanceIamMember:InstanceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamMember(String name, Output id, @Nullable InstanceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/instanceIamMember:InstanceIamMember", name, state, makeResourceOptions(options, id)); } + private static InstanceIamMemberArgs makeArgs(InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamPolicy.java index 57c847a512..1fc08f7493 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/InstanceIamPolicy.java @@ -382,13 +382,20 @@ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/instanceIamPolicy:InstanceIamPolicy", name, args == null ? InstanceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/instanceIamPolicy:InstanceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamPolicy(String name, Output id, @Nullable InstanceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/instanceIamPolicy:InstanceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static InstanceIamPolicyArgs makeArgs(InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Table.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Table.java index a84b6be1da..655c73761e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Table.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/Table.java @@ -38,6 +38,7 @@ * import com.pulumi.gcp.bigtable.Table; * import com.pulumi.gcp.bigtable.TableArgs; * import com.pulumi.gcp.bigtable.inputs.TableColumnFamilyArgs; + * import com.pulumi.gcp.bigtable.inputs.TableAutomatedBackupPolicyArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -76,6 +77,10 @@ * .family("family-second") * .build()) * .changeStreamRetention("24h0m0s") + * .automatedBackupPolicy(TableAutomatedBackupPolicyArgs.builder() + * .retentionPeriod("72h0m0s") + * .frequency("24h0m0s") + * .build()) * .build()); * * } @@ -114,16 +119,18 @@ @ResourceType(type="gcp:bigtable/table:Table") public class Table extends com.pulumi.resources.CustomResource { /** - * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * */ @Export(name="automatedBackupPolicy", refs={TableAutomatedBackupPolicy.class}, tree="[0]") private Output automatedBackupPolicy; /** - * @return Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * @return Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * */ public Output> automatedBackupPolicy() { @@ -132,8 +139,6 @@ public Output> automatedBackupPolicy() { /** * Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * */ @Export(name="changeStreamRetention", refs={String.class}, tree="[0]") private Output changeStreamRetention; @@ -141,8 +146,6 @@ public Output> automatedBackupPolicy() { /** * @return Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * */ public Output changeStreamRetention() { return this.changeStreamRetention; @@ -260,13 +263,20 @@ public Table(String name, TableArgs args) { * @param options A bag of options that control this resource's behavior. */ public Table(String name, TableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/table:Table", name, args == null ? TableArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/table:Table", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Table(String name, Output id, @Nullable TableState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/table:Table", name, state, makeResourceOptions(options, id)); } + private static TableArgs makeArgs(TableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TableArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableArgs.java index 644abaeaed..59aacd7534 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableArgs.java @@ -20,16 +20,18 @@ public final class TableArgs extends com.pulumi.resources.ResourceArgs { public static final TableArgs Empty = new TableArgs(); /** - * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * */ @Import(name="automatedBackupPolicy") private @Nullable Output automatedBackupPolicy; /** - * @return Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * @return Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * */ public Optional> automatedBackupPolicy() { @@ -39,8 +41,6 @@ public Optional> automatedBackupPolicy() /** * Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * */ @Import(name="changeStreamRetention") private @Nullable Output changeStreamRetention; @@ -48,8 +48,6 @@ public Optional> automatedBackupPolicy() /** * @return Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * */ public Optional> changeStreamRetention() { return Optional.ofNullable(this.changeStreamRetention); @@ -183,8 +181,9 @@ public Builder(TableArgs defaults) { } /** - * @param automatedBackupPolicy Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * @param automatedBackupPolicy Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * * @return builder * @@ -195,8 +194,9 @@ public Builder automatedBackupPolicy(@Nullable Output changeStreamRetent /** * @param changeStreamRetention Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamBinding.java index edca385c7e..85b55e7c77 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamBinding.java @@ -443,13 +443,20 @@ public TableIamBinding(String name, TableIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TableIamBinding(String name, TableIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/tableIamBinding:TableIamBinding", name, args == null ? TableIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/tableIamBinding:TableIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TableIamBinding(String name, Output id, @Nullable TableIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/tableIamBinding:TableIamBinding", name, state, makeResourceOptions(options, id)); } + private static TableIamBindingArgs makeArgs(TableIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TableIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamMember.java index ce6c784bc6..334cb85aa2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamMember.java @@ -442,13 +442,20 @@ public TableIamMember(String name, TableIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TableIamMember(String name, TableIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/tableIamMember:TableIamMember", name, args == null ? TableIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/tableIamMember:TableIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TableIamMember(String name, Output id, @Nullable TableIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/tableIamMember:TableIamMember", name, state, makeResourceOptions(options, id)); } + private static TableIamMemberArgs makeArgs(TableIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TableIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamPolicy.java index d53024befa..1075841bb7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/TableIamPolicy.java @@ -402,13 +402,20 @@ public TableIamPolicy(String name, TableIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TableIamPolicy(String name, TableIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:bigtable/tableIamPolicy:TableIamPolicy", name, args == null ? TableIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:bigtable/tableIamPolicy:TableIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TableIamPolicy(String name, Output id, @Nullable TableIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:bigtable/tableIamPolicy:TableIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TableIamPolicyArgs makeArgs(TableIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TableIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/inputs/TableState.java b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/inputs/TableState.java index 6f753ca43b..bf93245310 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/bigtable/inputs/TableState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/bigtable/inputs/TableState.java @@ -19,16 +19,18 @@ public final class TableState extends com.pulumi.resources.ResourceArgs { public static final TableState Empty = new TableState(); /** - * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * */ @Import(name="automatedBackupPolicy") private @Nullable Output automatedBackupPolicy; /** - * @return Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * @return Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * */ public Optional> automatedBackupPolicy() { @@ -38,8 +40,6 @@ public Optional> automatedBackupPolicy() /** * Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * */ @Import(name="changeStreamRetention") private @Nullable Output changeStreamRetention; @@ -47,8 +47,6 @@ public Optional> automatedBackupPolicy() /** * @return Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * */ public Optional> changeStreamRetention() { return Optional.ofNullable(this.changeStreamRetention); @@ -182,8 +180,9 @@ public Builder(TableState defaults) { } /** - * @param automatedBackupPolicy Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * @param automatedBackupPolicy Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * *** * * @return builder * @@ -194,8 +193,9 @@ public Builder automatedBackupPolicy(@Nullable Output changeStreamRetent /** * @param changeStreamRetention Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. * - * *** - * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamBinding.java index d277d660dd..7e4b9d86e3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamBinding.java @@ -401,13 +401,20 @@ public AccountIamBinding(String name, AccountIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccountIamBinding(String name, AccountIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:billing/accountIamBinding:AccountIamBinding", name, args == null ? AccountIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:billing/accountIamBinding:AccountIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccountIamBinding(String name, Output id, @Nullable AccountIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:billing/accountIamBinding:AccountIamBinding", name, state, makeResourceOptions(options, id)); } + private static AccountIamBindingArgs makeArgs(AccountIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccountIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamMember.java index 2be991e816..fd72ebf211 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamMember.java @@ -400,13 +400,20 @@ public AccountIamMember(String name, AccountIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccountIamMember(String name, AccountIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:billing/accountIamMember:AccountIamMember", name, args == null ? AccountIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:billing/accountIamMember:AccountIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccountIamMember(String name, Output id, @Nullable AccountIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:billing/accountIamMember:AccountIamMember", name, state, makeResourceOptions(options, id)); } + private static AccountIamMemberArgs makeArgs(AccountIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccountIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamPolicy.java index 9c815b3d7b..a26ec3300e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/billing/AccountIamPolicy.java @@ -364,13 +364,20 @@ public AccountIamPolicy(String name, AccountIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccountIamPolicy(String name, AccountIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:billing/accountIamPolicy:AccountIamPolicy", name, args == null ? AccountIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:billing/accountIamPolicy:AccountIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccountIamPolicy(String name, Output id, @Nullable AccountIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:billing/accountIamPolicy:AccountIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AccountIamPolicyArgs makeArgs(AccountIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccountIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/billing/Budget.java b/sdk/java/src/main/java/com/pulumi/gcp/billing/Budget.java index 86278cfad0..5b7be4fff4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/billing/Budget.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/billing/Budget.java @@ -611,13 +611,20 @@ public Budget(String name, BudgetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Budget(String name, BudgetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:billing/budget:Budget", name, args == null ? BudgetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:billing/budget:Budget", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Budget(String name, Output id, @Nullable BudgetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:billing/budget:Budget", name, state, makeResourceOptions(options, id)); } + private static BudgetArgs makeArgs(BudgetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BudgetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/billing/ProjectInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/billing/ProjectInfo.java index e55b339ba5..256bb1fb96 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/billing/ProjectInfo.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/billing/ProjectInfo.java @@ -150,13 +150,20 @@ public ProjectInfo(String name, ProjectInfoArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectInfo(String name, ProjectInfoArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:billing/projectInfo:ProjectInfo", name, args == null ? ProjectInfoArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:billing/projectInfo:ProjectInfo", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectInfo(String name, Output id, @Nullable ProjectInfoState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:billing/projectInfo:ProjectInfo", name, state, makeResourceOptions(options, id)); } + private static ProjectInfoArgs makeArgs(ProjectInfoArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectInfoArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/billing/SubAccount.java b/sdk/java/src/main/java/com/pulumi/gcp/billing/SubAccount.java index ce06cd864d..6e5491f383 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/billing/SubAccount.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/billing/SubAccount.java @@ -182,13 +182,20 @@ public SubAccount(String name, SubAccountArgs args) { * @param options A bag of options that control this resource's behavior. */ public SubAccount(String name, SubAccountArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:billing/subAccount:SubAccount", name, args == null ? SubAccountArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:billing/subAccount:SubAccount", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SubAccount(String name, Output id, @Nullable SubAccountState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:billing/subAccount:SubAccount", name, state, makeResourceOptions(options, id)); } + private static SubAccountArgs makeArgs(SubAccountArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SubAccountArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Attestor.java b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Attestor.java index 7f6a6d8c36..89262d9810 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Attestor.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Attestor.java @@ -280,13 +280,20 @@ public Attestor(String name, AttestorArgs args) { * @param options A bag of options that control this resource's behavior. */ public Attestor(String name, AttestorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:binaryauthorization/attestor:Attestor", name, args == null ? AttestorArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:binaryauthorization/attestor:Attestor", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Attestor(String name, Output id, @Nullable AttestorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:binaryauthorization/attestor:Attestor", name, state, makeResourceOptions(options, id)); } + private static AttestorArgs makeArgs(AttestorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AttestorArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamBinding.java index 4624dd11e2..f6ab262396 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamBinding.java @@ -439,13 +439,20 @@ public AttestorIamBinding(String name, AttestorIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public AttestorIamBinding(String name, AttestorIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:binaryauthorization/attestorIamBinding:AttestorIamBinding", name, args == null ? AttestorIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:binaryauthorization/attestorIamBinding:AttestorIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AttestorIamBinding(String name, Output id, @Nullable AttestorIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:binaryauthorization/attestorIamBinding:AttestorIamBinding", name, state, makeResourceOptions(options, id)); } + private static AttestorIamBindingArgs makeArgs(AttestorIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AttestorIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamMember.java index 7bbda9cc3a..feab8cf06d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamMember.java @@ -438,13 +438,20 @@ public AttestorIamMember(String name, AttestorIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public AttestorIamMember(String name, AttestorIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:binaryauthorization/attestorIamMember:AttestorIamMember", name, args == null ? AttestorIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:binaryauthorization/attestorIamMember:AttestorIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AttestorIamMember(String name, Output id, @Nullable AttestorIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:binaryauthorization/attestorIamMember:AttestorIamMember", name, state, makeResourceOptions(options, id)); } + private static AttestorIamMemberArgs makeArgs(AttestorIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AttestorIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamPolicy.java index bb7ff9f2bf..3dcde130c5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/AttestorIamPolicy.java @@ -394,13 +394,20 @@ public AttestorIamPolicy(String name, AttestorIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AttestorIamPolicy(String name, AttestorIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:binaryauthorization/attestorIamPolicy:AttestorIamPolicy", name, args == null ? AttestorIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:binaryauthorization/attestorIamPolicy:AttestorIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AttestorIamPolicy(String name, Output id, @Nullable AttestorIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:binaryauthorization/attestorIamPolicy:AttestorIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AttestorIamPolicyArgs makeArgs(AttestorIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AttestorIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Policy.java b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Policy.java index f433d6794e..2c52be3ac3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Policy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/binaryauthorization/Policy.java @@ -299,13 +299,20 @@ public Policy(String name, PolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public Policy(String name, PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:binaryauthorization/policy:Policy", name, args == null ? PolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:binaryauthorization/policy:Policy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Policy(String name, Output id, @Nullable PolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:binaryauthorization/policy:Policy", name, state, makeResourceOptions(options, id)); } + private static PolicyArgs makeArgs(PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/blockchainnodeengine/BlockchainNodes.java b/sdk/java/src/main/java/com/pulumi/gcp/blockchainnodeengine/BlockchainNodes.java index 6df42f47f2..19d51284e0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/blockchainnodeengine/BlockchainNodes.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/blockchainnodeengine/BlockchainNodes.java @@ -376,13 +376,20 @@ public BlockchainNodes(String name, BlockchainNodesArgs args) { * @param options A bag of options that control this resource's behavior. */ public BlockchainNodes(String name, BlockchainNodesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:blockchainnodeengine/blockchainNodes:BlockchainNodes", name, args == null ? BlockchainNodesArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:blockchainnodeengine/blockchainNodes:BlockchainNodes", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BlockchainNodes(String name, Output id, @Nullable BlockchainNodesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:blockchainnodeengine/blockchainNodes:BlockchainNodes", name, state, makeResourceOptions(options, id)); } + private static BlockchainNodesArgs makeArgs(BlockchainNodesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BlockchainNodesArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Authority.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Authority.java index 828720074c..38c2e252da 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Authority.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Authority.java @@ -300,13 +300,13 @@ * var privatecaSaKeyuserSignerverifier = new CryptoKeyIAMMember("privatecaSaKeyuserSignerverifier", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId("projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key") * .role("roles/cloudkms.signerVerifier") - * .member(privatecaSa.email().applyValue(email -> String.format("serviceAccount:%s", email))) + * .member(privatecaSa.member()) * .build()); * * var privatecaSaKeyuserViewer = new CryptoKeyIAMMember("privatecaSaKeyuserViewer", CryptoKeyIAMMemberArgs.builder() * .cryptoKeyId("projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key") * .role("roles/viewer") - * .member(privatecaSa.email().applyValue(email -> String.format("serviceAccount:%s", email))) + * .member(privatecaSa.member()) * .build()); * * var default_ = new Authority("default", AuthorityArgs.builder() @@ -878,13 +878,20 @@ public Authority(String name, AuthorityArgs args) { * @param options A bag of options that control this resource's behavior. */ public Authority(String name, AuthorityArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/authority:Authority", name, args == null ? AuthorityArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/authority:Authority", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Authority(String name, Output id, @Nullable AuthorityState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/authority:Authority", name, state, makeResourceOptions(options, id)); } + private static AuthorityArgs makeArgs(AuthorityArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AuthorityArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPool.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPool.java index b89e4f22c4..55a343533c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPool.java @@ -424,13 +424,20 @@ public CaPool(String name, CaPoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public CaPool(String name, CaPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/caPool:CaPool", name, args == null ? CaPoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/caPool:CaPool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CaPool(String name, Output id, @Nullable CaPoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/caPool:CaPool", name, state, makeResourceOptions(options, id)); } + private static CaPoolArgs makeArgs(CaPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CaPoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamBinding.java index 20bb4fb5ea..6c2df0145d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamBinding.java @@ -735,13 +735,20 @@ public CaPoolIamBinding(String name, CaPoolIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public CaPoolIamBinding(String name, CaPoolIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/caPoolIamBinding:CaPoolIamBinding", name, args == null ? CaPoolIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/caPoolIamBinding:CaPoolIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CaPoolIamBinding(String name, Output id, @Nullable CaPoolIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/caPoolIamBinding:CaPoolIamBinding", name, state, makeResourceOptions(options, id)); } + private static CaPoolIamBindingArgs makeArgs(CaPoolIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CaPoolIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamMember.java index 3f4bd9636d..518be920d0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamMember.java @@ -734,13 +734,20 @@ public CaPoolIamMember(String name, CaPoolIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public CaPoolIamMember(String name, CaPoolIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/caPoolIamMember:CaPoolIamMember", name, args == null ? CaPoolIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/caPoolIamMember:CaPoolIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CaPoolIamMember(String name, Output id, @Nullable CaPoolIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/caPoolIamMember:CaPoolIamMember", name, state, makeResourceOptions(options, id)); } + private static CaPoolIamMemberArgs makeArgs(CaPoolIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CaPoolIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamPolicy.java index 309c5f129c..4161863951 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CaPoolIamPolicy.java @@ -680,13 +680,20 @@ public CaPoolIamPolicy(String name, CaPoolIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public CaPoolIamPolicy(String name, CaPoolIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/caPoolIamPolicy:CaPoolIamPolicy", name, args == null ? CaPoolIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/caPoolIamPolicy:CaPoolIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CaPoolIamPolicy(String name, Output id, @Nullable CaPoolIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/caPoolIamPolicy:CaPoolIamPolicy", name, state, makeResourceOptions(options, id)); } + private static CaPoolIamPolicyArgs makeArgs(CaPoolIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CaPoolIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Certificate.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Certificate.java index c66f7481d4..504de22156 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Certificate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/Certificate.java @@ -1113,13 +1113,20 @@ public Certificate(String name, CertificateArgs args) { * @param options A bag of options that control this resource's behavior. */ public Certificate(String name, CertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/certificate:Certificate", name, args == null ? CertificateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/certificate:Certificate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Certificate(String name, Output id, @Nullable CertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/certificate:Certificate", name, state, makeResourceOptions(options, id)); } + private static CertificateArgs makeArgs(CertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplate.java index 7d63f0a326..bbbc13be3e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplate.java @@ -394,13 +394,20 @@ public CertificateTemplate(String name, CertificateTemplateArgs args) { * @param options A bag of options that control this resource's behavior. */ public CertificateTemplate(String name, CertificateTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/certificateTemplate:CertificateTemplate", name, args == null ? CertificateTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/certificateTemplate:CertificateTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CertificateTemplate(String name, Output id, @Nullable CertificateTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/certificateTemplate:CertificateTemplate", name, state, makeResourceOptions(options, id)); } + private static CertificateTemplateArgs makeArgs(CertificateTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamBinding.java index b82c2cea99..54b5b72683 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamBinding.java @@ -731,13 +731,20 @@ public CertificateTemplateIamBinding(String name, CertificateTemplateIamBindingA * @param options A bag of options that control this resource's behavior. */ public CertificateTemplateIamBinding(String name, CertificateTemplateIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/certificateTemplateIamBinding:CertificateTemplateIamBinding", name, args == null ? CertificateTemplateIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/certificateTemplateIamBinding:CertificateTemplateIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CertificateTemplateIamBinding(String name, Output id, @Nullable CertificateTemplateIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/certificateTemplateIamBinding:CertificateTemplateIamBinding", name, state, makeResourceOptions(options, id)); } + private static CertificateTemplateIamBindingArgs makeArgs(CertificateTemplateIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateTemplateIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamMember.java index ced5a46dcd..e5f5caa834 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamMember.java @@ -730,13 +730,20 @@ public CertificateTemplateIamMember(String name, CertificateTemplateIamMemberArg * @param options A bag of options that control this resource's behavior. */ public CertificateTemplateIamMember(String name, CertificateTemplateIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/certificateTemplateIamMember:CertificateTemplateIamMember", name, args == null ? CertificateTemplateIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/certificateTemplateIamMember:CertificateTemplateIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CertificateTemplateIamMember(String name, Output id, @Nullable CertificateTemplateIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/certificateTemplateIamMember:CertificateTemplateIamMember", name, state, makeResourceOptions(options, id)); } + private static CertificateTemplateIamMemberArgs makeArgs(CertificateTemplateIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateTemplateIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamPolicy.java index 06ea768085..fc7a0aecda 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificateauthority/CertificateTemplateIamPolicy.java @@ -676,13 +676,20 @@ public CertificateTemplateIamPolicy(String name, CertificateTemplateIamPolicyArg * @param options A bag of options that control this resource's behavior. */ public CertificateTemplateIamPolicy(String name, CertificateTemplateIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificateauthority/certificateTemplateIamPolicy:CertificateTemplateIamPolicy", name, args == null ? CertificateTemplateIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificateauthority/certificateTemplateIamPolicy:CertificateTemplateIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CertificateTemplateIamPolicy(String name, Output id, @Nullable CertificateTemplateIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificateauthority/certificateTemplateIamPolicy:CertificateTemplateIamPolicy", name, state, makeResourceOptions(options, id)); } + private static CertificateTemplateIamPolicyArgs makeArgs(CertificateTemplateIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateTemplateIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/Certificate.java b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/Certificate.java index 62bf8948b4..4336a21c8f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/Certificate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/Certificate.java @@ -765,13 +765,20 @@ public Certificate(String name, @Nullable CertificateArgs args) { * @param options A bag of options that control this resource's behavior. */ public Certificate(String name, @Nullable CertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificatemanager/certificate:Certificate", name, args == null ? CertificateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificatemanager/certificate:Certificate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Certificate(String name, Output id, @Nullable CertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificatemanager/certificate:Certificate", name, state, makeResourceOptions(options, id)); } + private static CertificateArgs makeArgs(@Nullable CertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateIssuanceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateIssuanceConfig.java index 412a9318e4..004bcbcd48 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateIssuanceConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateIssuanceConfig.java @@ -393,13 +393,20 @@ public CertificateIssuanceConfig(String name, CertificateIssuanceConfigArgs args * @param options A bag of options that control this resource's behavior. */ public CertificateIssuanceConfig(String name, CertificateIssuanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificatemanager/certificateIssuanceConfig:CertificateIssuanceConfig", name, args == null ? CertificateIssuanceConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificatemanager/certificateIssuanceConfig:CertificateIssuanceConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CertificateIssuanceConfig(String name, Output id, @Nullable CertificateIssuanceConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificatemanager/certificateIssuanceConfig:CertificateIssuanceConfig", name, state, makeResourceOptions(options, id)); } + private static CertificateIssuanceConfigArgs makeArgs(CertificateIssuanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateIssuanceConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMap.java b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMap.java index 0ce1d94ed7..ce69cd69d5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMap.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMap.java @@ -265,13 +265,20 @@ public CertificateMap(String name, @Nullable CertificateMapArgs args) { * @param options A bag of options that control this resource's behavior. */ public CertificateMap(String name, @Nullable CertificateMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificatemanager/certificateMap:CertificateMap", name, args == null ? CertificateMapArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificatemanager/certificateMap:CertificateMap", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CertificateMap(String name, Output id, @Nullable CertificateMapState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificatemanager/certificateMap:CertificateMap", name, state, makeResourceOptions(options, id)); } + private static CertificateMapArgs makeArgs(@Nullable CertificateMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateMapArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMapEntry.java b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMapEntry.java index e3b83ac8ca..f2b447b0bf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMapEntry.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/CertificateMapEntry.java @@ -377,13 +377,20 @@ public CertificateMapEntry(String name, CertificateMapEntryArgs args) { * @param options A bag of options that control this resource's behavior. */ public CertificateMapEntry(String name, CertificateMapEntryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificatemanager/certificateMapEntry:CertificateMapEntry", name, args == null ? CertificateMapEntryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificatemanager/certificateMapEntry:CertificateMapEntry", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CertificateMapEntry(String name, Output id, @Nullable CertificateMapEntryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificatemanager/certificateMapEntry:CertificateMapEntry", name, state, makeResourceOptions(options, id)); } + private static CertificateMapEntryArgs makeArgs(CertificateMapEntryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CertificateMapEntryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/DnsAuthorization.java b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/DnsAuthorization.java index ceb4c7181c..d5012b75de 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/DnsAuthorization.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/DnsAuthorization.java @@ -329,13 +329,20 @@ public DnsAuthorization(String name, DnsAuthorizationArgs args) { * @param options A bag of options that control this resource's behavior. */ public DnsAuthorization(String name, DnsAuthorizationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificatemanager/dnsAuthorization:DnsAuthorization", name, args == null ? DnsAuthorizationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificatemanager/dnsAuthorization:DnsAuthorization", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DnsAuthorization(String name, Output id, @Nullable DnsAuthorizationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificatemanager/dnsAuthorization:DnsAuthorization", name, state, makeResourceOptions(options, id)); } + private static DnsAuthorizationArgs makeArgs(DnsAuthorizationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DnsAuthorizationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/TrustConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/TrustConfig.java index f7be0a3ff1..dc5eafade4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/TrustConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/certificatemanager/TrustConfig.java @@ -361,13 +361,20 @@ public TrustConfig(String name, TrustConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public TrustConfig(String name, TrustConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:certificatemanager/trustConfig:TrustConfig", name, args == null ? TrustConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:certificatemanager/trustConfig:TrustConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TrustConfig(String name, Output id, @Nullable TrustConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:certificatemanager/trustConfig:TrustConfig", name, state, makeResourceOptions(options, id)); } + private static TrustConfigArgs makeArgs(TrustConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TrustConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/FolderFeed.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/FolderFeed.java index 225ed67450..17be23c40c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/FolderFeed.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/FolderFeed.java @@ -323,13 +323,20 @@ public FolderFeed(String name, FolderFeedArgs args) { * @param options A bag of options that control this resource's behavior. */ public FolderFeed(String name, FolderFeedArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudasset/folderFeed:FolderFeed", name, args == null ? FolderFeedArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudasset/folderFeed:FolderFeed", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FolderFeed(String name, Output id, @Nullable FolderFeedState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudasset/folderFeed:FolderFeed", name, state, makeResourceOptions(options, id)); } + private static FolderFeedArgs makeArgs(FolderFeedArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FolderFeedArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/OrganizationFeed.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/OrganizationFeed.java index 6b0a13f973..7b88b4a8fc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/OrganizationFeed.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/OrganizationFeed.java @@ -299,13 +299,20 @@ public OrganizationFeed(String name, OrganizationFeedArgs args) { * @param options A bag of options that control this resource's behavior. */ public OrganizationFeed(String name, OrganizationFeedArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudasset/organizationFeed:OrganizationFeed", name, args == null ? OrganizationFeedArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudasset/organizationFeed:OrganizationFeed", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationFeed(String name, Output id, @Nullable OrganizationFeedState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudasset/organizationFeed:OrganizationFeed", name, state, makeResourceOptions(options, id)); } + private static OrganizationFeedArgs makeArgs(OrganizationFeedArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationFeedArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/ProjectFeed.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/ProjectFeed.java index 9e3abd9ef8..49470b323e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/ProjectFeed.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudasset/ProjectFeed.java @@ -293,13 +293,20 @@ public ProjectFeed(String name, ProjectFeedArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectFeed(String name, ProjectFeedArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudasset/projectFeed:ProjectFeed", name, args == null ? ProjectFeedArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudasset/projectFeed:ProjectFeed", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectFeed(String name, Output id, @Nullable ProjectFeedState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudasset/projectFeed:ProjectFeed", name, state, makeResourceOptions(options, id)); } + private static ProjectFeedArgs makeArgs(ProjectFeedArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectFeedArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/BitbucketServerConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/BitbucketServerConfig.java index aaa112b832..5895cd07ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/BitbucketServerConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/BitbucketServerConfig.java @@ -446,13 +446,20 @@ public BitbucketServerConfig(String name, BitbucketServerConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public BitbucketServerConfig(String name, BitbucketServerConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuild/bitbucketServerConfig:BitbucketServerConfig", name, args == null ? BitbucketServerConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuild/bitbucketServerConfig:BitbucketServerConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BitbucketServerConfig(String name, Output id, @Nullable BitbucketServerConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuild/bitbucketServerConfig:BitbucketServerConfig", name, state, makeResourceOptions(options, id)); } + private static BitbucketServerConfigArgs makeArgs(BitbucketServerConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BitbucketServerConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/Trigger.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/Trigger.java index 89e0f64e6d..4307d4511c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/Trigger.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/Trigger.java @@ -1637,13 +1637,20 @@ public Trigger(String name, @Nullable TriggerArgs args) { * @param options A bag of options that control this resource's behavior. */ public Trigger(String name, @Nullable TriggerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuild/trigger:Trigger", name, args == null ? TriggerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuild/trigger:Trigger", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Trigger(String name, Output id, @Nullable TriggerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuild/trigger:Trigger", name, state, makeResourceOptions(options, id)); } + private static TriggerArgs makeArgs(@Nullable TriggerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TriggerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/WorkerPool.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/WorkerPool.java index a5552db7a2..0d805835e3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/WorkerPool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuild/WorkerPool.java @@ -381,13 +381,20 @@ public WorkerPool(String name, WorkerPoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkerPool(String name, WorkerPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuild/workerPool:WorkerPool", name, args == null ? WorkerPoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuild/workerPool:WorkerPool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkerPool(String name, Output id, @Nullable WorkerPoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuild/workerPool:WorkerPool", name, state, makeResourceOptions(options, id)); } + private static WorkerPoolArgs makeArgs(WorkerPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkerPoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Connection.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Connection.java index 6a3a24fc31..bae5331d3a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Connection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Connection.java @@ -553,13 +553,20 @@ public Connection(String name, ConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public Connection(String name, ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuildv2/connection:Connection", name, args == null ? ConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuildv2/connection:Connection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Connection(String name, Output id, @Nullable ConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuildv2/connection:Connection", name, state, makeResourceOptions(options, id)); } + private static ConnectionArgs makeArgs(ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java index 7a5c438d4f..7e88a8d075 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMBinding.java @@ -465,13 +465,20 @@ public ConnectionIAMBinding(String name, ConnectionIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionIAMBinding(String name, ConnectionIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, args == null ? ConnectionIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionIAMBinding(String name, Output id, @Nullable ConnectionIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuildv2/connectionIAMBinding:ConnectionIAMBinding", name, state, makeResourceOptions(options, id)); } + private static ConnectionIAMBindingArgs makeArgs(ConnectionIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java index 4d0bf94aff..3be87df7a4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMMember.java @@ -464,13 +464,20 @@ public ConnectionIAMMember(String name, ConnectionIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionIAMMember(String name, ConnectionIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, args == null ? ConnectionIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionIAMMember(String name, Output id, @Nullable ConnectionIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuildv2/connectionIAMMember:ConnectionIAMMember", name, state, makeResourceOptions(options, id)); } + private static ConnectionIAMMemberArgs makeArgs(ConnectionIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java index caac0f5314..87c0b14581 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/ConnectionIAMPolicy.java @@ -420,13 +420,20 @@ public ConnectionIAMPolicy(String name, ConnectionIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionIAMPolicy(String name, ConnectionIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, args == null ? ConnectionIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionIAMPolicy(String name, Output id, @Nullable ConnectionIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuildv2/connectionIAMPolicy:ConnectionIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static ConnectionIAMPolicyArgs makeArgs(ConnectionIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Repository.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Repository.java index 1cc25adbbe..1a4fb228dd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Repository.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudbuildv2/Repository.java @@ -418,13 +418,20 @@ public Repository(String name, RepositoryArgs args) { * @param options A bag of options that control this resource's behavior. */ public Repository(String name, RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudbuildv2/repository:Repository", name, args == null ? RepositoryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudbuildv2/repository:Repository", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Repository(String name, Output id, @Nullable RepositoryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudbuildv2/repository:Repository", name, state, makeResourceOptions(options, id)); } + private static RepositoryArgs makeArgs(RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Automation.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Automation.java index bfd4b702b1..717e740aec 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Automation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Automation.java @@ -504,13 +504,20 @@ public Automation(String name, AutomationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Automation(String name, AutomationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/automation:Automation", name, args == null ? AutomationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/automation:Automation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Automation(String name, Output id, @Nullable AutomationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/automation:Automation", name, state, makeResourceOptions(options, id)); } + private static AutomationArgs makeArgs(AutomationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AutomationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetType.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetType.java index 0a184ea176..1c2f488542 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetType.java @@ -495,13 +495,20 @@ public CustomTargetType(String name, CustomTargetTypeArgs args) { * @param options A bag of options that control this resource's behavior. */ public CustomTargetType(String name, CustomTargetTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/customTargetType:CustomTargetType", name, args == null ? CustomTargetTypeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/customTargetType:CustomTargetType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CustomTargetType(String name, Output id, @Nullable CustomTargetTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/customTargetType:CustomTargetType", name, state, makeResourceOptions(options, id)); } + private static CustomTargetTypeArgs makeArgs(CustomTargetTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CustomTargetTypeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamBinding.java index 98102d7763..2b1aad89a4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamBinding.java @@ -83,13 +83,20 @@ public CustomTargetTypeIamBinding(String name, CustomTargetTypeIamBindingArgs ar * @param options A bag of options that control this resource's behavior. */ public CustomTargetTypeIamBinding(String name, CustomTargetTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/customTargetTypeIamBinding:CustomTargetTypeIamBinding", name, args == null ? CustomTargetTypeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/customTargetTypeIamBinding:CustomTargetTypeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CustomTargetTypeIamBinding(String name, Output id, @Nullable CustomTargetTypeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/customTargetTypeIamBinding:CustomTargetTypeIamBinding", name, state, makeResourceOptions(options, id)); } + private static CustomTargetTypeIamBindingArgs makeArgs(CustomTargetTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CustomTargetTypeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamMember.java index 691d1f7364..fdb74057f6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamMember.java @@ -82,13 +82,20 @@ public CustomTargetTypeIamMember(String name, CustomTargetTypeIamMemberArgs args * @param options A bag of options that control this resource's behavior. */ public CustomTargetTypeIamMember(String name, CustomTargetTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/customTargetTypeIamMember:CustomTargetTypeIamMember", name, args == null ? CustomTargetTypeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/customTargetTypeIamMember:CustomTargetTypeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CustomTargetTypeIamMember(String name, Output id, @Nullable CustomTargetTypeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/customTargetTypeIamMember:CustomTargetTypeIamMember", name, state, makeResourceOptions(options, id)); } + private static CustomTargetTypeIamMemberArgs makeArgs(CustomTargetTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CustomTargetTypeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamPolicy.java index 05da3999bd..00e86477c6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/CustomTargetTypeIamPolicy.java @@ -68,13 +68,20 @@ public CustomTargetTypeIamPolicy(String name, CustomTargetTypeIamPolicyArgs args * @param options A bag of options that control this resource's behavior. */ public CustomTargetTypeIamPolicy(String name, CustomTargetTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/customTargetTypeIamPolicy:CustomTargetTypeIamPolicy", name, args == null ? CustomTargetTypeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/customTargetTypeIamPolicy:CustomTargetTypeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CustomTargetTypeIamPolicy(String name, Output id, @Nullable CustomTargetTypeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/customTargetTypeIamPolicy:CustomTargetTypeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static CustomTargetTypeIamPolicyArgs makeArgs(CustomTargetTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CustomTargetTypeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipeline.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipeline.java index b7de1e773f..244e021564 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipeline.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipeline.java @@ -625,13 +625,20 @@ public DeliveryPipeline(String name, DeliveryPipelineArgs args) { * @param options A bag of options that control this resource's behavior. */ public DeliveryPipeline(String name, DeliveryPipelineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/deliveryPipeline:DeliveryPipeline", name, args == null ? DeliveryPipelineArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/deliveryPipeline:DeliveryPipeline", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DeliveryPipeline(String name, Output id, @Nullable DeliveryPipelineState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/deliveryPipeline:DeliveryPipeline", name, state, makeResourceOptions(options, id)); } + private static DeliveryPipelineArgs makeArgs(DeliveryPipelineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DeliveryPipelineArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamBinding.java index 43bb9e6208..3ec6dcd773 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamBinding.java @@ -83,13 +83,20 @@ public DeliveryPipelineIamBinding(String name, DeliveryPipelineIamBindingArgs ar * @param options A bag of options that control this resource's behavior. */ public DeliveryPipelineIamBinding(String name, DeliveryPipelineIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/deliveryPipelineIamBinding:DeliveryPipelineIamBinding", name, args == null ? DeliveryPipelineIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/deliveryPipelineIamBinding:DeliveryPipelineIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DeliveryPipelineIamBinding(String name, Output id, @Nullable DeliveryPipelineIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/deliveryPipelineIamBinding:DeliveryPipelineIamBinding", name, state, makeResourceOptions(options, id)); } + private static DeliveryPipelineIamBindingArgs makeArgs(DeliveryPipelineIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DeliveryPipelineIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamMember.java index 0cf91615f3..e1778de818 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamMember.java @@ -82,13 +82,20 @@ public DeliveryPipelineIamMember(String name, DeliveryPipelineIamMemberArgs args * @param options A bag of options that control this resource's behavior. */ public DeliveryPipelineIamMember(String name, DeliveryPipelineIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/deliveryPipelineIamMember:DeliveryPipelineIamMember", name, args == null ? DeliveryPipelineIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/deliveryPipelineIamMember:DeliveryPipelineIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DeliveryPipelineIamMember(String name, Output id, @Nullable DeliveryPipelineIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/deliveryPipelineIamMember:DeliveryPipelineIamMember", name, state, makeResourceOptions(options, id)); } + private static DeliveryPipelineIamMemberArgs makeArgs(DeliveryPipelineIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DeliveryPipelineIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamPolicy.java index e7df149a51..4c8df0c8ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/DeliveryPipelineIamPolicy.java @@ -68,13 +68,20 @@ public DeliveryPipelineIamPolicy(String name, DeliveryPipelineIamPolicyArgs args * @param options A bag of options that control this resource's behavior. */ public DeliveryPipelineIamPolicy(String name, DeliveryPipelineIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/deliveryPipelineIamPolicy:DeliveryPipelineIamPolicy", name, args == null ? DeliveryPipelineIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/deliveryPipelineIamPolicy:DeliveryPipelineIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DeliveryPipelineIamPolicy(String name, Output id, @Nullable DeliveryPipelineIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/deliveryPipelineIamPolicy:DeliveryPipelineIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DeliveryPipelineIamPolicyArgs makeArgs(DeliveryPipelineIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DeliveryPipelineIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Target.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Target.java index 909fd65eeb..d7c8bbbc3f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Target.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/Target.java @@ -565,13 +565,20 @@ public Target(String name, TargetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Target(String name, TargetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/target:Target", name, args == null ? TargetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/target:Target", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Target(String name, Output id, @Nullable TargetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/target:Target", name, state, makeResourceOptions(options, id)); } + private static TargetArgs makeArgs(TargetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamBinding.java index c9209a72dc..9228b5abd0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamBinding.java @@ -83,13 +83,20 @@ public TargetIamBinding(String name, TargetIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetIamBinding(String name, TargetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/targetIamBinding:TargetIamBinding", name, args == null ? TargetIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/targetIamBinding:TargetIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetIamBinding(String name, Output id, @Nullable TargetIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/targetIamBinding:TargetIamBinding", name, state, makeResourceOptions(options, id)); } + private static TargetIamBindingArgs makeArgs(TargetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamMember.java index f507cdcc98..6cab6d3178 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamMember.java @@ -82,13 +82,20 @@ public TargetIamMember(String name, TargetIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetIamMember(String name, TargetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/targetIamMember:TargetIamMember", name, args == null ? TargetIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/targetIamMember:TargetIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetIamMember(String name, Output id, @Nullable TargetIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/targetIamMember:TargetIamMember", name, state, makeResourceOptions(options, id)); } + private static TargetIamMemberArgs makeArgs(TargetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamPolicy.java index bd5c2588da..eef96e5817 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddeploy/TargetIamPolicy.java @@ -68,13 +68,20 @@ public TargetIamPolicy(String name, TargetIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetIamPolicy(String name, TargetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddeploy/targetIamPolicy:TargetIamPolicy", name, args == null ? TargetIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddeploy/targetIamPolicy:TargetIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetIamPolicy(String name, Output id, @Nullable TargetIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddeploy/targetIamPolicy:TargetIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TargetIamPolicyArgs makeArgs(TargetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/clouddomains/Registration.java b/sdk/java/src/main/java/com/pulumi/gcp/clouddomains/Registration.java index a7b7f7897d..dcc6fcf3ec 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/clouddomains/Registration.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/clouddomains/Registration.java @@ -442,13 +442,20 @@ public Registration(String name, RegistrationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Registration(String name, RegistrationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:clouddomains/registration:Registration", name, args == null ? RegistrationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:clouddomains/registration:Registration", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Registration(String name, Output id, @Nullable RegistrationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:clouddomains/registration:Registration", name, state, makeResourceOptions(options, id)); } + private static RegistrationArgs makeArgs(RegistrationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegistrationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/Function.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/Function.java index 0ec6bee5cc..2b3f490a72 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/Function.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/Function.java @@ -229,6 +229,20 @@ public Output> availableMemoryMb() { public Output>> buildEnvironmentVariables() { return Codegen.optional(this.buildEnvironmentVariables); } + /** + * If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + */ + @Export(name="buildServiceAccount", refs={String.class}, tree="[0]") + private Output buildServiceAccount; + + /** + * @return If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + */ + public Output buildServiceAccount() { + return this.buildServiceAccount; + } /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. * @@ -724,13 +738,20 @@ public Function(String name, FunctionArgs args) { * @param options A bag of options that control this resource's behavior. */ public Function(String name, FunctionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctions/function:Function", name, args == null ? FunctionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctions/function:Function", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Function(String name, Output id, @Nullable FunctionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctions/function:Function", name, state, makeResourceOptions(options, id)); } + private static FunctionArgs makeArgs(FunctionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionArgs.java index f20850fd24..b7baa9a4c3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionArgs.java @@ -55,6 +55,21 @@ public Optional>> buildEnvironmentVariables() { return Optional.ofNullable(this.buildEnvironmentVariables); } + /** + * If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + */ + @Import(name="buildServiceAccount") + private @Nullable Output buildServiceAccount; + + /** + * @return If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + */ + public Optional> buildServiceAccount() { + return Optional.ofNullable(this.buildServiceAccount); + } + /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. * @@ -502,6 +517,7 @@ private FunctionArgs() {} private FunctionArgs(FunctionArgs $) { this.availableMemoryMb = $.availableMemoryMb; this.buildEnvironmentVariables = $.buildEnvironmentVariables; + this.buildServiceAccount = $.buildServiceAccount; this.buildWorkerPool = $.buildWorkerPool; this.description = $.description; this.dockerRegistry = $.dockerRegistry; @@ -592,6 +608,27 @@ public Builder buildEnvironmentVariables(Map buildEnvironmentVari return buildEnvironmentVariables(Output.of(buildEnvironmentVariables)); } + /** + * @param buildServiceAccount If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + * @return builder + * + */ + public Builder buildServiceAccount(@Nullable Output buildServiceAccount) { + $.buildServiceAccount = buildServiceAccount; + return this; + } + + /** + * @param buildServiceAccount If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + * @return builder + * + */ + public Builder buildServiceAccount(String buildServiceAccount) { + return buildServiceAccount(Output.of(buildServiceAccount)); + } + /** * @param buildWorkerPool Name of the Cloud Build Custom Worker Pool that should be used to build the function. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamBinding.java index 49154f43c9..fdce4b5379 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamBinding.java @@ -465,13 +465,20 @@ public FunctionIamBinding(String name, FunctionIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public FunctionIamBinding(String name, FunctionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctions/functionIamBinding:FunctionIamBinding", name, args == null ? FunctionIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctions/functionIamBinding:FunctionIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FunctionIamBinding(String name, Output id, @Nullable FunctionIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctions/functionIamBinding:FunctionIamBinding", name, state, makeResourceOptions(options, id)); } + private static FunctionIamBindingArgs makeArgs(FunctionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamMember.java index 8536711c57..8dc5c124bc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamMember.java @@ -464,13 +464,20 @@ public FunctionIamMember(String name, FunctionIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public FunctionIamMember(String name, FunctionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctions/functionIamMember:FunctionIamMember", name, args == null ? FunctionIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctions/functionIamMember:FunctionIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FunctionIamMember(String name, Output id, @Nullable FunctionIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctions/functionIamMember:FunctionIamMember", name, state, makeResourceOptions(options, id)); } + private static FunctionIamMemberArgs makeArgs(FunctionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamPolicy.java index 20824b3a6d..2b0dda5733 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/FunctionIamPolicy.java @@ -420,13 +420,20 @@ public FunctionIamPolicy(String name, FunctionIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public FunctionIamPolicy(String name, FunctionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctions/functionIamPolicy:FunctionIamPolicy", name, args == null ? FunctionIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctions/functionIamPolicy:FunctionIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FunctionIamPolicy(String name, Output id, @Nullable FunctionIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctions/functionIamPolicy:FunctionIamPolicy", name, state, makeResourceOptions(options, id)); } + private static FunctionIamPolicyArgs makeArgs(FunctionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/inputs/FunctionState.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/inputs/FunctionState.java index 4b938ad7b2..3a88cb7b71 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/inputs/FunctionState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/inputs/FunctionState.java @@ -54,6 +54,21 @@ public Optional>> buildEnvironmentVariables() { return Optional.ofNullable(this.buildEnvironmentVariables); } + /** + * If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + */ + @Import(name="buildServiceAccount") + private @Nullable Output buildServiceAccount; + + /** + * @return If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + */ + public Optional> buildServiceAccount() { + return Optional.ofNullable(this.buildServiceAccount); + } + /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. * @@ -563,6 +578,7 @@ private FunctionState() {} private FunctionState(FunctionState $) { this.availableMemoryMb = $.availableMemoryMb; this.buildEnvironmentVariables = $.buildEnvironmentVariables; + this.buildServiceAccount = $.buildServiceAccount; this.buildWorkerPool = $.buildWorkerPool; this.description = $.description; this.dockerRegistry = $.dockerRegistry; @@ -657,6 +673,27 @@ public Builder buildEnvironmentVariables(Map buildEnvironmentVari return buildEnvironmentVariables(Output.of(buildEnvironmentVariables)); } + /** + * @param buildServiceAccount If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + * @return builder + * + */ + public Builder buildServiceAccount(@Nullable Output buildServiceAccount) { + $.buildServiceAccount = buildServiceAccount; + return this; + } + + /** + * @param buildServiceAccount If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + * + * @return builder + * + */ + public Builder buildServiceAccount(String buildServiceAccount) { + return buildServiceAccount(Output.of(buildServiceAccount)); + } + /** * @param buildWorkerPool Name of the Cloud Build Custom Worker Pool that should be used to build the function. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/outputs/GetFunctionResult.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/outputs/GetFunctionResult.java index 6346f129d5..e46ddee1fc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/outputs/GetFunctionResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctions/outputs/GetFunctionResult.java @@ -27,6 +27,7 @@ public final class GetFunctionResult { */ private Integer availableMemoryMb; private Map buildEnvironmentVariables; + private String buildServiceAccount; private String buildWorkerPool; /** * @return Description of the function. @@ -144,6 +145,9 @@ public Integer availableMemoryMb() { public Map buildEnvironmentVariables() { return this.buildEnvironmentVariables; } + public String buildServiceAccount() { + return this.buildServiceAccount; + } public String buildWorkerPool() { return this.buildWorkerPool; } @@ -327,6 +331,7 @@ public static Builder builder(GetFunctionResult defaults) { public static final class Builder { private Integer availableMemoryMb; private Map buildEnvironmentVariables; + private String buildServiceAccount; private String buildWorkerPool; private String description; private String dockerRegistry; @@ -365,6 +370,7 @@ public Builder(GetFunctionResult defaults) { Objects.requireNonNull(defaults); this.availableMemoryMb = defaults.availableMemoryMb; this.buildEnvironmentVariables = defaults.buildEnvironmentVariables; + this.buildServiceAccount = defaults.buildServiceAccount; this.buildWorkerPool = defaults.buildWorkerPool; this.description = defaults.description; this.dockerRegistry = defaults.dockerRegistry; @@ -417,6 +423,14 @@ public Builder buildEnvironmentVariables(Map buildEnvironmentVari return this; } @CustomType.Setter + public Builder buildServiceAccount(String buildServiceAccount) { + if (buildServiceAccount == null) { + throw new MissingRequiredPropertyException("GetFunctionResult", "buildServiceAccount"); + } + this.buildServiceAccount = buildServiceAccount; + return this; + } + @CustomType.Setter public Builder buildWorkerPool(String buildWorkerPool) { if (buildWorkerPool == null) { throw new MissingRequiredPropertyException("GetFunctionResult", "buildWorkerPool"); @@ -692,6 +706,7 @@ public GetFunctionResult build() { final var _resultValue = new GetFunctionResult(); _resultValue.availableMemoryMb = availableMemoryMb; _resultValue.buildEnvironmentVariables = buildEnvironmentVariables; + _resultValue.buildServiceAccount = buildServiceAccount; _resultValue.buildWorkerPool = buildWorkerPool; _resultValue.description = description; _resultValue.dockerRegistry = dockerRegistry; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/Function.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/Function.java index 82d2dd95e7..abc20b259f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/Function.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/Function.java @@ -1116,7 +1116,7 @@ * String.format("serviceAccount:service-%s{@literal @}gcp-sa-artifactregistry.iam.gserviceaccount.com", projectGetProject.applyValue(getProjectResult -> getProjectResult.number())), * String.format("serviceAccount:service-%s{@literal @}gs-project-accounts.iam.gserviceaccount.com", projectGetProject.applyValue(getProjectResult -> getProjectResult.number())), * String.format("serviceAccount:service-%s{@literal @}serverless-robot-prod.iam.gserviceaccount.com", projectGetProject.applyValue(getProjectResult -> getProjectResult.number())), - * eaSa.email().applyValue(email -> String.format("serviceAccount:%s", email))) + * eaSa.member()) * .build(), CustomResourceOptions.builder() * .dependsOn(eaSa) * .build()); @@ -1664,13 +1664,20 @@ public Function(String name, FunctionArgs args) { * @param options A bag of options that control this resource's behavior. */ public Function(String name, FunctionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctionsv2/function:Function", name, args == null ? FunctionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctionsv2/function:Function", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Function(String name, Output id, @Nullable FunctionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctionsv2/function:Function", name, state, makeResourceOptions(options, id)); } + private static FunctionArgs makeArgs(FunctionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamBinding.java index ce1c398f5b..1e6ed1164c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamBinding.java @@ -465,13 +465,20 @@ public FunctionIamBinding(String name, FunctionIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public FunctionIamBinding(String name, FunctionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctionsv2/functionIamBinding:FunctionIamBinding", name, args == null ? FunctionIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctionsv2/functionIamBinding:FunctionIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FunctionIamBinding(String name, Output id, @Nullable FunctionIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctionsv2/functionIamBinding:FunctionIamBinding", name, state, makeResourceOptions(options, id)); } + private static FunctionIamBindingArgs makeArgs(FunctionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamMember.java index c74231b58a..af1fec4fd4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamMember.java @@ -464,13 +464,20 @@ public FunctionIamMember(String name, FunctionIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public FunctionIamMember(String name, FunctionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctionsv2/functionIamMember:FunctionIamMember", name, args == null ? FunctionIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctionsv2/functionIamMember:FunctionIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FunctionIamMember(String name, Output id, @Nullable FunctionIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctionsv2/functionIamMember:FunctionIamMember", name, state, makeResourceOptions(options, id)); } + private static FunctionIamMemberArgs makeArgs(FunctionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamPolicy.java index 82fe88b30b..931c55b114 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudfunctionsv2/FunctionIamPolicy.java @@ -420,13 +420,20 @@ public FunctionIamPolicy(String name, FunctionIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public FunctionIamPolicy(String name, FunctionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudfunctionsv2/functionIamPolicy:FunctionIamPolicy", name, args == null ? FunctionIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudfunctionsv2/functionIamPolicy:FunctionIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FunctionIamPolicy(String name, Output id, @Nullable FunctionIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudfunctionsv2/functionIamPolicy:FunctionIamPolicy", name, state, makeResourceOptions(options, id)); } + private static FunctionIamPolicyArgs makeArgs(FunctionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FunctionIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/Group.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/Group.java index f4bad5dd24..ac17c5ff58 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/Group.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/Group.java @@ -279,13 +279,20 @@ public Group(String name, GroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public Group(String name, GroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudidentity/group:Group", name, args == null ? GroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudidentity/group:Group", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Group(String name, Output id, @Nullable GroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudidentity/group:Group", name, state, makeResourceOptions(options, id)); } + private static GroupArgs makeArgs(GroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/GroupMembership.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/GroupMembership.java index 2750a08d8e..59a9f1c4c2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/GroupMembership.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudidentity/GroupMembership.java @@ -310,13 +310,20 @@ public GroupMembership(String name, GroupMembershipArgs args) { * @param options A bag of options that control this resource's behavior. */ public GroupMembership(String name, GroupMembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudidentity/groupMembership:GroupMembership", name, args == null ? GroupMembershipArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudidentity/groupMembership:GroupMembership", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GroupMembership(String name, Output id, @Nullable GroupMembershipState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudidentity/groupMembership:GroupMembership", name, state, makeResourceOptions(options, id)); } + private static GroupMembershipArgs makeArgs(GroupMembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GroupMembershipArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudids/Endpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudids/Endpoint.java index 1de75fca19..b8fd515043 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudids/Endpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudids/Endpoint.java @@ -301,13 +301,20 @@ public Endpoint(String name, EndpointArgs args) { * @param options A bag of options that control this resource's behavior. */ public Endpoint(String name, EndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudids/endpoint:Endpoint", name, args == null ? EndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudids/endpoint:Endpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Endpoint(String name, Output id, @Nullable EndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudids/endpoint:Endpoint", name, state, makeResourceOptions(options, id)); } + private static EndpointArgs makeArgs(EndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EndpointArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudquota/SQuotaPreference.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudquota/SQuotaPreference.java index 3b2248beb6..84c50e7670 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudquota/SQuotaPreference.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudquota/SQuotaPreference.java @@ -318,13 +318,20 @@ public SQuotaPreference(String name, SQuotaPreferenceArgs args) { * @param options A bag of options that control this resource's behavior. */ public SQuotaPreference(String name, SQuotaPreferenceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudquota/sQuotaPreference:SQuotaPreference", name, args == null ? SQuotaPreferenceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudquota/sQuotaPreference:SQuotaPreference", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SQuotaPreference(String name, Output id, @Nullable SQuotaPreferenceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudquota/sQuotaPreference:SQuotaPreference", name, state, makeResourceOptions(options, id)); } + private static SQuotaPreferenceArgs makeArgs(SQuotaPreferenceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SQuotaPreferenceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/DomainMapping.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/DomainMapping.java index c5f057b5e3..b6f08c2326 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/DomainMapping.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/DomainMapping.java @@ -222,13 +222,20 @@ public DomainMapping(String name, DomainMappingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DomainMapping(String name, DomainMappingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrun/domainMapping:DomainMapping", name, args == null ? DomainMappingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrun/domainMapping:DomainMapping", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DomainMapping(String name, Output id, @Nullable DomainMappingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrun/domainMapping:DomainMapping", name, state, makeResourceOptions(options, id)); } + private static DomainMappingArgs makeArgs(DomainMappingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DomainMappingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamBinding.java index 2527c4a6e6..3f51a1778f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamBinding.java @@ -465,13 +465,20 @@ public IamBinding(String name, IamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public IamBinding(String name, IamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrun/iamBinding:IamBinding", name, args == null ? IamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrun/iamBinding:IamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IamBinding(String name, Output id, @Nullable IamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrun/iamBinding:IamBinding", name, state, makeResourceOptions(options, id)); } + private static IamBindingArgs makeArgs(IamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamMember.java index 1f191e3eef..e1d901dc66 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamMember.java @@ -464,13 +464,20 @@ public IamMember(String name, IamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public IamMember(String name, IamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrun/iamMember:IamMember", name, args == null ? IamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrun/iamMember:IamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IamMember(String name, Output id, @Nullable IamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrun/iamMember:IamMember", name, state, makeResourceOptions(options, id)); } + private static IamMemberArgs makeArgs(IamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamPolicy.java index 740980c7c5..1a7d4c5104 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/IamPolicy.java @@ -420,13 +420,20 @@ public IamPolicy(String name, IamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public IamPolicy(String name, IamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrun/iamPolicy:IamPolicy", name, args == null ? IamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrun/iamPolicy:IamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IamPolicy(String name, Output id, @Nullable IamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrun/iamPolicy:IamPolicy", name, state, makeResourceOptions(options, id)); } + private static IamPolicyArgs makeArgs(IamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/Service.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/Service.java index 82e6bc2f2f..62c3c69511 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/Service.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/Service.java @@ -641,13 +641,20 @@ public Service(String name, ServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Service(String name, ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrun/service:Service", name, args == null ? ServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrun/service:Service", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Service(String name, Output id, @Nullable ServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrun/service:Service", name, state, makeResourceOptions(options, id)); } + private static ServiceArgs makeArgs(ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/DomainMappingMetadataArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/DomainMappingMetadataArgs.java index e6af2c0073..0a84413420 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/DomainMappingMetadataArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/DomainMappingMetadataArgs.java @@ -20,8 +20,8 @@ public final class DomainMappingMetadataArgs extends com.pulumi.resources.Resour /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -34,8 +34,8 @@ public final class DomainMappingMetadataArgs extends com.pulumi.resources.Resour /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -251,8 +251,8 @@ public Builder(DomainMappingMetadataArgs defaults) { /** * @param annotations Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -269,8 +269,8 @@ public Builder annotations(@Nullable Output> annotations) { /** * @param annotations Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceMetadataArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceMetadataArgs.java index 17183491eb..cbd91889f9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceMetadataArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceMetadataArgs.java @@ -19,8 +19,8 @@ public final class ServiceMetadataArgs extends com.pulumi.resources.ResourceArgs /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -45,8 +45,8 @@ public final class ServiceMetadataArgs extends com.pulumi.resources.ResourceArgs /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -266,8 +266,8 @@ public Builder(ServiceMetadataArgs defaults) { /** * @param annotations Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -296,8 +296,8 @@ public Builder annotations(@Nullable Output> annotations) { /** * @param annotations Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateMetadataArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateMetadataArgs.java index 9fbc85521f..51414f7241 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateMetadataArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateMetadataArgs.java @@ -19,8 +19,8 @@ public final class ServiceTemplateMetadataArgs extends com.pulumi.resources.Reso /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -45,8 +45,8 @@ public final class ServiceTemplateMetadataArgs extends com.pulumi.resources.Reso /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -240,8 +240,8 @@ public Builder(ServiceTemplateMetadataArgs defaults) { /** * @param annotations Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -270,8 +270,8 @@ public Builder annotations(@Nullable Output> annotations) { /** * @param annotations Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateSpecArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateSpecArgs.java index 584ecd6bad..4513847823 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateSpecArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/inputs/ServiceTemplateSpecArgs.java @@ -21,7 +21,8 @@ public final class ServiceTemplateSpecArgs extends com.pulumi.resources.Resource /** * ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ @Import(name="containerConcurrency") @@ -29,7 +30,8 @@ public final class ServiceTemplateSpecArgs extends com.pulumi.resources.Resource /** * @return ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ public Optional> containerConcurrency() { @@ -172,7 +174,8 @@ public Builder(ServiceTemplateSpecArgs defaults) { /** * @param containerConcurrency ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * * @return builder * @@ -184,7 +187,8 @@ public Builder containerConcurrency(@Nullable Output containerConcurren /** * @param containerConcurrency ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/DomainMappingMetadata.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/DomainMappingMetadata.java index b2584cb9c5..9f4decba71 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/DomainMappingMetadata.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/DomainMappingMetadata.java @@ -16,8 +16,8 @@ public final class DomainMappingMetadata { /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -92,8 +92,8 @@ public final class DomainMappingMetadata { private DomainMappingMetadata() {} /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/GetServiceTemplateSpec.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/GetServiceTemplateSpec.java index cc7512219a..d4d3a68e7e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/GetServiceTemplateSpec.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/GetServiceTemplateSpec.java @@ -16,11 +16,8 @@ public final class GetServiceTemplateSpec { /** * @return ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: - * - '0' thread-safe, the system should manage the max concurrency. This is - * the default value. - * - '1' not-thread-safe. Single concurrency - * - '2-N' thread-safe, max concurrency of N + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ private Integer containerConcurrency; @@ -59,11 +56,8 @@ public final class GetServiceTemplateSpec { private GetServiceTemplateSpec() {} /** * @return ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: - * - '0' thread-safe, the system should manage the max concurrency. This is - * the default value. - * - '1' not-thread-safe. Single concurrency - * - '2-N' thread-safe, max concurrency of N + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ public Integer containerConcurrency() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceMetadata.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceMetadata.java index 15ea82ce86..7040508cc0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceMetadata.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceMetadata.java @@ -15,8 +15,8 @@ public final class ServiceMetadata { /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -99,8 +99,8 @@ public final class ServiceMetadata { private ServiceMetadata() {} /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateMetadata.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateMetadata.java index 6a9e95d3cc..9376481e4d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateMetadata.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateMetadata.java @@ -15,8 +15,8 @@ public final class ServiceTemplateMetadata { /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -92,8 +92,8 @@ public final class ServiceTemplateMetadata { private ServiceTemplateMetadata() {} /** * @return Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateSpec.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateSpec.java index c7fe5d9589..d7ff0be71a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateSpec.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrun/outputs/ServiceTemplateSpec.java @@ -17,7 +17,8 @@ public final class ServiceTemplateSpec { /** * @return ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ private @Nullable Integer containerConcurrency; @@ -65,7 +66,8 @@ public final class ServiceTemplateSpec { private ServiceTemplateSpec() {} /** * @return ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ public Optional containerConcurrency() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java index 86e7f97e0b..279f17c1b8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Job.java @@ -1090,13 +1090,20 @@ public Job(String name, JobArgs args) { * @param options A bag of options that control this resource's behavior. */ public Job(String name, JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/job:Job", name, args == null ? JobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/job:Job", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Job(String name, Output id, @Nullable JobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/job:Job", name, state, makeResourceOptions(options, id)); } + private static JobArgs makeArgs(JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamBinding.java index 080d62dec5..795e986ed3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamBinding.java @@ -465,13 +465,20 @@ public JobIamBinding(String name, JobIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public JobIamBinding(String name, JobIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/jobIamBinding:JobIamBinding", name, args == null ? JobIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/jobIamBinding:JobIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private JobIamBinding(String name, Output id, @Nullable JobIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/jobIamBinding:JobIamBinding", name, state, makeResourceOptions(options, id)); } + private static JobIamBindingArgs makeArgs(JobIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamMember.java index 97b92243de..43ed662baa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamMember.java @@ -464,13 +464,20 @@ public JobIamMember(String name, JobIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public JobIamMember(String name, JobIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/jobIamMember:JobIamMember", name, args == null ? JobIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/jobIamMember:JobIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private JobIamMember(String name, Output id, @Nullable JobIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/jobIamMember:JobIamMember", name, state, makeResourceOptions(options, id)); } + private static JobIamMemberArgs makeArgs(JobIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamPolicy.java index 931e769669..d2206605ec 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/JobIamPolicy.java @@ -420,13 +420,20 @@ public JobIamPolicy(String name, JobIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public JobIamPolicy(String name, JobIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/jobIamPolicy:JobIamPolicy", name, args == null ? JobIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/jobIamPolicy:JobIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private JobIamPolicy(String name, Output id, @Nullable JobIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/jobIamPolicy:JobIamPolicy", name, state, makeResourceOptions(options, id)); } + private static JobIamPolicyArgs makeArgs(JobIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java index f2c31f11ed..4f119cfa20 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/Service.java @@ -1342,13 +1342,20 @@ public Service(String name, ServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Service(String name, ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/service:Service", name, args == null ? ServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/service:Service", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Service(String name, Output id, @Nullable ServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/service:Service", name, state, makeResourceOptions(options, id)); } + private static ServiceArgs makeArgs(ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamBinding.java index 4db10cbc65..c874a4023a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamBinding.java @@ -465,13 +465,20 @@ public ServiceIamBinding(String name, ServiceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamBinding(String name, ServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/serviceIamBinding:ServiceIamBinding", name, args == null ? ServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/serviceIamBinding:ServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamBinding(String name, Output id, @Nullable ServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/serviceIamBinding:ServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static ServiceIamBindingArgs makeArgs(ServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamMember.java index 02767b23bc..94825270a5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamMember.java @@ -464,13 +464,20 @@ public ServiceIamMember(String name, ServiceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamMember(String name, ServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/serviceIamMember:ServiceIamMember", name, args == null ? ServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/serviceIamMember:ServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamMember(String name, Output id, @Nullable ServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/serviceIamMember:ServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static ServiceIamMemberArgs makeArgs(ServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamPolicy.java index 93187d388e..533e9f592c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/ServiceIamPolicy.java @@ -420,13 +420,20 @@ public ServiceIamPolicy(String name, ServiceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamPolicy(String name, ServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudrunv2/serviceIamPolicy:ServiceIamPolicy", name, args == null ? ServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudrunv2/serviceIamPolicy:ServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamPolicy(String name, Output id, @Nullable ServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudrunv2/serviceIamPolicy:ServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ServiceIamPolicyArgs makeArgs(ServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateArgs.java index 2c009f6657..1af5531255 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/inputs/ServiceTemplateArgs.java @@ -116,6 +116,7 @@ public Optional>> labels() { /** * Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ @Import(name="maxInstanceRequestConcurrency") @@ -123,6 +124,7 @@ public Optional>> labels() { /** * @return Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ public Optional> maxInstanceRequestConcurrency() { @@ -412,6 +414,7 @@ public Builder labels(Map labels) { /** * @param maxInstanceRequestConcurrency Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * * @return builder * @@ -423,6 +426,7 @@ public Builder maxInstanceRequestConcurrency(@Nullable Output maxInstan /** * @param maxInstanceRequestConcurrency Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplate.java index ad607c31d9..7228ba2a0f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/GetServiceTemplate.java @@ -54,6 +54,7 @@ public final class GetServiceTemplate { private Map labels; /** * @return Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ private Integer maxInstanceRequestConcurrency; @@ -142,6 +143,7 @@ public Map labels() { } /** * @return Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ public Integer maxInstanceRequestConcurrency() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplate.java index b967cbea44..248987e450 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudrunv2/outputs/ServiceTemplate.java @@ -54,6 +54,7 @@ public final class ServiceTemplate { private @Nullable Map labels; /** * @return Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ private @Nullable Integer maxInstanceRequestConcurrency; @@ -143,6 +144,7 @@ public Map labels() { } /** * @return Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. * */ public Optional maxInstanceRequestConcurrency() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudscheduler/Job.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudscheduler/Job.java index 38329ef65a..ffdcd11b61 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudscheduler/Job.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudscheduler/Job.java @@ -628,13 +628,20 @@ public Job(String name, @Nullable JobArgs args) { * @param options A bag of options that control this resource's behavior. */ public Job(String name, @Nullable JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudscheduler/job:Job", name, args == null ? JobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudscheduler/job:Job", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Job(String name, Output id, @Nullable JobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudscheduler/job:Job", name, state, makeResourceOptions(options, id)); } + private static JobArgs makeArgs(@Nullable JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/Queue.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/Queue.java index c25310f195..d86b3504a1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/Queue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/Queue.java @@ -293,13 +293,20 @@ public Queue(String name, QueueArgs args) { * @param options A bag of options that control this resource's behavior. */ public Queue(String name, QueueArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudtasks/queue:Queue", name, args == null ? QueueArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudtasks/queue:Queue", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Queue(String name, Output id, @Nullable QueueState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudtasks/queue:Queue", name, state, makeResourceOptions(options, id)); } + private static QueueArgs makeArgs(QueueArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? QueueArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamBinding.java index 6778b08eca..0644cbd4cb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamBinding.java @@ -465,13 +465,20 @@ public QueueIamBinding(String name, QueueIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public QueueIamBinding(String name, QueueIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudtasks/queueIamBinding:QueueIamBinding", name, args == null ? QueueIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudtasks/queueIamBinding:QueueIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private QueueIamBinding(String name, Output id, @Nullable QueueIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudtasks/queueIamBinding:QueueIamBinding", name, state, makeResourceOptions(options, id)); } + private static QueueIamBindingArgs makeArgs(QueueIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? QueueIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamMember.java index 5ce11e18ee..e088ccfeb0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamMember.java @@ -464,13 +464,20 @@ public QueueIamMember(String name, QueueIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public QueueIamMember(String name, QueueIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudtasks/queueIamMember:QueueIamMember", name, args == null ? QueueIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudtasks/queueIamMember:QueueIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private QueueIamMember(String name, Output id, @Nullable QueueIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudtasks/queueIamMember:QueueIamMember", name, state, makeResourceOptions(options, id)); } + private static QueueIamMemberArgs makeArgs(QueueIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? QueueIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamPolicy.java index ac9bb09ad3..05ccc5ae6b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/cloudtasks/QueueIamPolicy.java @@ -420,13 +420,20 @@ public QueueIamPolicy(String name, QueueIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public QueueIamPolicy(String name, QueueIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:cloudtasks/queueIamPolicy:QueueIamPolicy", name, args == null ? QueueIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:cloudtasks/queueIamPolicy:QueueIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private QueueIamPolicy(String name, Output id, @Nullable QueueIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:cloudtasks/queueIamPolicy:QueueIamPolicy", name, state, makeResourceOptions(options, id)); } + private static QueueIamPolicyArgs makeArgs(QueueIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? QueueIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/composer/Environment.java b/sdk/java/src/main/java/com/pulumi/gcp/composer/Environment.java index dc347b95e0..7e9eda0e71 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/composer/Environment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/composer/Environment.java @@ -185,13 +185,20 @@ public Environment(String name, @Nullable EnvironmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public Environment(String name, @Nullable EnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:composer/environment:Environment", name, args == null ? EnvironmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:composer/environment:Environment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Environment(String name, Output id, @Nullable EnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:composer/environment:Environment", name, state, makeResourceOptions(options, id)); } + private static EnvironmentArgs makeArgs(@Nullable EnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EnvironmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsConfigMap.java b/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsConfigMap.java index 40663dcbec..c6bf03f5ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsConfigMap.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsConfigMap.java @@ -204,13 +204,20 @@ public UserWorkloadsConfigMap(String name, UserWorkloadsConfigMapArgs args) { * @param options A bag of options that control this resource's behavior. */ public UserWorkloadsConfigMap(String name, UserWorkloadsConfigMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:composer/userWorkloadsConfigMap:UserWorkloadsConfigMap", name, args == null ? UserWorkloadsConfigMapArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:composer/userWorkloadsConfigMap:UserWorkloadsConfigMap", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private UserWorkloadsConfigMap(String name, Output id, @Nullable UserWorkloadsConfigMapState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:composer/userWorkloadsConfigMap:UserWorkloadsConfigMap", name, state, makeResourceOptions(options, id)); } + private static UserWorkloadsConfigMapArgs makeArgs(UserWorkloadsConfigMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? UserWorkloadsConfigMapArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsSecret.java b/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsSecret.java index 315a8a5218..929ef0ca08 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsSecret.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/composer/UserWorkloadsSecret.java @@ -201,13 +201,20 @@ public UserWorkloadsSecret(String name, UserWorkloadsSecretArgs args) { * @param options A bag of options that control this resource's behavior. */ public UserWorkloadsSecret(String name, UserWorkloadsSecretArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:composer/userWorkloadsSecret:UserWorkloadsSecret", name, args == null ? UserWorkloadsSecretArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:composer/userWorkloadsSecret:UserWorkloadsSecret", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private UserWorkloadsSecret(String name, Output id, @Nullable UserWorkloadsSecretState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:composer/userWorkloadsSecret:UserWorkloadsSecret", name, state, makeResourceOptions(options, id)); } + private static UserWorkloadsSecretArgs makeArgs(UserWorkloadsSecretArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? UserWorkloadsSecretArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Address.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Address.java index e60998a0f5..4cd7023911 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Address.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Address.java @@ -696,13 +696,20 @@ public Address(String name, @Nullable AddressArgs args) { * @param options A bag of options that control this resource's behavior. */ public Address(String name, @Nullable AddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/address:Address", name, args == null ? AddressArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/address:Address", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Address(String name, Output id, @Nullable AddressState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/address:Address", name, state, makeResourceOptions(options, id)); } + private static AddressArgs makeArgs(@Nullable AddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AddressArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/AttachedDisk.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/AttachedDisk.java index 8b4640eeda..b632598934 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/AttachedDisk.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/AttachedDisk.java @@ -254,13 +254,20 @@ public AttachedDisk(String name, AttachedDiskArgs args) { * @param options A bag of options that control this resource's behavior. */ public AttachedDisk(String name, AttachedDiskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/attachedDisk:AttachedDisk", name, args == null ? AttachedDiskArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/attachedDisk:AttachedDisk", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AttachedDisk(String name, Output id, @Nullable AttachedDiskState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/attachedDisk:AttachedDisk", name, state, makeResourceOptions(options, id)); } + private static AttachedDiskArgs makeArgs(AttachedDiskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AttachedDiskArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Autoscaler.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Autoscaler.java index 6e461ef4ee..0c6245c77e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Autoscaler.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Autoscaler.java @@ -412,13 +412,20 @@ public Autoscaler(String name, AutoscalerArgs args) { * @param options A bag of options that control this resource's behavior. */ public Autoscaler(String name, AutoscalerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/autoscaler:Autoscaler", name, args == null ? AutoscalerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/autoscaler:Autoscaler", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Autoscaler(String name, Output id, @Nullable AutoscalerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/autoscaler:Autoscaler", name, state, makeResourceOptions(options, id)); } + private static AutoscalerArgs makeArgs(AutoscalerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AutoscalerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucket.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucket.java index 2d6b031738..1d7e430bbb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucket.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucket.java @@ -462,13 +462,20 @@ public BackendBucket(String name, BackendBucketArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackendBucket(String name, BackendBucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendBucket:BackendBucket", name, args == null ? BackendBucketArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendBucket:BackendBucket", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendBucket(String name, Output id, @Nullable BackendBucketState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendBucket:BackendBucket", name, state, makeResourceOptions(options, id)); } + private static BackendBucketArgs makeArgs(BackendBucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendBucketArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamBinding.java index 8ea62067a5..aa069c51cf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamBinding.java @@ -181,13 +181,20 @@ public BackendBucketIamBinding(String name, BackendBucketIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackendBucketIamBinding(String name, BackendBucketIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendBucketIamBinding:BackendBucketIamBinding", name, args == null ? BackendBucketIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendBucketIamBinding:BackendBucketIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendBucketIamBinding(String name, Output id, @Nullable BackendBucketIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendBucketIamBinding:BackendBucketIamBinding", name, state, makeResourceOptions(options, id)); } + private static BackendBucketIamBindingArgs makeArgs(BackendBucketIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendBucketIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamMember.java index b8bd68ed80..ef463a58d5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamMember.java @@ -180,13 +180,20 @@ public BackendBucketIamMember(String name, BackendBucketIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackendBucketIamMember(String name, BackendBucketIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendBucketIamMember:BackendBucketIamMember", name, args == null ? BackendBucketIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendBucketIamMember:BackendBucketIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendBucketIamMember(String name, Output id, @Nullable BackendBucketIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendBucketIamMember:BackendBucketIamMember", name, state, makeResourceOptions(options, id)); } + private static BackendBucketIamMemberArgs makeArgs(BackendBucketIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendBucketIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamPolicy.java index e7e9faf332..481caf7597 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketIamPolicy.java @@ -136,13 +136,20 @@ public BackendBucketIamPolicy(String name, BackendBucketIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackendBucketIamPolicy(String name, BackendBucketIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendBucketIamPolicy:BackendBucketIamPolicy", name, args == null ? BackendBucketIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendBucketIamPolicy:BackendBucketIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendBucketIamPolicy(String name, Output id, @Nullable BackendBucketIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendBucketIamPolicy:BackendBucketIamPolicy", name, state, makeResourceOptions(options, id)); } + private static BackendBucketIamPolicyArgs makeArgs(BackendBucketIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendBucketIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketSignedUrlKey.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketSignedUrlKey.java index 02d60a7703..ce8895387d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketSignedUrlKey.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendBucketSignedUrlKey.java @@ -180,13 +180,20 @@ public BackendBucketSignedUrlKey(String name, BackendBucketSignedUrlKeyArgs args * @param options A bag of options that control this resource's behavior. */ public BackendBucketSignedUrlKey(String name, BackendBucketSignedUrlKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendBucketSignedUrlKey:BackendBucketSignedUrlKey", name, args == null ? BackendBucketSignedUrlKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendBucketSignedUrlKey:BackendBucketSignedUrlKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendBucketSignedUrlKey(String name, Output id, @Nullable BackendBucketSignedUrlKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendBucketSignedUrlKey:BackendBucketSignedUrlKey", name, state, makeResourceOptions(options, id)); } + private static BackendBucketSignedUrlKeyArgs makeArgs(BackendBucketSignedUrlKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendBucketSignedUrlKeyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendService.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendService.java index d80237cd71..69ed6c6660 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendService.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendService.java @@ -40,6 +40,9 @@ * * How-to Guides * * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) * + * > **Warning:** All arguments including the following potentially sensitive + * values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`. + * * ## Example Usage * * ### Backend Service Basic @@ -1319,13 +1322,20 @@ public BackendService(String name, @Nullable BackendServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackendService(String name, @Nullable BackendServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendService:BackendService", name, args == null ? BackendServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendService:BackendService", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendService(String name, Output id, @Nullable BackendServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendService:BackendService", name, state, makeResourceOptions(options, id)); } + private static BackendServiceArgs makeArgs(@Nullable BackendServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamBinding.java index 77d087aa79..e860ba89fc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamBinding.java @@ -191,13 +191,20 @@ public BackendServiceIamBinding(String name, BackendServiceIamBindingArgs args) * @param options A bag of options that control this resource's behavior. */ public BackendServiceIamBinding(String name, BackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendServiceIamBinding:BackendServiceIamBinding", name, args == null ? BackendServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendServiceIamBinding:BackendServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendServiceIamBinding(String name, Output id, @Nullable BackendServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendServiceIamBinding:BackendServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static BackendServiceIamBindingArgs makeArgs(BackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamMember.java index 702a4ebbc1..8e7071f02e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamMember.java @@ -190,13 +190,20 @@ public BackendServiceIamMember(String name, BackendServiceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackendServiceIamMember(String name, BackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendServiceIamMember:BackendServiceIamMember", name, args == null ? BackendServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendServiceIamMember:BackendServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendServiceIamMember(String name, Output id, @Nullable BackendServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendServiceIamMember:BackendServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static BackendServiceIamMemberArgs makeArgs(BackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamPolicy.java index 55c9e1a7b1..bd362c6fad 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceIamPolicy.java @@ -136,13 +136,20 @@ public BackendServiceIamPolicy(String name, BackendServiceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackendServiceIamPolicy(String name, BackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendServiceIamPolicy:BackendServiceIamPolicy", name, args == null ? BackendServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendServiceIamPolicy:BackendServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendServiceIamPolicy(String name, Output id, @Nullable BackendServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendServiceIamPolicy:BackendServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static BackendServiceIamPolicyArgs makeArgs(BackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceSignedUrlKey.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceSignedUrlKey.java index d8306e3eeb..1627200cdf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceSignedUrlKey.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/BackendServiceSignedUrlKey.java @@ -220,13 +220,20 @@ public BackendServiceSignedUrlKey(String name, BackendServiceSignedUrlKeyArgs ar * @param options A bag of options that control this resource's behavior. */ public BackendServiceSignedUrlKey(String name, BackendServiceSignedUrlKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/backendServiceSignedUrlKey:BackendServiceSignedUrlKey", name, args == null ? BackendServiceSignedUrlKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/backendServiceSignedUrlKey:BackendServiceSignedUrlKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackendServiceSignedUrlKey(String name, Output id, @Nullable BackendServiceSignedUrlKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/backendServiceSignedUrlKey:BackendServiceSignedUrlKey", name, state, makeResourceOptions(options, id)); } + private static BackendServiceSignedUrlKeyArgs makeArgs(BackendServiceSignedUrlKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackendServiceSignedUrlKeyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/CaExternalAccountKey.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/CaExternalAccountKey.java index 0d75e95556..8dcfc18b05 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/CaExternalAccountKey.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/CaExternalAccountKey.java @@ -177,13 +177,20 @@ public CaExternalAccountKey(String name, @Nullable CaExternalAccountKeyArgs args * @param options A bag of options that control this resource's behavior. */ public CaExternalAccountKey(String name, @Nullable CaExternalAccountKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/caExternalAccountKey:CaExternalAccountKey", name, args == null ? CaExternalAccountKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/caExternalAccountKey:CaExternalAccountKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CaExternalAccountKey(String name, Output id, @Nullable CaExternalAccountKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/caExternalAccountKey:CaExternalAccountKey", name, state, makeResourceOptions(options, id)); } + private static CaExternalAccountKeyArgs makeArgs(@Nullable CaExternalAccountKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CaExternalAccountKeyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java index ab482c640c..79c8f638e9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Disk.java @@ -940,13 +940,20 @@ public Disk(String name, @Nullable DiskArgs args) { * @param options A bag of options that control this resource's behavior. */ public Disk(String name, @Nullable DiskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/disk:Disk", name, args == null ? DiskArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/disk:Disk", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Disk(String name, Output id, @Nullable DiskState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/disk:Disk", name, state, makeResourceOptions(options, id)); } + private static DiskArgs makeArgs(@Nullable DiskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DiskArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskAsyncReplication.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskAsyncReplication.java index 6be625ef15..8ea3530754 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskAsyncReplication.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskAsyncReplication.java @@ -79,13 +79,20 @@ public DiskAsyncReplication(String name, DiskAsyncReplicationArgs args) { * @param options A bag of options that control this resource's behavior. */ public DiskAsyncReplication(String name, DiskAsyncReplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/diskAsyncReplication:DiskAsyncReplication", name, args == null ? DiskAsyncReplicationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/diskAsyncReplication:DiskAsyncReplication", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DiskAsyncReplication(String name, Output id, @Nullable DiskAsyncReplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/diskAsyncReplication:DiskAsyncReplication", name, state, makeResourceOptions(options, id)); } + private static DiskAsyncReplicationArgs makeArgs(DiskAsyncReplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DiskAsyncReplicationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamBinding.java index c55bac52d7..dcfffff33f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamBinding.java @@ -465,13 +465,20 @@ public DiskIamBinding(String name, DiskIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DiskIamBinding(String name, DiskIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/diskIamBinding:DiskIamBinding", name, args == null ? DiskIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/diskIamBinding:DiskIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DiskIamBinding(String name, Output id, @Nullable DiskIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/diskIamBinding:DiskIamBinding", name, state, makeResourceOptions(options, id)); } + private static DiskIamBindingArgs makeArgs(DiskIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DiskIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamMember.java index a72d99e1fa..02323fa8e3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamMember.java @@ -464,13 +464,20 @@ public DiskIamMember(String name, DiskIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DiskIamMember(String name, DiskIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/diskIamMember:DiskIamMember", name, args == null ? DiskIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/diskIamMember:DiskIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DiskIamMember(String name, Output id, @Nullable DiskIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/diskIamMember:DiskIamMember", name, state, makeResourceOptions(options, id)); } + private static DiskIamMemberArgs makeArgs(DiskIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DiskIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamPolicy.java index 40c0722ffd..31cd3ead19 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskIamPolicy.java @@ -420,13 +420,20 @@ public DiskIamPolicy(String name, DiskIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DiskIamPolicy(String name, DiskIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/diskIamPolicy:DiskIamPolicy", name, args == null ? DiskIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/diskIamPolicy:DiskIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DiskIamPolicy(String name, Output id, @Nullable DiskIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/diskIamPolicy:DiskIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DiskIamPolicyArgs makeArgs(DiskIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DiskIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskResourcePolicyAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskResourcePolicyAttachment.java index 7a79181140..9dcc716153 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskResourcePolicyAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/DiskResourcePolicyAttachment.java @@ -213,13 +213,20 @@ public DiskResourcePolicyAttachment(String name, DiskResourcePolicyAttachmentArg * @param options A bag of options that control this resource's behavior. */ public DiskResourcePolicyAttachment(String name, DiskResourcePolicyAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/diskResourcePolicyAttachment:DiskResourcePolicyAttachment", name, args == null ? DiskResourcePolicyAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/diskResourcePolicyAttachment:DiskResourcePolicyAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DiskResourcePolicyAttachment(String name, Output id, @Nullable DiskResourcePolicyAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/diskResourcePolicyAttachment:DiskResourcePolicyAttachment", name, state, makeResourceOptions(options, id)); } + private static DiskResourcePolicyAttachmentArgs makeArgs(DiskResourcePolicyAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DiskResourcePolicyAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java index 4a255f1ff2..dff8afccd1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ExternalVpnGateway.java @@ -395,13 +395,20 @@ public ExternalVpnGateway(String name, @Nullable ExternalVpnGatewayArgs args) { * @param options A bag of options that control this resource's behavior. */ public ExternalVpnGateway(String name, @Nullable ExternalVpnGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/externalVpnGateway:ExternalVpnGateway", name, args == null ? ExternalVpnGatewayArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/externalVpnGateway:ExternalVpnGateway", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ExternalVpnGateway(String name, Output id, @Nullable ExternalVpnGatewayState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/externalVpnGateway:ExternalVpnGateway", name, state, makeResourceOptions(options, id)); } + private static ExternalVpnGatewayArgs makeArgs(@Nullable ExternalVpnGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ExternalVpnGatewayArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Firewall.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Firewall.java index 608e0faa03..5922a77d60 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Firewall.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Firewall.java @@ -598,13 +598,20 @@ public Firewall(String name, FirewallArgs args) { * @param options A bag of options that control this resource's behavior. */ public Firewall(String name, FirewallArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/firewall:Firewall", name, args == null ? FirewallArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/firewall:Firewall", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Firewall(String name, Output id, @Nullable FirewallState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/firewall:Firewall", name, state, makeResourceOptions(options, id)); } + private static FirewallArgs makeArgs(FirewallArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FirewallArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicy.java index ab74b0f5ad..b1dbb38e49 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicy.java @@ -241,13 +241,20 @@ public FirewallPolicy(String name, FirewallPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public FirewallPolicy(String name, FirewallPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/firewallPolicy:FirewallPolicy", name, args == null ? FirewallPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/firewallPolicy:FirewallPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FirewallPolicy(String name, Output id, @Nullable FirewallPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/firewallPolicy:FirewallPolicy", name, state, makeResourceOptions(options, id)); } + private static FirewallPolicyArgs makeArgs(FirewallPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FirewallPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyAssociation.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyAssociation.java index 579bed7ece..2a7e1a8443 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyAssociation.java @@ -167,13 +167,20 @@ public FirewallPolicyAssociation(String name, FirewallPolicyAssociationArgs args * @param options A bag of options that control this resource's behavior. */ public FirewallPolicyAssociation(String name, FirewallPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/firewallPolicyAssociation:FirewallPolicyAssociation", name, args == null ? FirewallPolicyAssociationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/firewallPolicyAssociation:FirewallPolicyAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FirewallPolicyAssociation(String name, Output id, @Nullable FirewallPolicyAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/firewallPolicyAssociation:FirewallPolicyAssociation", name, state, makeResourceOptions(options, id)); } + private static FirewallPolicyAssociationArgs makeArgs(FirewallPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FirewallPolicyAssociationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java index 4b88fd0ede..ad9f25004f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/FirewallPolicyRule.java @@ -363,13 +363,20 @@ public FirewallPolicyRule(String name, FirewallPolicyRuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public FirewallPolicyRule(String name, FirewallPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/firewallPolicyRule:FirewallPolicyRule", name, args == null ? FirewallPolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/firewallPolicyRule:FirewallPolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FirewallPolicyRule(String name, Output id, @Nullable FirewallPolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/firewallPolicyRule:FirewallPolicyRule", name, state, makeResourceOptions(options, id)); } + private static FirewallPolicyRuleArgs makeArgs(FirewallPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FirewallPolicyRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ForwardingRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ForwardingRule.java index ad42107603..effea0750b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ForwardingRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ForwardingRule.java @@ -2090,13 +2090,20 @@ public ForwardingRule(String name, @Nullable ForwardingRuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public ForwardingRule(String name, @Nullable ForwardingRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/forwardingRule:ForwardingRule", name, args == null ? ForwardingRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/forwardingRule:ForwardingRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ForwardingRule(String name, Output id, @Nullable ForwardingRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/forwardingRule:ForwardingRule", name, state, makeResourceOptions(options, id)); } + private static ForwardingRuleArgs makeArgs(@Nullable ForwardingRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ForwardingRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalAddress.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalAddress.java index 0a01d7dcd1..120cadd627 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalAddress.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalAddress.java @@ -425,13 +425,20 @@ public GlobalAddress(String name, @Nullable GlobalAddressArgs args) { * @param options A bag of options that control this resource's behavior. */ public GlobalAddress(String name, @Nullable GlobalAddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/globalAddress:GlobalAddress", name, args == null ? GlobalAddressArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/globalAddress:GlobalAddress", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GlobalAddress(String name, Output id, @Nullable GlobalAddressState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/globalAddress:GlobalAddress", name, state, makeResourceOptions(options, id)); } + private static GlobalAddressArgs makeArgs(@Nullable GlobalAddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GlobalAddressArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalForwardingRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalForwardingRule.java index 5aabc29e8f..0e43d1f4d7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalForwardingRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalForwardingRule.java @@ -1268,13 +1268,20 @@ public GlobalForwardingRule(String name, GlobalForwardingRuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public GlobalForwardingRule(String name, GlobalForwardingRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/globalForwardingRule:GlobalForwardingRule", name, args == null ? GlobalForwardingRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/globalForwardingRule:GlobalForwardingRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GlobalForwardingRule(String name, Output id, @Nullable GlobalForwardingRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/globalForwardingRule:GlobalForwardingRule", name, state, makeResourceOptions(options, id)); } + private static GlobalForwardingRuleArgs makeArgs(GlobalForwardingRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GlobalForwardingRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpoint.java index b719a04552..bf4a7aff9d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpoint.java @@ -201,13 +201,20 @@ public GlobalNetworkEndpoint(String name, GlobalNetworkEndpointArgs args) { * @param options A bag of options that control this resource's behavior. */ public GlobalNetworkEndpoint(String name, GlobalNetworkEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint", name, args == null ? GlobalNetworkEndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GlobalNetworkEndpoint(String name, Output id, @Nullable GlobalNetworkEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/globalNetworkEndpoint:GlobalNetworkEndpoint", name, state, makeResourceOptions(options, id)); } + private static GlobalNetworkEndpointArgs makeArgs(GlobalNetworkEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GlobalNetworkEndpointArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpointGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpointGroup.java index c1c10b9d1b..40cadf27ae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpointGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/GlobalNetworkEndpointGroup.java @@ -262,13 +262,20 @@ public GlobalNetworkEndpointGroup(String name, GlobalNetworkEndpointGroupArgs ar * @param options A bag of options that control this resource's behavior. */ public GlobalNetworkEndpointGroup(String name, GlobalNetworkEndpointGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup", name, args == null ? GlobalNetworkEndpointGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GlobalNetworkEndpointGroup(String name, Output id, @Nullable GlobalNetworkEndpointGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/globalNetworkEndpointGroup:GlobalNetworkEndpointGroup", name, state, makeResourceOptions(options, id)); } + private static GlobalNetworkEndpointGroupArgs makeArgs(GlobalNetworkEndpointGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GlobalNetworkEndpointGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/HaVpnGateway.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/HaVpnGateway.java index 88ad3e085c..8cdab8e456 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/HaVpnGateway.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/HaVpnGateway.java @@ -416,13 +416,20 @@ public HaVpnGateway(String name, HaVpnGatewayArgs args) { * @param options A bag of options that control this resource's behavior. */ public HaVpnGateway(String name, HaVpnGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/haVpnGateway:HaVpnGateway", name, args == null ? HaVpnGatewayArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/haVpnGateway:HaVpnGateway", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HaVpnGateway(String name, Output id, @Nullable HaVpnGatewayState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/haVpnGateway:HaVpnGateway", name, state, makeResourceOptions(options, id)); } + private static HaVpnGatewayArgs makeArgs(HaVpnGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HaVpnGatewayArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java index 7fb3c98214..c7015be65e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/HealthCheck.java @@ -981,13 +981,20 @@ public HealthCheck(String name, @Nullable HealthCheckArgs args) { * @param options A bag of options that control this resource's behavior. */ public HealthCheck(String name, @Nullable HealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/healthCheck:HealthCheck", name, args == null ? HealthCheckArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/healthCheck:HealthCheck", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HealthCheck(String name, Output id, @Nullable HealthCheckState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/healthCheck:HealthCheck", name, state, makeResourceOptions(options, id)); } + private static HealthCheckArgs makeArgs(@Nullable HealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HealthCheckArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpHealthCheck.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpHealthCheck.java index 395fc5d3f8..774e20517b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpHealthCheck.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpHealthCheck.java @@ -327,13 +327,20 @@ public HttpHealthCheck(String name, @Nullable HttpHealthCheckArgs args) { * @param options A bag of options that control this resource's behavior. */ public HttpHealthCheck(String name, @Nullable HttpHealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/httpHealthCheck:HttpHealthCheck", name, args == null ? HttpHealthCheckArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/httpHealthCheck:HttpHealthCheck", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HttpHealthCheck(String name, Output id, @Nullable HttpHealthCheckState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/httpHealthCheck:HttpHealthCheck", name, state, makeResourceOptions(options, id)); } + private static HttpHealthCheckArgs makeArgs(@Nullable HttpHealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HttpHealthCheckArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpsHealthCheck.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpsHealthCheck.java index 87b1bca78a..294b568191 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpsHealthCheck.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/HttpsHealthCheck.java @@ -327,13 +327,20 @@ public HttpsHealthCheck(String name, @Nullable HttpsHealthCheckArgs args) { * @param options A bag of options that control this resource's behavior. */ public HttpsHealthCheck(String name, @Nullable HttpsHealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/httpsHealthCheck:HttpsHealthCheck", name, args == null ? HttpsHealthCheckArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/httpsHealthCheck:HttpsHealthCheck", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HttpsHealthCheck(String name, Output id, @Nullable HttpsHealthCheckState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/httpsHealthCheck:HttpsHealthCheck", name, state, makeResourceOptions(options, id)); } + private static HttpsHealthCheckArgs makeArgs(@Nullable HttpsHealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HttpsHealthCheckArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Image.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Image.java index 92b19b73d7..dc7feb1a2e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Image.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Image.java @@ -582,13 +582,20 @@ public Image(String name, @Nullable ImageArgs args) { * @param options A bag of options that control this resource's behavior. */ public Image(String name, @Nullable ImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/image:Image", name, args == null ? ImageArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/image:Image", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Image(String name, Output id, @Nullable ImageState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/image:Image", name, state, makeResourceOptions(options, id)); } + private static ImageArgs makeArgs(@Nullable ImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ImageArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamBinding.java index 948e4ef0ae..3eae74ba5f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamBinding.java @@ -725,13 +725,20 @@ public ImageIamBinding(String name, ImageIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ImageIamBinding(String name, ImageIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/imageIamBinding:ImageIamBinding", name, args == null ? ImageIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/imageIamBinding:ImageIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ImageIamBinding(String name, Output id, @Nullable ImageIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/imageIamBinding:ImageIamBinding", name, state, makeResourceOptions(options, id)); } + private static ImageIamBindingArgs makeArgs(ImageIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ImageIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamMember.java index 82a34ddf4e..2acbde34f3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamMember.java @@ -724,13 +724,20 @@ public ImageIamMember(String name, ImageIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ImageIamMember(String name, ImageIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/imageIamMember:ImageIamMember", name, args == null ? ImageIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/imageIamMember:ImageIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ImageIamMember(String name, Output id, @Nullable ImageIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/imageIamMember:ImageIamMember", name, state, makeResourceOptions(options, id)); } + private static ImageIamMemberArgs makeArgs(ImageIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ImageIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamPolicy.java index 56efbde45a..69117504fd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ImageIamPolicy.java @@ -670,13 +670,20 @@ public ImageIamPolicy(String name, ImageIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ImageIamPolicy(String name, ImageIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/imageIamPolicy:ImageIamPolicy", name, args == null ? ImageIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/imageIamPolicy:ImageIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ImageIamPolicy(String name, Output id, @Nullable ImageIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/imageIamPolicy:ImageIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ImageIamPolicyArgs makeArgs(ImageIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ImageIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Instance.java index 320aebc14a..2a1608082d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Instance.java @@ -835,13 +835,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromMachineImage.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromMachineImage.java index c504f5d8a5..26ca458a7a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromMachineImage.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromMachineImage.java @@ -702,13 +702,20 @@ public InstanceFromMachineImage(String name, InstanceFromMachineImageArgs args) * @param options A bag of options that control this resource's behavior. */ public InstanceFromMachineImage(String name, InstanceFromMachineImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceFromMachineImage:InstanceFromMachineImage", name, args == null ? InstanceFromMachineImageArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceFromMachineImage:InstanceFromMachineImage", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceFromMachineImage(String name, Output id, @Nullable InstanceFromMachineImageState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceFromMachineImage:InstanceFromMachineImage", name, state, makeResourceOptions(options, id)); } + private static InstanceFromMachineImageArgs makeArgs(InstanceFromMachineImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceFromMachineImageArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromTemplate.java index 340dabbad5..353e1f03ba 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceFromTemplate.java @@ -724,13 +724,20 @@ public InstanceFromTemplate(String name, InstanceFromTemplateArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceFromTemplate(String name, InstanceFromTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceFromTemplate:InstanceFromTemplate", name, args == null ? InstanceFromTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceFromTemplate:InstanceFromTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceFromTemplate(String name, Output id, @Nullable InstanceFromTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceFromTemplate:InstanceFromTemplate", name, state, makeResourceOptions(options, id)); } + private static InstanceFromTemplateArgs makeArgs(InstanceFromTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceFromTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroup.java index 3b776d15cf..e12549e8b0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroup.java @@ -312,13 +312,20 @@ public InstanceGroup(String name, @Nullable InstanceGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceGroup(String name, @Nullable InstanceGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceGroup:InstanceGroup", name, args == null ? InstanceGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceGroup:InstanceGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceGroup(String name, Output id, @Nullable InstanceGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceGroup:InstanceGroup", name, state, makeResourceOptions(options, id)); } + private static InstanceGroupArgs makeArgs(@Nullable InstanceGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java index 04427d962d..405c181de6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupManager.java @@ -734,13 +734,20 @@ public InstanceGroupManager(String name, InstanceGroupManagerArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceGroupManager(String name, InstanceGroupManagerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceGroupManager:InstanceGroupManager", name, args == null ? InstanceGroupManagerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceGroupManager:InstanceGroupManager", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceGroupManager(String name, Output id, @Nullable InstanceGroupManagerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceGroupManager:InstanceGroupManager", name, state, makeResourceOptions(options, id)); } + private static InstanceGroupManagerArgs makeArgs(InstanceGroupManagerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceGroupManagerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupMembership.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupMembership.java index 896849f1ab..16adf80b6e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupMembership.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupMembership.java @@ -220,13 +220,20 @@ public InstanceGroupMembership(String name, InstanceGroupMembershipArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceGroupMembership(String name, InstanceGroupMembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceGroupMembership:InstanceGroupMembership", name, args == null ? InstanceGroupMembershipArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceGroupMembership:InstanceGroupMembership", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceGroupMembership(String name, Output id, @Nullable InstanceGroupMembershipState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceGroupMembership:InstanceGroupMembership", name, state, makeResourceOptions(options, id)); } + private static InstanceGroupMembershipArgs makeArgs(InstanceGroupMembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceGroupMembershipArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupNamedPort.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupNamedPort.java index accbb62752..bd0ab3fbd7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupNamedPort.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceGroupNamedPort.java @@ -239,13 +239,20 @@ public InstanceGroupNamedPort(String name, InstanceGroupNamedPortArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceGroupNamedPort(String name, InstanceGroupNamedPortArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceGroupNamedPort:InstanceGroupNamedPort", name, args == null ? InstanceGroupNamedPortArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceGroupNamedPort:InstanceGroupNamedPort", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceGroupNamedPort(String name, Output id, @Nullable InstanceGroupNamedPortState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceGroupNamedPort:InstanceGroupNamedPort", name, state, makeResourceOptions(options, id)); } + private static InstanceGroupNamedPortArgs makeArgs(InstanceGroupNamedPortArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceGroupNamedPortArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMBinding.java index 5193198864..a80dabe0b3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMBinding.java @@ -757,13 +757,20 @@ public InstanceIAMBinding(String name, InstanceIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIAMBinding(String name, InstanceIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceIAMBinding:InstanceIAMBinding", name, args == null ? InstanceIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceIAMBinding:InstanceIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIAMBinding(String name, Output id, @Nullable InstanceIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceIAMBinding:InstanceIAMBinding", name, state, makeResourceOptions(options, id)); } + private static InstanceIAMBindingArgs makeArgs(InstanceIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMMember.java index 933a3a1f24..14815c4f20 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMMember.java @@ -756,13 +756,20 @@ public InstanceIAMMember(String name, InstanceIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIAMMember(String name, InstanceIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceIAMMember:InstanceIAMMember", name, args == null ? InstanceIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceIAMMember:InstanceIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIAMMember(String name, Output id, @Nullable InstanceIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceIAMMember:InstanceIAMMember", name, state, makeResourceOptions(options, id)); } + private static InstanceIAMMemberArgs makeArgs(InstanceIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMPolicy.java index 4ab45aad59..c0e6a394fe 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceIAMPolicy.java @@ -702,13 +702,20 @@ public InstanceIAMPolicy(String name, InstanceIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIAMPolicy(String name, InstanceIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceIAMPolicy:InstanceIAMPolicy", name, args == null ? InstanceIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceIAMPolicy:InstanceIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIAMPolicy(String name, Output id, @Nullable InstanceIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceIAMPolicy:InstanceIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static InstanceIAMPolicyArgs makeArgs(InstanceIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceSettings.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceSettings.java index df5aa557f1..d8a1d5f08f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceSettings.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceSettings.java @@ -181,13 +181,20 @@ public InstanceSettings(String name, InstanceSettingsArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceSettings(String name, InstanceSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceSettings:InstanceSettings", name, args == null ? InstanceSettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceSettings:InstanceSettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceSettings(String name, Output id, @Nullable InstanceSettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceSettings:InstanceSettings", name, state, makeResourceOptions(options, id)); } + private static InstanceSettingsArgs makeArgs(InstanceSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceSettingsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java index 650e6cd5e2..43628aba3e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InstanceTemplate.java @@ -862,13 +862,20 @@ public InstanceTemplate(String name, InstanceTemplateArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceTemplate(String name, InstanceTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/instanceTemplate:InstanceTemplate", name, args == null ? InstanceTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/instanceTemplate:InstanceTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceTemplate(String name, Output id, @Nullable InstanceTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/instanceTemplate:InstanceTemplate", name, state, makeResourceOptions(options, id)); } + private static InstanceTemplateArgs makeArgs(InstanceTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Interconnect.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Interconnect.java index 2921505a79..83e26c740b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Interconnect.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Interconnect.java @@ -669,13 +669,20 @@ public Interconnect(String name, InterconnectArgs args) { * @param options A bag of options that control this resource's behavior. */ public Interconnect(String name, InterconnectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/interconnect:Interconnect", name, args == null ? InterconnectArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/interconnect:Interconnect", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Interconnect(String name, Output id, @Nullable InterconnectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/interconnect:Interconnect", name, state, makeResourceOptions(options, id)); } + private static InterconnectArgs makeArgs(InterconnectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InterconnectArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/InterconnectAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/InterconnectAttachment.java index 229d0932dc..6cd0f1adbd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/InterconnectAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/InterconnectAttachment.java @@ -758,13 +758,20 @@ public InterconnectAttachment(String name, InterconnectAttachmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public InterconnectAttachment(String name, InterconnectAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/interconnectAttachment:InterconnectAttachment", name, args == null ? InterconnectAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/interconnectAttachment:InterconnectAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InterconnectAttachment(String name, Output id, @Nullable InterconnectAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/interconnectAttachment:InterconnectAttachment", name, state, makeResourceOptions(options, id)); } + private static InterconnectAttachmentArgs makeArgs(InterconnectAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InterconnectAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImage.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImage.java index f3ecea435e..73089e173d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImage.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImage.java @@ -333,13 +333,20 @@ public MachineImage(String name, MachineImageArgs args) { * @param options A bag of options that control this resource's behavior. */ public MachineImage(String name, MachineImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/machineImage:MachineImage", name, args == null ? MachineImageArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/machineImage:MachineImage", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MachineImage(String name, Output id, @Nullable MachineImageState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/machineImage:MachineImage", name, state, makeResourceOptions(options, id)); } + private static MachineImageArgs makeArgs(MachineImageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MachineImageArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamBinding.java index bb5b1fa8f9..b06477640e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamBinding.java @@ -724,13 +724,20 @@ public MachineImageIamBinding(String name, MachineImageIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public MachineImageIamBinding(String name, MachineImageIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/machineImageIamBinding:MachineImageIamBinding", name, args == null ? MachineImageIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/machineImageIamBinding:MachineImageIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MachineImageIamBinding(String name, Output id, @Nullable MachineImageIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/machineImageIamBinding:MachineImageIamBinding", name, state, makeResourceOptions(options, id)); } + private static MachineImageIamBindingArgs makeArgs(MachineImageIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MachineImageIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamMember.java index c686f280cd..2457d83b77 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamMember.java @@ -723,13 +723,20 @@ public MachineImageIamMember(String name, MachineImageIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public MachineImageIamMember(String name, MachineImageIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/machineImageIamMember:MachineImageIamMember", name, args == null ? MachineImageIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/machineImageIamMember:MachineImageIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MachineImageIamMember(String name, Output id, @Nullable MachineImageIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/machineImageIamMember:MachineImageIamMember", name, state, makeResourceOptions(options, id)); } + private static MachineImageIamMemberArgs makeArgs(MachineImageIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MachineImageIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamPolicy.java index fec3a7bf0d..862dee2ec9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/MachineImageIamPolicy.java @@ -669,13 +669,20 @@ public MachineImageIamPolicy(String name, MachineImageIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public MachineImageIamPolicy(String name, MachineImageIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/machineImageIamPolicy:MachineImageIamPolicy", name, args == null ? MachineImageIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/machineImageIamPolicy:MachineImageIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MachineImageIamPolicy(String name, Output id, @Nullable MachineImageIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/machineImageIamPolicy:MachineImageIamPolicy", name, state, makeResourceOptions(options, id)); } + private static MachineImageIamPolicyArgs makeArgs(MachineImageIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MachineImageIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ManagedSslCertificate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ManagedSslCertificate.java index 0b98775f3a..d7f852458c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ManagedSslCertificate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ManagedSslCertificate.java @@ -358,13 +358,20 @@ public ManagedSslCertificate(String name, @Nullable ManagedSslCertificateArgs ar * @param options A bag of options that control this resource's behavior. */ public ManagedSslCertificate(String name, @Nullable ManagedSslCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/managedSslCertificate:ManagedSslCertificate", name, args == null ? ManagedSslCertificateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/managedSslCertificate:ManagedSslCertificate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagedSslCertificate(String name, Output id, @Nullable ManagedSslCertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/managedSslCertificate:ManagedSslCertificate", name, state, makeResourceOptions(options, id)); } + private static ManagedSslCertificateArgs makeArgs(@Nullable ManagedSslCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagedSslCertificateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/MangedSslCertificate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/MangedSslCertificate.java index 89d4a27275..1d213fd4e5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/MangedSslCertificate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/MangedSslCertificate.java @@ -361,13 +361,20 @@ public MangedSslCertificate(String name, @Nullable MangedSslCertificateArgs args * @param options A bag of options that control this resource's behavior. */ public MangedSslCertificate(String name, @Nullable MangedSslCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/mangedSslCertificate:MangedSslCertificate", name, args == null ? MangedSslCertificateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/mangedSslCertificate:MangedSslCertificate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MangedSslCertificate(String name, Output id, @Nullable MangedSslCertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/mangedSslCertificate:MangedSslCertificate", name, state, makeResourceOptions(options, id)); } + private static MangedSslCertificateArgs makeArgs(@Nullable MangedSslCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MangedSslCertificateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java index f4adef9317..14958fbd5f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Network.java @@ -432,13 +432,20 @@ public Network(String name, @Nullable NetworkArgs args) { * @param options A bag of options that control this resource's behavior. */ public Network(String name, @Nullable NetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/network:Network", name, args == null ? NetworkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/network:Network", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Network(String name, Output id, @Nullable NetworkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/network:Network", name, state, makeResourceOptions(options, id)); } + private static NetworkArgs makeArgs(@Nullable NetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkAttachment.java index 200985840a..616ec7504e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkAttachment.java @@ -457,13 +457,20 @@ public NetworkAttachment(String name, NetworkAttachmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public NetworkAttachment(String name, NetworkAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkAttachment:NetworkAttachment", name, args == null ? NetworkAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkAttachment:NetworkAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkAttachment(String name, Output id, @Nullable NetworkAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkAttachment:NetworkAttachment", name, state, makeResourceOptions(options, id)); } + private static NetworkAttachmentArgs makeArgs(NetworkAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEdgeSecurityService.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEdgeSecurityService.java index 7fe7aa2c6c..ef8411ad35 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEdgeSecurityService.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEdgeSecurityService.java @@ -258,13 +258,20 @@ public NetworkEdgeSecurityService(String name, @Nullable NetworkEdgeSecurityServ * @param options A bag of options that control this resource's behavior. */ public NetworkEdgeSecurityService(String name, @Nullable NetworkEdgeSecurityServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkEdgeSecurityService:NetworkEdgeSecurityService", name, args == null ? NetworkEdgeSecurityServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkEdgeSecurityService:NetworkEdgeSecurityService", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkEdgeSecurityService(String name, Output id, @Nullable NetworkEdgeSecurityServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkEdgeSecurityService:NetworkEdgeSecurityService", name, state, makeResourceOptions(options, id)); } + private static NetworkEdgeSecurityServiceArgs makeArgs(@Nullable NetworkEdgeSecurityServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkEdgeSecurityServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpoint.java index f7c3703fff..8d02836687 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpoint.java @@ -282,13 +282,20 @@ public NetworkEndpoint(String name, NetworkEndpointArgs args) { * @param options A bag of options that control this resource's behavior. */ public NetworkEndpoint(String name, NetworkEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkEndpoint:NetworkEndpoint", name, args == null ? NetworkEndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkEndpoint:NetworkEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkEndpoint(String name, Output id, @Nullable NetworkEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkEndpoint:NetworkEndpoint", name, state, makeResourceOptions(options, id)); } + private static NetworkEndpointArgs makeArgs(NetworkEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkEndpointArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointGroup.java index 9b6a76b4af..235fc3a776 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointGroup.java @@ -384,13 +384,20 @@ public NetworkEndpointGroup(String name, NetworkEndpointGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public NetworkEndpointGroup(String name, NetworkEndpointGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkEndpointGroup:NetworkEndpointGroup", name, args == null ? NetworkEndpointGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkEndpointGroup:NetworkEndpointGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkEndpointGroup(String name, Output id, @Nullable NetworkEndpointGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkEndpointGroup:NetworkEndpointGroup", name, state, makeResourceOptions(options, id)); } + private static NetworkEndpointGroupArgs makeArgs(NetworkEndpointGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkEndpointGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointList.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointList.java index 1ef67c27e2..b7792b598c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointList.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkEndpointList.java @@ -275,13 +275,20 @@ public NetworkEndpointList(String name, NetworkEndpointListArgs args) { * @param options A bag of options that control this resource's behavior. */ public NetworkEndpointList(String name, NetworkEndpointListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkEndpointList:NetworkEndpointList", name, args == null ? NetworkEndpointListArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkEndpointList:NetworkEndpointList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkEndpointList(String name, Output id, @Nullable NetworkEndpointListState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkEndpointList:NetworkEndpointList", name, state, makeResourceOptions(options, id)); } + private static NetworkEndpointListArgs makeArgs(NetworkEndpointListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkEndpointListArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicy.java index c6b0a2dc20..da9c12461f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicy.java @@ -238,13 +238,20 @@ public NetworkFirewallPolicy(String name, @Nullable NetworkFirewallPolicyArgs ar * @param options A bag of options that control this resource's behavior. */ public NetworkFirewallPolicy(String name, @Nullable NetworkFirewallPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkFirewallPolicy:NetworkFirewallPolicy", name, args == null ? NetworkFirewallPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkFirewallPolicy:NetworkFirewallPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkFirewallPolicy(String name, Output id, @Nullable NetworkFirewallPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkFirewallPolicy:NetworkFirewallPolicy", name, state, makeResourceOptions(options, id)); } + private static NetworkFirewallPolicyArgs makeArgs(@Nullable NetworkFirewallPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkFirewallPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyAssociation.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyAssociation.java index 187cd9f5b9..19a155df76 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyAssociation.java @@ -187,13 +187,20 @@ public NetworkFirewallPolicyAssociation(String name, NetworkFirewallPolicyAssoci * @param options A bag of options that control this resource's behavior. */ public NetworkFirewallPolicyAssociation(String name, NetworkFirewallPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkFirewallPolicyAssociation:NetworkFirewallPolicyAssociation", name, args == null ? NetworkFirewallPolicyAssociationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkFirewallPolicyAssociation:NetworkFirewallPolicyAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkFirewallPolicyAssociation(String name, Output id, @Nullable NetworkFirewallPolicyAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkFirewallPolicyAssociation:NetworkFirewallPolicyAssociation", name, state, makeResourceOptions(options, id)); } + private static NetworkFirewallPolicyAssociationArgs makeArgs(NetworkFirewallPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkFirewallPolicyAssociationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java index fb39206e62..2e13668b20 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkFirewallPolicyRule.java @@ -420,13 +420,20 @@ public NetworkFirewallPolicyRule(String name, NetworkFirewallPolicyRuleArgs args * @param options A bag of options that control this resource's behavior. */ public NetworkFirewallPolicyRule(String name, NetworkFirewallPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkFirewallPolicyRule:NetworkFirewallPolicyRule", name, args == null ? NetworkFirewallPolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkFirewallPolicyRule:NetworkFirewallPolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkFirewallPolicyRule(String name, Output id, @Nullable NetworkFirewallPolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkFirewallPolicyRule:NetworkFirewallPolicyRule", name, state, makeResourceOptions(options, id)); } + private static NetworkFirewallPolicyRuleArgs makeArgs(NetworkFirewallPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkFirewallPolicyRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeering.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeering.java index 4bb362a652..6b8b5d1896 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeering.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeering.java @@ -263,13 +263,20 @@ public NetworkPeering(String name, NetworkPeeringArgs args) { * @param options A bag of options that control this resource's behavior. */ public NetworkPeering(String name, NetworkPeeringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkPeering:NetworkPeering", name, args == null ? NetworkPeeringArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkPeering:NetworkPeering", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkPeering(String name, Output id, @Nullable NetworkPeeringState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkPeering:NetworkPeering", name, state, makeResourceOptions(options, id)); } + private static NetworkPeeringArgs makeArgs(NetworkPeeringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkPeeringArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeeringRoutesConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeeringRoutesConfig.java index 41b3cf8ade..7e8ceccdea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeeringRoutesConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NetworkPeeringRoutesConfig.java @@ -308,13 +308,20 @@ public NetworkPeeringRoutesConfig(String name, NetworkPeeringRoutesConfigArgs ar * @param options A bag of options that control this resource's behavior. */ public NetworkPeeringRoutesConfig(String name, NetworkPeeringRoutesConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/networkPeeringRoutesConfig:NetworkPeeringRoutesConfig", name, args == null ? NetworkPeeringRoutesConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/networkPeeringRoutesConfig:NetworkPeeringRoutesConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkPeeringRoutesConfig(String name, Output id, @Nullable NetworkPeeringRoutesConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/networkPeeringRoutesConfig:NetworkPeeringRoutesConfig", name, state, makeResourceOptions(options, id)); } + private static NetworkPeeringRoutesConfigArgs makeArgs(NetworkPeeringRoutesConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkPeeringRoutesConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeGroup.java index 21495a9fb7..92c2ea8e7f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeGroup.java @@ -521,13 +521,20 @@ public NodeGroup(String name, NodeGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public NodeGroup(String name, NodeGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/nodeGroup:NodeGroup", name, args == null ? NodeGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/nodeGroup:NodeGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NodeGroup(String name, Output id, @Nullable NodeGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/nodeGroup:NodeGroup", name, state, makeResourceOptions(options, id)); } + private static NodeGroupArgs makeArgs(NodeGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NodeGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java index b81bb8f08b..83d0ca382f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/NodeTemplate.java @@ -348,13 +348,20 @@ public NodeTemplate(String name, @Nullable NodeTemplateArgs args) { * @param options A bag of options that control this resource's behavior. */ public NodeTemplate(String name, @Nullable NodeTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/nodeTemplate:NodeTemplate", name, args == null ? NodeTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/nodeTemplate:NodeTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NodeTemplate(String name, Output id, @Nullable NodeTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/nodeTemplate:NodeTemplate", name, state, makeResourceOptions(options, id)); } + private static NodeTemplateArgs makeArgs(@Nullable NodeTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NodeTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicy.java index ef903c6cc7..853dfba029 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicy.java @@ -205,13 +205,20 @@ public OrganizationSecurityPolicy(String name, OrganizationSecurityPolicyArgs ar * @param options A bag of options that control this resource's behavior. */ public OrganizationSecurityPolicy(String name, OrganizationSecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/organizationSecurityPolicy:OrganizationSecurityPolicy", name, args == null ? OrganizationSecurityPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/organizationSecurityPolicy:OrganizationSecurityPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationSecurityPolicy(String name, Output id, @Nullable OrganizationSecurityPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/organizationSecurityPolicy:OrganizationSecurityPolicy", name, state, makeResourceOptions(options, id)); } + private static OrganizationSecurityPolicyArgs makeArgs(OrganizationSecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationSecurityPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyAssociation.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyAssociation.java index 8aa76aa720..944dc6fb1e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyAssociation.java @@ -200,13 +200,20 @@ public OrganizationSecurityPolicyAssociation(String name, OrganizationSecurityPo * @param options A bag of options that control this resource's behavior. */ public OrganizationSecurityPolicyAssociation(String name, OrganizationSecurityPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/organizationSecurityPolicyAssociation:OrganizationSecurityPolicyAssociation", name, args == null ? OrganizationSecurityPolicyAssociationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/organizationSecurityPolicyAssociation:OrganizationSecurityPolicyAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationSecurityPolicyAssociation(String name, Output id, @Nullable OrganizationSecurityPolicyAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/organizationSecurityPolicyAssociation:OrganizationSecurityPolicyAssociation", name, state, makeResourceOptions(options, id)); } + private static OrganizationSecurityPolicyAssociationArgs makeArgs(OrganizationSecurityPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationSecurityPolicyAssociationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyRule.java index 9836e02ade..e3f743fcc8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/OrganizationSecurityPolicyRule.java @@ -284,13 +284,20 @@ public OrganizationSecurityPolicyRule(String name, OrganizationSecurityPolicyRul * @param options A bag of options that control this resource's behavior. */ public OrganizationSecurityPolicyRule(String name, OrganizationSecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/organizationSecurityPolicyRule:OrganizationSecurityPolicyRule", name, args == null ? OrganizationSecurityPolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/organizationSecurityPolicyRule:OrganizationSecurityPolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationSecurityPolicyRule(String name, Output id, @Nullable OrganizationSecurityPolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/organizationSecurityPolicyRule:OrganizationSecurityPolicyRule", name, state, makeResourceOptions(options, id)); } + private static OrganizationSecurityPolicyRuleArgs makeArgs(OrganizationSecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationSecurityPolicyRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/PacketMirroring.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/PacketMirroring.java index 300920562c..9a785ea6af 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/PacketMirroring.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/PacketMirroring.java @@ -350,13 +350,20 @@ public PacketMirroring(String name, PacketMirroringArgs args) { * @param options A bag of options that control this resource's behavior. */ public PacketMirroring(String name, PacketMirroringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/packetMirroring:PacketMirroring", name, args == null ? PacketMirroringArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/packetMirroring:PacketMirroring", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PacketMirroring(String name, Output id, @Nullable PacketMirroringState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/packetMirroring:PacketMirroring", name, state, makeResourceOptions(options, id)); } + private static PacketMirroringArgs makeArgs(PacketMirroringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PacketMirroringArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/PerInstanceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/PerInstanceConfig.java index ef6967f9a4..eb45141752 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/PerInstanceConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/PerInstanceConfig.java @@ -353,13 +353,20 @@ public PerInstanceConfig(String name, PerInstanceConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public PerInstanceConfig(String name, PerInstanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/perInstanceConfig:PerInstanceConfig", name, args == null ? PerInstanceConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/perInstanceConfig:PerInstanceConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PerInstanceConfig(String name, Output id, @Nullable PerInstanceConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/perInstanceConfig:PerInstanceConfig", name, state, makeResourceOptions(options, id)); } + private static PerInstanceConfigArgs makeArgs(PerInstanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PerInstanceConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectCloudArmorTier.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectCloudArmorTier.java index 084a1af76c..3648b48511 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectCloudArmorTier.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectCloudArmorTier.java @@ -193,13 +193,20 @@ public ProjectCloudArmorTier(String name, ProjectCloudArmorTierArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectCloudArmorTier(String name, ProjectCloudArmorTierArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/projectCloudArmorTier:ProjectCloudArmorTier", name, args == null ? ProjectCloudArmorTierArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/projectCloudArmorTier:ProjectCloudArmorTier", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectCloudArmorTier(String name, Output id, @Nullable ProjectCloudArmorTierState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/projectCloudArmorTier:ProjectCloudArmorTier", name, state, makeResourceOptions(options, id)); } + private static ProjectCloudArmorTierArgs makeArgs(ProjectCloudArmorTierArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectCloudArmorTierArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectDefaultNetworkTier.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectDefaultNetworkTier.java index 993212aca5..124ec29b9e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectDefaultNetworkTier.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectDefaultNetworkTier.java @@ -130,13 +130,20 @@ public ProjectDefaultNetworkTier(String name, ProjectDefaultNetworkTierArgs args * @param options A bag of options that control this resource's behavior. */ public ProjectDefaultNetworkTier(String name, ProjectDefaultNetworkTierArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/projectDefaultNetworkTier:ProjectDefaultNetworkTier", name, args == null ? ProjectDefaultNetworkTierArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/projectDefaultNetworkTier:ProjectDefaultNetworkTier", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectDefaultNetworkTier(String name, Output id, @Nullable ProjectDefaultNetworkTierState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/projectDefaultNetworkTier:ProjectDefaultNetworkTier", name, state, makeResourceOptions(options, id)); } + private static ProjectDefaultNetworkTierArgs makeArgs(ProjectDefaultNetworkTierArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectDefaultNetworkTierArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadata.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadata.java index 1c5c0ecd35..4733e0fb49 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadata.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadata.java @@ -177,13 +177,20 @@ public ProjectMetadata(String name, ProjectMetadataArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectMetadata(String name, ProjectMetadataArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/projectMetadata:ProjectMetadata", name, args == null ? ProjectMetadataArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/projectMetadata:ProjectMetadata", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectMetadata(String name, Output id, @Nullable ProjectMetadataState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/projectMetadata:ProjectMetadata", name, state, makeResourceOptions(options, id)); } + private static ProjectMetadataArgs makeArgs(ProjectMetadataArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectMetadataArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadataItem.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadataItem.java index 75325d11dd..b01a318da9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadataItem.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ProjectMetadataItem.java @@ -141,13 +141,20 @@ public ProjectMetadataItem(String name, ProjectMetadataItemArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectMetadataItem(String name, ProjectMetadataItemArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/projectMetadataItem:ProjectMetadataItem", name, args == null ? ProjectMetadataItemArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/projectMetadataItem:ProjectMetadataItem", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectMetadataItem(String name, Output id, @Nullable ProjectMetadataItemState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/projectMetadataItem:ProjectMetadataItem", name, state, makeResourceOptions(options, id)); } + private static ProjectMetadataItemArgs makeArgs(ProjectMetadataItemArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectMetadataItemArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicAdvertisedPrefix.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicAdvertisedPrefix.java index 093b869434..d13f889204 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicAdvertisedPrefix.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicAdvertisedPrefix.java @@ -190,6 +190,20 @@ public Output project() { public Output selfLink() { return this.selfLink; } + /** + * Output Only. The shared secret to be used for reverse DNS verification. + * + */ + @Export(name="sharedSecret", refs={String.class}, tree="[0]") + private Output sharedSecret; + + /** + * @return Output Only. The shared secret to be used for reverse DNS verification. + * + */ + public Output sharedSecret() { + return this.sharedSecret; + } /** * @@ -213,13 +227,20 @@ public PublicAdvertisedPrefix(String name, PublicAdvertisedPrefixArgs args) { * @param options A bag of options that control this resource's behavior. */ public PublicAdvertisedPrefix(String name, PublicAdvertisedPrefixArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/publicAdvertisedPrefix:PublicAdvertisedPrefix", name, args == null ? PublicAdvertisedPrefixArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/publicAdvertisedPrefix:PublicAdvertisedPrefix", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PublicAdvertisedPrefix(String name, Output id, @Nullable PublicAdvertisedPrefixState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/publicAdvertisedPrefix:PublicAdvertisedPrefix", name, state, makeResourceOptions(options, id)); } + private static PublicAdvertisedPrefixArgs makeArgs(PublicAdvertisedPrefixArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PublicAdvertisedPrefixArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicDelegatedPrefix.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicDelegatedPrefix.java index fd5947bf0d..bd60cd3adc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicDelegatedPrefix.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/PublicDelegatedPrefix.java @@ -258,13 +258,20 @@ public PublicDelegatedPrefix(String name, PublicDelegatedPrefixArgs args) { * @param options A bag of options that control this resource's behavior. */ public PublicDelegatedPrefix(String name, PublicDelegatedPrefixArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/publicDelegatedPrefix:PublicDelegatedPrefix", name, args == null ? PublicDelegatedPrefixArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/publicDelegatedPrefix:PublicDelegatedPrefix", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PublicDelegatedPrefix(String name, Output id, @Nullable PublicDelegatedPrefixState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/publicDelegatedPrefix:PublicDelegatedPrefix", name, state, makeResourceOptions(options, id)); } + private static PublicDelegatedPrefixArgs makeArgs(PublicDelegatedPrefixArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PublicDelegatedPrefixArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionAutoscaler.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionAutoscaler.java index f27962e75a..5b6f4e1c00 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionAutoscaler.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionAutoscaler.java @@ -312,13 +312,20 @@ public RegionAutoscaler(String name, RegionAutoscalerArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionAutoscaler(String name, RegionAutoscalerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionAutoscaler:RegionAutoscaler", name, args == null ? RegionAutoscalerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionAutoscaler:RegionAutoscaler", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionAutoscaler(String name, Output id, @Nullable RegionAutoscalerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionAutoscaler:RegionAutoscaler", name, state, makeResourceOptions(options, id)); } + private static RegionAutoscalerArgs makeArgs(RegionAutoscalerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionAutoscalerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendService.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendService.java index d20eb34f66..a45b4be399 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendService.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendService.java @@ -1258,13 +1258,20 @@ public RegionBackendService(String name, @Nullable RegionBackendServiceArgs args * @param options A bag of options that control this resource's behavior. */ public RegionBackendService(String name, @Nullable RegionBackendServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionBackendService:RegionBackendService", name, args == null ? RegionBackendServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionBackendService:RegionBackendService", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionBackendService(String name, Output id, @Nullable RegionBackendServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionBackendService:RegionBackendService", name, state, makeResourceOptions(options, id)); } + private static RegionBackendServiceArgs makeArgs(@Nullable RegionBackendServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionBackendServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamBinding.java index 11877c627c..b56c717486 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamBinding.java @@ -215,13 +215,20 @@ public RegionBackendServiceIamBinding(String name, RegionBackendServiceIamBindin * @param options A bag of options that control this resource's behavior. */ public RegionBackendServiceIamBinding(String name, RegionBackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionBackendServiceIamBinding:RegionBackendServiceIamBinding", name, args == null ? RegionBackendServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionBackendServiceIamBinding:RegionBackendServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionBackendServiceIamBinding(String name, Output id, @Nullable RegionBackendServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionBackendServiceIamBinding:RegionBackendServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static RegionBackendServiceIamBindingArgs makeArgs(RegionBackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionBackendServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamMember.java index 4e9019c738..048f234725 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamMember.java @@ -214,13 +214,20 @@ public RegionBackendServiceIamMember(String name, RegionBackendServiceIamMemberA * @param options A bag of options that control this resource's behavior. */ public RegionBackendServiceIamMember(String name, RegionBackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionBackendServiceIamMember:RegionBackendServiceIamMember", name, args == null ? RegionBackendServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionBackendServiceIamMember:RegionBackendServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionBackendServiceIamMember(String name, Output id, @Nullable RegionBackendServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionBackendServiceIamMember:RegionBackendServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static RegionBackendServiceIamMemberArgs makeArgs(RegionBackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionBackendServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamPolicy.java index b3d01e2f86..704a662c88 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionBackendServiceIamPolicy.java @@ -160,13 +160,20 @@ public RegionBackendServiceIamPolicy(String name, RegionBackendServiceIamPolicyA * @param options A bag of options that control this resource's behavior. */ public RegionBackendServiceIamPolicy(String name, RegionBackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionBackendServiceIamPolicy:RegionBackendServiceIamPolicy", name, args == null ? RegionBackendServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionBackendServiceIamPolicy:RegionBackendServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionBackendServiceIamPolicy(String name, Output id, @Nullable RegionBackendServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionBackendServiceIamPolicy:RegionBackendServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static RegionBackendServiceIamPolicyArgs makeArgs(RegionBackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionBackendServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionCommitment.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionCommitment.java index bd1bef52fc..422a13de48 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionCommitment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionCommitment.java @@ -471,13 +471,20 @@ public RegionCommitment(String name, RegionCommitmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionCommitment(String name, RegionCommitmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionCommitment:RegionCommitment", name, args == null ? RegionCommitmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionCommitment:RegionCommitment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionCommitment(String name, Output id, @Nullable RegionCommitmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionCommitment:RegionCommitment", name, state, makeResourceOptions(options, id)); } + private static RegionCommitmentArgs makeArgs(RegionCommitmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionCommitmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java index a6a08611df..71f2dcba4d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDisk.java @@ -776,13 +776,20 @@ public RegionDisk(String name, RegionDiskArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionDisk(String name, RegionDiskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionDisk:RegionDisk", name, args == null ? RegionDiskArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionDisk:RegionDisk", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionDisk(String name, Output id, @Nullable RegionDiskState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionDisk:RegionDisk", name, state, makeResourceOptions(options, id)); } + private static RegionDiskArgs makeArgs(RegionDiskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionDiskArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamBinding.java index 79a90117fa..7ca222864b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamBinding.java @@ -465,13 +465,20 @@ public RegionDiskIamBinding(String name, RegionDiskIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionDiskIamBinding(String name, RegionDiskIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionDiskIamBinding:RegionDiskIamBinding", name, args == null ? RegionDiskIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionDiskIamBinding:RegionDiskIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionDiskIamBinding(String name, Output id, @Nullable RegionDiskIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionDiskIamBinding:RegionDiskIamBinding", name, state, makeResourceOptions(options, id)); } + private static RegionDiskIamBindingArgs makeArgs(RegionDiskIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionDiskIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamMember.java index 4e83f4c3cf..a96d3034b0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamMember.java @@ -464,13 +464,20 @@ public RegionDiskIamMember(String name, RegionDiskIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionDiskIamMember(String name, RegionDiskIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionDiskIamMember:RegionDiskIamMember", name, args == null ? RegionDiskIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionDiskIamMember:RegionDiskIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionDiskIamMember(String name, Output id, @Nullable RegionDiskIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionDiskIamMember:RegionDiskIamMember", name, state, makeResourceOptions(options, id)); } + private static RegionDiskIamMemberArgs makeArgs(RegionDiskIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionDiskIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamPolicy.java index 07af02eb40..dfaf3e4fe0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskIamPolicy.java @@ -420,13 +420,20 @@ public RegionDiskIamPolicy(String name, RegionDiskIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionDiskIamPolicy(String name, RegionDiskIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionDiskIamPolicy:RegionDiskIamPolicy", name, args == null ? RegionDiskIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionDiskIamPolicy:RegionDiskIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionDiskIamPolicy(String name, Output id, @Nullable RegionDiskIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionDiskIamPolicy:RegionDiskIamPolicy", name, state, makeResourceOptions(options, id)); } + private static RegionDiskIamPolicyArgs makeArgs(RegionDiskIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionDiskIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskResourcePolicyAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskResourcePolicyAttachment.java index a9caf9a541..c1386a5916 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskResourcePolicyAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionDiskResourcePolicyAttachment.java @@ -234,13 +234,20 @@ public RegionDiskResourcePolicyAttachment(String name, RegionDiskResourcePolicyA * @param options A bag of options that control this resource's behavior. */ public RegionDiskResourcePolicyAttachment(String name, RegionDiskResourcePolicyAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionDiskResourcePolicyAttachment:RegionDiskResourcePolicyAttachment", name, args == null ? RegionDiskResourcePolicyAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionDiskResourcePolicyAttachment:RegionDiskResourcePolicyAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionDiskResourcePolicyAttachment(String name, Output id, @Nullable RegionDiskResourcePolicyAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionDiskResourcePolicyAttachment:RegionDiskResourcePolicyAttachment", name, state, makeResourceOptions(options, id)); } + private static RegionDiskResourcePolicyAttachmentArgs makeArgs(RegionDiskResourcePolicyAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionDiskResourcePolicyAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java index 4024c06a33..2765a9a262 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionHealthCheck.java @@ -962,13 +962,20 @@ public RegionHealthCheck(String name, @Nullable RegionHealthCheckArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionHealthCheck(String name, @Nullable RegionHealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionHealthCheck:RegionHealthCheck", name, args == null ? RegionHealthCheckArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionHealthCheck:RegionHealthCheck", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionHealthCheck(String name, Output id, @Nullable RegionHealthCheckState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionHealthCheck:RegionHealthCheck", name, state, makeResourceOptions(options, id)); } + private static RegionHealthCheckArgs makeArgs(@Nullable RegionHealthCheckArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionHealthCheckArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java index 55a4342bed..1dc4350a23 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceGroupManager.java @@ -744,13 +744,20 @@ public RegionInstanceGroupManager(String name, RegionInstanceGroupManagerArgs ar * @param options A bag of options that control this resource's behavior. */ public RegionInstanceGroupManager(String name, RegionInstanceGroupManagerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionInstanceGroupManager:RegionInstanceGroupManager", name, args == null ? RegionInstanceGroupManagerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionInstanceGroupManager:RegionInstanceGroupManager", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionInstanceGroupManager(String name, Output id, @Nullable RegionInstanceGroupManagerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionInstanceGroupManager:RegionInstanceGroupManager", name, state, makeResourceOptions(options, id)); } + private static RegionInstanceGroupManagerArgs makeArgs(RegionInstanceGroupManagerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionInstanceGroupManagerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceTemplate.java index 0a9fa18166..79e30c3b87 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionInstanceTemplate.java @@ -581,13 +581,20 @@ public RegionInstanceTemplate(String name, RegionInstanceTemplateArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionInstanceTemplate(String name, RegionInstanceTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionInstanceTemplate:RegionInstanceTemplate", name, args == null ? RegionInstanceTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionInstanceTemplate:RegionInstanceTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionInstanceTemplate(String name, Output id, @Nullable RegionInstanceTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionInstanceTemplate:RegionInstanceTemplate", name, state, makeResourceOptions(options, id)); } + private static RegionInstanceTemplateArgs makeArgs(RegionInstanceTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionInstanceTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpoint.java index 6b0cc210b2..e71fb7e5c8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpoint.java @@ -409,13 +409,20 @@ public RegionNetworkEndpoint(String name, RegionNetworkEndpointArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionNetworkEndpoint(String name, RegionNetworkEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionNetworkEndpoint:RegionNetworkEndpoint", name, args == null ? RegionNetworkEndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionNetworkEndpoint:RegionNetworkEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionNetworkEndpoint(String name, Output id, @Nullable RegionNetworkEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionNetworkEndpoint:RegionNetworkEndpoint", name, state, makeResourceOptions(options, id)); } + private static RegionNetworkEndpointArgs makeArgs(RegionNetworkEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionNetworkEndpointArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpointGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpointGroup.java index f438047373..eb1262a0be 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpointGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkEndpointGroup.java @@ -885,13 +885,20 @@ public RegionNetworkEndpointGroup(String name, RegionNetworkEndpointGroupArgs ar * @param options A bag of options that control this resource's behavior. */ public RegionNetworkEndpointGroup(String name, RegionNetworkEndpointGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup", name, args == null ? RegionNetworkEndpointGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionNetworkEndpointGroup(String name, Output id, @Nullable RegionNetworkEndpointGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionNetworkEndpointGroup:RegionNetworkEndpointGroup", name, state, makeResourceOptions(options, id)); } + private static RegionNetworkEndpointGroupArgs makeArgs(RegionNetworkEndpointGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionNetworkEndpointGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicy.java index 462fe9f284..8395cb282c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicy.java @@ -258,13 +258,20 @@ public RegionNetworkFirewallPolicy(String name, @Nullable RegionNetworkFirewallP * @param options A bag of options that control this resource's behavior. */ public RegionNetworkFirewallPolicy(String name, @Nullable RegionNetworkFirewallPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionNetworkFirewallPolicy:RegionNetworkFirewallPolicy", name, args == null ? RegionNetworkFirewallPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionNetworkFirewallPolicy:RegionNetworkFirewallPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionNetworkFirewallPolicy(String name, Output id, @Nullable RegionNetworkFirewallPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionNetworkFirewallPolicy:RegionNetworkFirewallPolicy", name, state, makeResourceOptions(options, id)); } + private static RegionNetworkFirewallPolicyArgs makeArgs(@Nullable RegionNetworkFirewallPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionNetworkFirewallPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyAssociation.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyAssociation.java index b91eaa6c52..19f2aed5fe 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyAssociation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyAssociation.java @@ -203,13 +203,20 @@ public RegionNetworkFirewallPolicyAssociation(String name, RegionNetworkFirewall * @param options A bag of options that control this resource's behavior. */ public RegionNetworkFirewallPolicyAssociation(String name, RegionNetworkFirewallPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionNetworkFirewallPolicyAssociation:RegionNetworkFirewallPolicyAssociation", name, args == null ? RegionNetworkFirewallPolicyAssociationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionNetworkFirewallPolicyAssociation:RegionNetworkFirewallPolicyAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionNetworkFirewallPolicyAssociation(String name, Output id, @Nullable RegionNetworkFirewallPolicyAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionNetworkFirewallPolicyAssociation:RegionNetworkFirewallPolicyAssociation", name, state, makeResourceOptions(options, id)); } + private static RegionNetworkFirewallPolicyAssociationArgs makeArgs(RegionNetworkFirewallPolicyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionNetworkFirewallPolicyAssociationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java index 45bae497ef..dbdaefdca7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionNetworkFirewallPolicyRule.java @@ -442,13 +442,20 @@ public RegionNetworkFirewallPolicyRule(String name, RegionNetworkFirewallPolicyR * @param options A bag of options that control this resource's behavior. */ public RegionNetworkFirewallPolicyRule(String name, RegionNetworkFirewallPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionNetworkFirewallPolicyRule:RegionNetworkFirewallPolicyRule", name, args == null ? RegionNetworkFirewallPolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionNetworkFirewallPolicyRule:RegionNetworkFirewallPolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionNetworkFirewallPolicyRule(String name, Output id, @Nullable RegionNetworkFirewallPolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionNetworkFirewallPolicyRule:RegionNetworkFirewallPolicyRule", name, state, makeResourceOptions(options, id)); } + private static RegionNetworkFirewallPolicyRuleArgs makeArgs(RegionNetworkFirewallPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionNetworkFirewallPolicyRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionPerInstanceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionPerInstanceConfig.java index 9d3d8127ee..2742d1bf5a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionPerInstanceConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionPerInstanceConfig.java @@ -360,13 +360,20 @@ public RegionPerInstanceConfig(String name, RegionPerInstanceConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionPerInstanceConfig(String name, RegionPerInstanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig", name, args == null ? RegionPerInstanceConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionPerInstanceConfig(String name, Output id, @Nullable RegionPerInstanceConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionPerInstanceConfig:RegionPerInstanceConfig", name, state, makeResourceOptions(options, id)); } + private static RegionPerInstanceConfigArgs makeArgs(RegionPerInstanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionPerInstanceConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java index 58b744dee0..3d34496077 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicy.java @@ -389,13 +389,20 @@ public RegionSecurityPolicy(String name, @Nullable RegionSecurityPolicyArgs args * @param options A bag of options that control this resource's behavior. */ public RegionSecurityPolicy(String name, @Nullable RegionSecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionSecurityPolicy:RegionSecurityPolicy", name, args == null ? RegionSecurityPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionSecurityPolicy:RegionSecurityPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionSecurityPolicy(String name, Output id, @Nullable RegionSecurityPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionSecurityPolicy:RegionSecurityPolicy", name, state, makeResourceOptions(options, id)); } + private static RegionSecurityPolicyArgs makeArgs(@Nullable RegionSecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionSecurityPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyRule.java index 77e8db54cc..2d263bcfc1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSecurityPolicyRule.java @@ -584,13 +584,20 @@ public RegionSecurityPolicyRule(String name, RegionSecurityPolicyRuleArgs args) * @param options A bag of options that control this resource's behavior. */ public RegionSecurityPolicyRule(String name, RegionSecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionSecurityPolicyRule:RegionSecurityPolicyRule", name, args == null ? RegionSecurityPolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionSecurityPolicyRule:RegionSecurityPolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionSecurityPolicyRule(String name, Output id, @Nullable RegionSecurityPolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionSecurityPolicyRule:RegionSecurityPolicyRule", name, state, makeResourceOptions(options, id)); } + private static RegionSecurityPolicyRuleArgs makeArgs(RegionSecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionSecurityPolicyRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslCertificate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslCertificate.java index ec2523a276..5e1916afdb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslCertificate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslCertificate.java @@ -271,13 +271,20 @@ public RegionSslCertificate(String name, RegionSslCertificateArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionSslCertificate(String name, RegionSslCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionSslCertificate:RegionSslCertificate", name, args == null ? RegionSslCertificateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionSslCertificate:RegionSslCertificate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionSslCertificate(String name, Output id, @Nullable RegionSslCertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionSslCertificate:RegionSslCertificate", name, state, makeResourceOptions(options, id)); } + private static RegionSslCertificateArgs makeArgs(RegionSslCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionSslCertificateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslPolicy.java index 0d59b5ff8b..457de31c78 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionSslPolicy.java @@ -289,13 +289,20 @@ public RegionSslPolicy(String name, @Nullable RegionSslPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionSslPolicy(String name, @Nullable RegionSslPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionSslPolicy:RegionSslPolicy", name, args == null ? RegionSslPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionSslPolicy:RegionSslPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionSslPolicy(String name, Output id, @Nullable RegionSslPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionSslPolicy:RegionSslPolicy", name, state, makeResourceOptions(options, id)); } + private static RegionSslPolicyArgs makeArgs(@Nullable RegionSslPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionSslPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpProxy.java index f7daa723e7..8e205f068d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpProxy.java @@ -346,13 +346,20 @@ public RegionTargetHttpProxy(String name, RegionTargetHttpProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionTargetHttpProxy(String name, RegionTargetHttpProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionTargetHttpProxy:RegionTargetHttpProxy", name, args == null ? RegionTargetHttpProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionTargetHttpProxy:RegionTargetHttpProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionTargetHttpProxy(String name, Output id, @Nullable RegionTargetHttpProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionTargetHttpProxy:RegionTargetHttpProxy", name, state, makeResourceOptions(options, id)); } + private static RegionTargetHttpProxyArgs makeArgs(RegionTargetHttpProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionTargetHttpProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpsProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpsProxy.java index 2d1cb3c1c6..a77746f86f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpsProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetHttpsProxy.java @@ -607,13 +607,20 @@ public RegionTargetHttpsProxy(String name, RegionTargetHttpsProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionTargetHttpsProxy(String name, RegionTargetHttpsProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionTargetHttpsProxy:RegionTargetHttpsProxy", name, args == null ? RegionTargetHttpsProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionTargetHttpsProxy:RegionTargetHttpsProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionTargetHttpsProxy(String name, Output id, @Nullable RegionTargetHttpsProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionTargetHttpsProxy:RegionTargetHttpsProxy", name, state, makeResourceOptions(options, id)); } + private static RegionTargetHttpsProxyArgs makeArgs(RegionTargetHttpsProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionTargetHttpsProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java index 1bcd2779ec..6f239d5d4c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionTargetTcpProxy.java @@ -314,13 +314,20 @@ public RegionTargetTcpProxy(String name, RegionTargetTcpProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionTargetTcpProxy(String name, RegionTargetTcpProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy", name, args == null ? RegionTargetTcpProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionTargetTcpProxy(String name, Output id, @Nullable RegionTargetTcpProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionTargetTcpProxy:RegionTargetTcpProxy", name, state, makeResourceOptions(options, id)); } + private static RegionTargetTcpProxyArgs makeArgs(RegionTargetTcpProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionTargetTcpProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionUrlMap.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionUrlMap.java index 8ebb1457f8..0747a66d02 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionUrlMap.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RegionUrlMap.java @@ -1198,13 +1198,20 @@ public RegionUrlMap(String name, @Nullable RegionUrlMapArgs args) { * @param options A bag of options that control this resource's behavior. */ public RegionUrlMap(String name, @Nullable RegionUrlMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/regionUrlMap:RegionUrlMap", name, args == null ? RegionUrlMapArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/regionUrlMap:RegionUrlMap", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RegionUrlMap(String name, Output id, @Nullable RegionUrlMapState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/regionUrlMap:RegionUrlMap", name, state, makeResourceOptions(options, id)); } + private static RegionUrlMapArgs makeArgs(@Nullable RegionUrlMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegionUrlMapArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Reservation.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Reservation.java index 4aba07a974..be2e62c45e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Reservation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Reservation.java @@ -300,13 +300,20 @@ public Reservation(String name, ReservationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Reservation(String name, ReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/reservation:Reservation", name, args == null ? ReservationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/reservation:Reservation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Reservation(String name, Output id, @Nullable ReservationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/reservation:Reservation", name, state, makeResourceOptions(options, id)); } + private static ReservationArgs makeArgs(ReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ReservationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ResizeRequest.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ResizeRequest.java new file mode 100644 index 0000000000..2ff6686474 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ResizeRequest.java @@ -0,0 +1,383 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.compute.ResizeRequestArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestState; +import com.pulumi.gcp.compute.outputs.ResizeRequestRequestedRunDuration; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatus; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Represents a Managed Instance Group Resize Request + * + * Resize Requests are the Managed Instance Group implementation of Dynamic Workload Scheduler Flex Start. + * + * With Dynamic Workload Scheduler in Flex Start mode, you submit a GPU capacity request for your AI/ML jobs by indicating how many you need, a duration, and your preferred region. Dynamic Workload Scheduler intelligently persists the request; once the capacity becomes available, it automatically provisions your VMs enabling your workloads to run continuously for the entire duration of the capacity allocation. + * + * To get more information about ResizeRequest, see: + * + * * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagerResizeRequests) + * * How-to Guides + * * [QUICKSTART_TITLE](https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig) + * + * ## Example Usage + * + * ### Compute Mig Resize Request + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.compute.RegionInstanceTemplate;
+ * import com.pulumi.gcp.compute.RegionInstanceTemplateArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateSchedulingArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateDiskArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateGuestAcceleratorArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateReservationAffinityArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateShieldedInstanceConfigArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionInstanceTemplateNetworkInterfaceArgs;
+ * import com.pulumi.gcp.compute.InstanceGroupManager;
+ * import com.pulumi.gcp.compute.InstanceGroupManagerArgs;
+ * import com.pulumi.gcp.compute.inputs.InstanceGroupManagerVersionArgs;
+ * import com.pulumi.gcp.compute.inputs.InstanceGroupManagerInstanceLifecyclePolicyArgs;
+ * import com.pulumi.gcp.compute.ResizeRequest;
+ * import com.pulumi.gcp.compute.ResizeRequestArgs;
+ * import com.pulumi.gcp.compute.inputs.ResizeRequestRequestedRunDurationArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var a3Dws = new RegionInstanceTemplate("a3Dws", RegionInstanceTemplateArgs.builder()
+ *             .name("a3-dws")
+ *             .region("us-central1")
+ *             .description("This template is used to create a mig instance that is compatible with DWS resize requests.")
+ *             .instanceDescription("A3 GPU")
+ *             .machineType("a3-highgpu-8g")
+ *             .canIpForward(false)
+ *             .scheduling(RegionInstanceTemplateSchedulingArgs.builder()
+ *                 .automaticRestart(false)
+ *                 .onHostMaintenance("TERMINATE")
+ *                 .build())
+ *             .disks(RegionInstanceTemplateDiskArgs.builder()
+ *                 .sourceImage("cos-cloud/cos-105-lts")
+ *                 .autoDelete(true)
+ *                 .boot(true)
+ *                 .diskType("pd-ssd")
+ *                 .diskSizeGb("960")
+ *                 .mode("READ_WRITE")
+ *                 .build())
+ *             .guestAccelerators(RegionInstanceTemplateGuestAcceleratorArgs.builder()
+ *                 .type("nvidia-h100-80gb")
+ *                 .count(8)
+ *                 .build())
+ *             .reservationAffinity(RegionInstanceTemplateReservationAffinityArgs.builder()
+ *                 .type("NO_RESERVATION")
+ *                 .build())
+ *             .shieldedInstanceConfig(RegionInstanceTemplateShieldedInstanceConfigArgs.builder()
+ *                 .enableVtpm(true)
+ *                 .enableIntegrityMonitoring(true)
+ *                 .build())
+ *             .networkInterfaces(RegionInstanceTemplateNetworkInterfaceArgs.builder()
+ *                 .network("default")
+ *                 .build())
+ *             .build());
+ * 
+ *         var a3DwsInstanceGroupManager = new InstanceGroupManager("a3DwsInstanceGroupManager", InstanceGroupManagerArgs.builder()
+ *             .name("a3-dws")
+ *             .baseInstanceName("a3-dws")
+ *             .zone("us-central1-a")
+ *             .versions(InstanceGroupManagerVersionArgs.builder()
+ *                 .instanceTemplate(a3Dws.selfLink())
+ *                 .build())
+ *             .instanceLifecyclePolicy(InstanceGroupManagerInstanceLifecyclePolicyArgs.builder()
+ *                 .defaultActionOnFailure("DO_NOTHING")
+ *                 .build())
+ *             .waitForInstances(false)
+ *             .build());
+ * 
+ *         var a3ResizeRequest = new ResizeRequest("a3ResizeRequest", ResizeRequestArgs.builder()
+ *             .name("a3-dws")
+ *             .instanceGroupManager(a3DwsInstanceGroupManager.name())
+ *             .zone("us-central1-a")
+ *             .description("Test resize request resource")
+ *             .resizeBy(2)
+ *             .requestedRunDuration(ResizeRequestRequestedRunDurationArgs.builder()
+ *                 .seconds(14400)
+ *                 .nanos(0)
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * ResizeRequest can be imported using any of these accepted formats: + * + * * `projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + * + * * `{{project}}/{{zone}}/{{instance_group_manager}}/{{name}}` + * + * * `{{zone}}/{{instance_group_manager}}/{{name}}` + * + * * `{{instance_group_manager}}/{{name}}` + * + * When using the `pulumi import` command, ResizeRequest can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{zone}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{instance_group_manager}}/{{name}} + * ``` + * + */ +@ResourceType(type="gcp:compute/resizeRequest:ResizeRequest") +public class ResizeRequest extends com.pulumi.resources.CustomResource { + /** + * The creation timestamp for this resize request in RFC3339 text format. + * + */ + @Export(name="creationTimestamp", refs={String.class}, tree="[0]") + private Output creationTimestamp; + + /** + * @return The creation timestamp for this resize request in RFC3339 text format. + * + */ + public Output creationTimestamp() { + return this.creationTimestamp; + } + /** + * An optional description of this resize-request. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + */ + @Export(name="instanceGroupManager", refs={String.class}, tree="[0]") + private Output instanceGroupManager; + + /** + * @return The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + */ + public Output instanceGroupManager() { + return this.instanceGroupManager; + } + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Output project() { + return this.project; + } + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + */ + @Export(name="requestedRunDuration", refs={ResizeRequestRequestedRunDuration.class}, tree="[0]") + private Output requestedRunDuration; + + /** + * @return Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + */ + public Output> requestedRunDuration() { + return Codegen.optional(this.requestedRunDuration); + } + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + @Export(name="resizeBy", refs={Integer.class}, tree="[0]") + private Output resizeBy; + + /** + * @return The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + public Output resizeBy() { + return this.resizeBy; + } + /** + * [Output only] Current state of the request. + * + */ + @Export(name="state", refs={String.class}, tree="[0]") + private Output state; + + /** + * @return [Output only] Current state of the request. + * + */ + public Output state() { + return this.state; + } + /** + * [Output only] Status of the request. + * Structure is documented below. + * + */ + @Export(name="statuses", refs={List.class,ResizeRequestStatus.class}, tree="[0,1]") + private Output> statuses; + + /** + * @return [Output only] Status of the request. + * Structure is documented below. + * + */ + public Output> statuses() { + return this.statuses; + } + /** + * Name of the compute zone scoping this request. Name should conform to RFC1035. + * + */ + @Export(name="zone", refs={String.class}, tree="[0]") + private Output zone; + + /** + * @return Name of the compute zone scoping this request. Name should conform to RFC1035. + * + */ + public Output zone() { + return this.zone; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public ResizeRequest(String name) { + this(name, ResizeRequestArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public ResizeRequest(String name, ResizeRequestArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public ResizeRequest(String name, ResizeRequestArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:compute/resizeRequest:ResizeRequest", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private ResizeRequest(String name, Output id, @Nullable ResizeRequestState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:compute/resizeRequest:ResizeRequest", name, state, makeResourceOptions(options, id)); + } + + private static ResizeRequestArgs makeArgs(ResizeRequestArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ResizeRequestArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static ResizeRequest get(String name, Output id, @Nullable ResizeRequestState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new ResizeRequest(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ResizeRequestArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ResizeRequestArgs.java new file mode 100644 index 0000000000..14e218c096 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ResizeRequestArgs.java @@ -0,0 +1,341 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.inputs.ResizeRequestRequestedRunDurationArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestArgs Empty = new ResizeRequestArgs(); + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + */ + @Import(name="instanceGroupManager", required=true) + private Output instanceGroupManager; + + /** + * @return The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + */ + public Output instanceGroupManager() { + return this.instanceGroupManager; + } + + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + */ + @Import(name="requestedRunDuration") + private @Nullable Output requestedRunDuration; + + /** + * @return Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + */ + public Optional> requestedRunDuration() { + return Optional.ofNullable(this.requestedRunDuration); + } + + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + @Import(name="resizeBy", required=true) + private Output resizeBy; + + /** + * @return The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + public Output resizeBy() { + return this.resizeBy; + } + + /** + * Name of the compute zone scoping this request. Name should conform to RFC1035. + * + */ + @Import(name="zone", required=true) + private Output zone; + + /** + * @return Name of the compute zone scoping this request. Name should conform to RFC1035. + * + */ + public Output zone() { + return this.zone; + } + + private ResizeRequestArgs() {} + + private ResizeRequestArgs(ResizeRequestArgs $) { + this.description = $.description; + this.instanceGroupManager = $.instanceGroupManager; + this.name = $.name; + this.project = $.project; + this.requestedRunDuration = $.requestedRunDuration; + this.resizeBy = $.resizeBy; + this.zone = $.zone; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestArgs $; + + public Builder() { + $ = new ResizeRequestArgs(); + } + + public Builder(ResizeRequestArgs defaults) { + $ = new ResizeRequestArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param instanceGroupManager The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(Output instanceGroupManager) { + $.instanceGroupManager = instanceGroupManager; + return this; + } + + /** + * @param instanceGroupManager The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(String instanceGroupManager) { + return instanceGroupManager(Output.of(instanceGroupManager)); + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(@Nullable Output requestedRunDuration) { + $.requestedRunDuration = requestedRunDuration; + return this; + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(ResizeRequestRequestedRunDurationArgs requestedRunDuration) { + return requestedRunDuration(Output.of(requestedRunDuration)); + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(Output resizeBy) { + $.resizeBy = resizeBy; + return this; + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(Integer resizeBy) { + return resizeBy(Output.of(resizeBy)); + } + + /** + * @param zone Name of the compute zone scoping this request. Name should conform to RFC1035. + * + * @return builder + * + */ + public Builder zone(Output zone) { + $.zone = zone; + return this; + } + + /** + * @param zone Name of the compute zone scoping this request. Name should conform to RFC1035. + * + * @return builder + * + */ + public Builder zone(String zone) { + return zone(Output.of(zone)); + } + + public ResizeRequestArgs build() { + if ($.instanceGroupManager == null) { + throw new MissingRequiredPropertyException("ResizeRequestArgs", "instanceGroupManager"); + } + if ($.resizeBy == null) { + throw new MissingRequiredPropertyException("ResizeRequestArgs", "resizeBy"); + } + if ($.zone == null) { + throw new MissingRequiredPropertyException("ResizeRequestArgs", "zone"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ResourcePolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ResourcePolicy.java index d3648986c8..cd70632dba 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ResourcePolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ResourcePolicy.java @@ -566,13 +566,20 @@ public ResourcePolicy(String name, @Nullable ResourcePolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ResourcePolicy(String name, @Nullable ResourcePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/resourcePolicy:ResourcePolicy", name, args == null ? ResourcePolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/resourcePolicy:ResourcePolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ResourcePolicy(String name, Output id, @Nullable ResourcePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/resourcePolicy:ResourcePolicy", name, state, makeResourceOptions(options, id)); } + private static ResourcePolicyArgs makeArgs(@Nullable ResourcePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ResourcePolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Route.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Route.java index 724e9fda56..f1b18618fa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Route.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Route.java @@ -641,13 +641,20 @@ public Route(String name, RouteArgs args) { * @param options A bag of options that control this resource's behavior. */ public Route(String name, RouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/route:Route", name, args == null ? RouteArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/route:Route", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Route(String name, Output id, @Nullable RouteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/route:Route", name, state, makeResourceOptions(options, id)); } + private static RouteArgs makeArgs(RouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RouteArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Router.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Router.java index d8e84de60d..d4a24b2a4b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Router.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Router.java @@ -332,13 +332,20 @@ public Router(String name, RouterArgs args) { * @param options A bag of options that control this resource's behavior. */ public Router(String name, RouterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/router:Router", name, args == null ? RouterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/router:Router", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Router(String name, Output id, @Nullable RouterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/router:Router", name, state, makeResourceOptions(options, id)); } + private static RouterArgs makeArgs(RouterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RouterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterInterface.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterInterface.java index a68584e80a..49cb21d526 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterInterface.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterInterface.java @@ -289,13 +289,20 @@ public RouterInterface(String name, RouterInterfaceArgs args) { * @param options A bag of options that control this resource's behavior. */ public RouterInterface(String name, RouterInterfaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/routerInterface:RouterInterface", name, args == null ? RouterInterfaceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/routerInterface:RouterInterface", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RouterInterface(String name, Output id, @Nullable RouterInterfaceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/routerInterface:RouterInterface", name, state, makeResourceOptions(options, id)); } + private static RouterInterfaceArgs makeArgs(RouterInterfaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RouterInterfaceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterNat.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterNat.java index 96c92fe73a..699c54c3a1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterNat.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterNat.java @@ -847,13 +847,20 @@ public RouterNat(String name, RouterNatArgs args) { * @param options A bag of options that control this resource's behavior. */ public RouterNat(String name, RouterNatArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/routerNat:RouterNat", name, args == null ? RouterNatArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/routerNat:RouterNat", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RouterNat(String name, Output id, @Nullable RouterNatState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/routerNat:RouterNat", name, state, makeResourceOptions(options, id)); } + private static RouterNatArgs makeArgs(RouterNatArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RouterNatArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java index 350f791f9e..7759b23c75 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeer.java @@ -12,6 +12,7 @@ import com.pulumi.gcp.compute.inputs.RouterPeerState; import com.pulumi.gcp.compute.outputs.RouterPeerAdvertisedIpRange; import com.pulumi.gcp.compute.outputs.RouterPeerBfd; +import com.pulumi.gcp.compute.outputs.RouterPeerCustomLearnedIpRange; import com.pulumi.gcp.compute.outputs.RouterPeerMd5AuthenticationKey; import java.lang.Boolean; import java.lang.Integer; @@ -361,6 +362,183 @@ * * <!--End PulumiCodeChooser --> * + * ### Router Peer Export And Import Policies + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.Subnetwork;
+ * import com.pulumi.gcp.compute.SubnetworkArgs;
+ * import com.pulumi.gcp.compute.Address;
+ * import com.pulumi.gcp.compute.AddressArgs;
+ * import com.pulumi.gcp.compute.HaVpnGateway;
+ * import com.pulumi.gcp.compute.HaVpnGatewayArgs;
+ * import com.pulumi.gcp.compute.ExternalVpnGateway;
+ * import com.pulumi.gcp.compute.ExternalVpnGatewayArgs;
+ * import com.pulumi.gcp.compute.inputs.ExternalVpnGatewayInterfaceArgs;
+ * import com.pulumi.gcp.compute.Router;
+ * import com.pulumi.gcp.compute.RouterArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterBgpArgs;
+ * import com.pulumi.gcp.compute.VPNTunnel;
+ * import com.pulumi.gcp.compute.VPNTunnelArgs;
+ * import com.pulumi.gcp.compute.RouterInterface;
+ * import com.pulumi.gcp.compute.RouterInterfaceArgs;
+ * import com.pulumi.gcp.compute.RouterRoutePolicy;
+ * import com.pulumi.gcp.compute.RouterRoutePolicyArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermMatchArgs;
+ * import com.pulumi.gcp.compute.RouterPeer;
+ * import com.pulumi.gcp.compute.RouterPeerArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterPeerMd5AuthenticationKeyArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var network = new Network("network", NetworkArgs.builder()
+ *             .name("my-router-net")
+ *             .autoCreateSubnetworks(false)
+ *             .build());
+ * 
+ *         var subnetwork = new Subnetwork("subnetwork", SubnetworkArgs.builder()
+ *             .name("my-router-subnet")
+ *             .network(network.selfLink())
+ *             .ipCidrRange("10.0.0.0/16")
+ *             .region("us-central1")
+ *             .build());
+ * 
+ *         var address = new Address("address", AddressArgs.builder()
+ *             .name("my-router")
+ *             .region(subnetwork.region())
+ *             .build());
+ * 
+ *         var vpnGateway = new HaVpnGateway("vpnGateway", HaVpnGatewayArgs.builder()
+ *             .name("my-router-gateway")
+ *             .network(network.selfLink())
+ *             .region(subnetwork.region())
+ *             .build());
+ * 
+ *         var externalGateway = new ExternalVpnGateway("externalGateway", ExternalVpnGatewayArgs.builder()
+ *             .name("my-router-external-gateway")
+ *             .redundancyType("SINGLE_IP_INTERNALLY_REDUNDANT")
+ *             .description("An externally managed VPN gateway")
+ *             .interfaces(ExternalVpnGatewayInterfaceArgs.builder()
+ *                 .id(0)
+ *                 .ipAddress("8.8.8.8")
+ *                 .build())
+ *             .build());
+ * 
+ *         var router = new Router("router", RouterArgs.builder()
+ *             .name("my-router")
+ *             .region(subnetwork.region())
+ *             .network(network.selfLink())
+ *             .bgp(RouterBgpArgs.builder()
+ *                 .asn(64514)
+ *                 .build())
+ *             .build());
+ * 
+ *         var vpnTunnel = new VPNTunnel("vpnTunnel", VPNTunnelArgs.builder()
+ *             .name("my-router")
+ *             .region(subnetwork.region())
+ *             .vpnGateway(vpnGateway.id())
+ *             .peerExternalGateway(externalGateway.id())
+ *             .peerExternalGatewayInterface(0)
+ *             .sharedSecret("unguessable")
+ *             .router(router.name())
+ *             .vpnGatewayInterface(0)
+ *             .build());
+ * 
+ *         var routerInterface = new RouterInterface("routerInterface", RouterInterfaceArgs.builder()
+ *             .name("my-router")
+ *             .router(router.name())
+ *             .region(router.region())
+ *             .vpnTunnel(vpnTunnel.name())
+ *             .build());
+ * 
+ *         var rp_export = new RouterRoutePolicy("rp-export", RouterRoutePolicyArgs.builder()
+ *             .name("my-router-rp-export")
+ *             .router(router.name())
+ *             .region(router.region())
+ *             .type("ROUTE_POLICY_TYPE_EXPORT")
+ *             .terms(RouterRoutePolicyTermArgs.builder()
+ *                 .priority(2)
+ *                 .match(RouterRoutePolicyTermMatchArgs.builder()
+ *                     .expression("destination == '10.0.0.0/12'")
+ *                     .title("export_expression")
+ *                     .description("acceptance expression for export")
+ *                     .build())
+ *                 .actions(RouterRoutePolicyTermActionArgs.builder()
+ *                     .expression("accept()")
+ *                     .build())
+ *                 .build())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(routerInterface)
+ *                 .build());
+ * 
+ *         var rp_import = new RouterRoutePolicy("rp-import", RouterRoutePolicyArgs.builder()
+ *             .name("my-router-rp-import")
+ *             .router(router.name())
+ *             .region(router.region())
+ *             .type("ROUTE_POLICY_TYPE_IMPORT")
+ *             .terms(RouterRoutePolicyTermArgs.builder()
+ *                 .priority(1)
+ *                 .match(RouterRoutePolicyTermMatchArgs.builder()
+ *                     .expression("destination == '10.0.0.0/12'")
+ *                     .title("import_expression")
+ *                     .description("acceptance expression for import")
+ *                     .build())
+ *                 .actions(RouterRoutePolicyTermActionArgs.builder()
+ *                     .expression("accept()")
+ *                     .build())
+ *                 .build())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     routerInterface,
+ *                     rp_export)
+ *                 .build());
+ * 
+ *         var routerPeer = new RouterPeer("routerPeer", RouterPeerArgs.builder()
+ *             .name("my-router-peer")
+ *             .router(router.name())
+ *             .region(router.region())
+ *             .peerAsn(65515)
+ *             .advertisedRoutePriority(100)
+ *             .interface_(routerInterface.name())
+ *             .md5AuthenticationKey(RouterPeerMd5AuthenticationKeyArgs.builder()
+ *                 .name("my-router-peer-key")
+ *                 .key("my-router-peer-key-value")
+ *                 .build())
+ *             .importPolicies(rp_import.name())
+ *             .exportPolicies(rp_export.name())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     rp_export,
+ *                     rp_import,
+ *                     routerInterface)
+ *                 .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * * ## Import * * RouterBgpPeer can be imported using any of these accepted formats: @@ -504,6 +682,40 @@ public Output> advertisedRoutePriority() { public Output bfd() { return this.bfd; } + /** + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + */ + @Export(name="customLearnedIpRanges", refs={List.class,RouterPeerCustomLearnedIpRange.class}, tree="[0,1]") + private Output> customLearnedIpRanges; + + /** + * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + */ + public Output>> customLearnedIpRanges() { + return Codegen.optional(this.customLearnedIpRanges); + } + /** + * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + */ + @Export(name="customLearnedRoutePriority", refs={Integer.class}, tree="[0]") + private Output customLearnedRoutePriority; + + /** + * @return The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + */ + public Output> customLearnedRoutePriority() { + return Codegen.optional(this.customLearnedRoutePriority); + } /** * The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -552,6 +764,38 @@ public Output enableIpv4() { public Output> enableIpv6() { return Codegen.optional(this.enableIpv6); } + /** + * routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + */ + @Export(name="exportPolicies", refs={List.class,String.class}, tree="[0,1]") + private Output> exportPolicies; + + /** + * @return routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + */ + public Output>> exportPolicies() { + return Codegen.optional(this.exportPolicies); + } + /** + * routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + */ + @Export(name="importPolicies", refs={List.class,String.class}, tree="[0,1]") + private Output> importPolicies; + + /** + * @return routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + */ + public Output>> importPolicies() { + return Codegen.optional(this.importPolicies); + } /** * Name of the interface the BGP peer is associated with. * @@ -845,13 +1089,20 @@ public RouterPeer(String name, RouterPeerArgs args) { * @param options A bag of options that control this resource's behavior. */ public RouterPeer(String name, RouterPeerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/routerPeer:RouterPeer", name, args == null ? RouterPeerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/routerPeer:RouterPeer", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RouterPeer(String name, Output id, @Nullable RouterPeerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/routerPeer:RouterPeer", name, state, makeResourceOptions(options, id)); } + private static RouterPeerArgs makeArgs(RouterPeerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RouterPeerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java index b62b451e6e..624b83b423 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterPeerArgs.java @@ -8,6 +8,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.gcp.compute.inputs.RouterPeerAdvertisedIpRangeArgs; import com.pulumi.gcp.compute.inputs.RouterPeerBfdArgs; +import com.pulumi.gcp.compute.inputs.RouterPeerCustomLearnedIpRangeArgs; import com.pulumi.gcp.compute.inputs.RouterPeerMd5AuthenticationKeyArgs; import java.lang.Boolean; import java.lang.Integer; @@ -137,6 +138,42 @@ public Optional> bfd() { return Optional.ofNullable(this.bfd); } + /** + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + */ + @Import(name="customLearnedIpRanges") + private @Nullable Output> customLearnedIpRanges; + + /** + * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + */ + public Optional>> customLearnedIpRanges() { + return Optional.ofNullable(this.customLearnedIpRanges); + } + + /** + * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + */ + @Import(name="customLearnedRoutePriority") + private @Nullable Output customLearnedRoutePriority; + + /** + * @return The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + */ + public Optional> customLearnedRoutePriority() { + return Optional.ofNullable(this.customLearnedRoutePriority); + } + /** * The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -188,6 +225,40 @@ public Optional> enableIpv6() { return Optional.ofNullable(this.enableIpv6); } + /** + * routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + */ + @Import(name="exportPolicies") + private @Nullable Output> exportPolicies; + + /** + * @return routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + */ + public Optional>> exportPolicies() { + return Optional.ofNullable(this.exportPolicies); + } + + /** + * routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + */ + @Import(name="importPolicies") + private @Nullable Output> importPolicies; + + /** + * @return routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + */ + public Optional>> importPolicies() { + return Optional.ofNullable(this.importPolicies); + } + /** * Name of the interface the BGP peer is associated with. * @@ -450,9 +521,13 @@ private RouterPeerArgs(RouterPeerArgs $) { this.advertisedIpRanges = $.advertisedIpRanges; this.advertisedRoutePriority = $.advertisedRoutePriority; this.bfd = $.bfd; + this.customLearnedIpRanges = $.customLearnedIpRanges; + this.customLearnedRoutePriority = $.customLearnedRoutePriority; this.enable = $.enable; this.enableIpv4 = $.enableIpv4; this.enableIpv6 = $.enableIpv6; + this.exportPolicies = $.exportPolicies; + this.importPolicies = $.importPolicies; this.interface_ = $.interface_; this.ipAddress = $.ipAddress; this.ipv4NexthopAddress = $.ipv4NexthopAddress; @@ -666,6 +741,65 @@ public Builder bfd(RouterPeerBfdArgs bfd) { return bfd(Output.of(bfd)); } + /** + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + * @return builder + * + */ + public Builder customLearnedIpRanges(@Nullable Output> customLearnedIpRanges) { + $.customLearnedIpRanges = customLearnedIpRanges; + return this; + } + + /** + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + * @return builder + * + */ + public Builder customLearnedIpRanges(List customLearnedIpRanges) { + return customLearnedIpRanges(Output.of(customLearnedIpRanges)); + } + + /** + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + * @return builder + * + */ + public Builder customLearnedIpRanges(RouterPeerCustomLearnedIpRangeArgs... customLearnedIpRanges) { + return customLearnedIpRanges(List.of(customLearnedIpRanges)); + } + + /** + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + * @return builder + * + */ + public Builder customLearnedRoutePriority(@Nullable Output customLearnedRoutePriority) { + $.customLearnedRoutePriority = customLearnedRoutePriority; + return this; + } + + /** + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + * @return builder + * + */ + public Builder customLearnedRoutePriority(Integer customLearnedRoutePriority) { + return customLearnedRoutePriority(Output.of(customLearnedRoutePriority)); + } + /** * @param enable The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -735,6 +869,74 @@ public Builder enableIpv6(Boolean enableIpv6) { return enableIpv6(Output.of(enableIpv6)); } + /** + * @param exportPolicies routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + * @return builder + * + */ + public Builder exportPolicies(@Nullable Output> exportPolicies) { + $.exportPolicies = exportPolicies; + return this; + } + + /** + * @param exportPolicies routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + * @return builder + * + */ + public Builder exportPolicies(List exportPolicies) { + return exportPolicies(Output.of(exportPolicies)); + } + + /** + * @param exportPolicies routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + * @return builder + * + */ + public Builder exportPolicies(String... exportPolicies) { + return exportPolicies(List.of(exportPolicies)); + } + + /** + * @param importPolicies routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + * @return builder + * + */ + public Builder importPolicies(@Nullable Output> importPolicies) { + $.importPolicies = importPolicies; + return this; + } + + /** + * @param importPolicies routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + * @return builder + * + */ + public Builder importPolicies(List importPolicies) { + return importPolicies(Output.of(importPolicies)); + } + + /** + * @param importPolicies routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + * @return builder + * + */ + public Builder importPolicies(String... importPolicies) { + return importPolicies(List.of(importPolicies)); + } + /** * @param interface_ Name of the interface the BGP peer is associated with. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterRoutePolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterRoutePolicy.java new file mode 100644 index 0000000000..be7037f286 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterRoutePolicy.java @@ -0,0 +1,352 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.compute.RouterRoutePolicyArgs; +import com.pulumi.gcp.compute.inputs.RouterRoutePolicyState; +import com.pulumi.gcp.compute.outputs.RouterRoutePolicyTerm; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * ## Example Usage + * + * ### Router Route Policy Export + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.Subnetwork;
+ * import com.pulumi.gcp.compute.SubnetworkArgs;
+ * import com.pulumi.gcp.compute.Router;
+ * import com.pulumi.gcp.compute.RouterArgs;
+ * import com.pulumi.gcp.compute.RouterRoutePolicy;
+ * import com.pulumi.gcp.compute.RouterRoutePolicyArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermMatchArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var net = new Network("net", NetworkArgs.builder()
+ *             .name("my-network")
+ *             .autoCreateSubnetworks(false)
+ *             .build());
+ * 
+ *         var subnet = new Subnetwork("subnet", SubnetworkArgs.builder()
+ *             .name("my-subnetwork")
+ *             .network(net.id())
+ *             .ipCidrRange("10.0.0.0/16")
+ *             .region("us-central1")
+ *             .build());
+ * 
+ *         var router = new Router("router", RouterArgs.builder()
+ *             .name("my-router")
+ *             .region(subnet.region())
+ *             .network(net.id())
+ *             .build());
+ * 
+ *         var rp_export = new RouterRoutePolicy("rp-export", RouterRoutePolicyArgs.builder()
+ *             .router(router.name())
+ *             .region(router.region())
+ *             .name("my-rp1")
+ *             .type("ROUTE_POLICY_TYPE_EXPORT")
+ *             .terms(RouterRoutePolicyTermArgs.builder()
+ *                 .priority(1)
+ *                 .match(RouterRoutePolicyTermMatchArgs.builder()
+ *                     .expression("destination == '10.0.0.0/12'")
+ *                     .build())
+ *                 .actions(RouterRoutePolicyTermActionArgs.builder()
+ *                     .expression("accept()")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * ### Router Route Policy Import + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.Subnetwork;
+ * import com.pulumi.gcp.compute.SubnetworkArgs;
+ * import com.pulumi.gcp.compute.Router;
+ * import com.pulumi.gcp.compute.RouterArgs;
+ * import com.pulumi.gcp.compute.RouterRoutePolicy;
+ * import com.pulumi.gcp.compute.RouterRoutePolicyArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs;
+ * import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermMatchArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var net = new Network("net", NetworkArgs.builder()
+ *             .name("my-network")
+ *             .autoCreateSubnetworks(false)
+ *             .build());
+ * 
+ *         var subnet = new Subnetwork("subnet", SubnetworkArgs.builder()
+ *             .name("my-subnetwork")
+ *             .network(net.id())
+ *             .ipCidrRange("10.0.0.0/16")
+ *             .region("us-central1")
+ *             .build());
+ * 
+ *         var router = new Router("router", RouterArgs.builder()
+ *             .name("my-router")
+ *             .region(subnet.region())
+ *             .network(net.id())
+ *             .build());
+ * 
+ *         var rp_import = new RouterRoutePolicy("rp-import", RouterRoutePolicyArgs.builder()
+ *             .name("my-rp2")
+ *             .router(router.name())
+ *             .region(router.region())
+ *             .type("ROUTE_POLICY_TYPE_IMPORT")
+ *             .terms(RouterRoutePolicyTermArgs.builder()
+ *                 .priority(2)
+ *                 .match(RouterRoutePolicyTermMatchArgs.builder()
+ *                     .expression("destination == '10.0.0.0/12'")
+ *                     .build())
+ *                 .actions(RouterRoutePolicyTermActionArgs.builder()
+ *                     .expression("accept()")
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * RouterRoutePolicy can be imported using any of these accepted formats: + * + * * `{{project}}/{{region}}/{{router}}/routePolicies/{{name}}` + * + * * `{{project}}/{{region}}/{{router}}/{{name}}` + * + * * `{{region}}/{{router}}/{{name}}` + * + * * `{{router}}/{{name}}` + * + * When using the `pulumi import` command, RouterRoutePolicy can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/routePolicies/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{region}}/{{router}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{router}}/{{name}} + * ``` + * + */ +@ResourceType(type="gcp:compute/routerRoutePolicy:RouterRoutePolicy") +public class RouterRoutePolicy extends com.pulumi.resources.CustomResource { + /** + * The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + * + */ + @Export(name="fingerprint", refs={String.class}, tree="[0]") + private Output fingerprint; + + /** + * @return The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + * + */ + public Output fingerprint() { + return this.fingerprint; + } + /** + * Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + */ + public Output name() { + return this.name; + } + @Export(name="project", refs={String.class}, tree="[0]") + private Output project; + + public Output project() { + return this.project; + } + /** + * Region where the router and NAT reside. + * + */ + @Export(name="region", refs={String.class}, tree="[0]") + private Output region; + + /** + * @return Region where the router and NAT reside. + * + */ + public Output region() { + return this.region; + } + /** + * The name of the Cloud Router in which this route policy will be configured. + * + */ + @Export(name="router", refs={String.class}, tree="[0]") + private Output router; + + /** + * @return The name of the Cloud Router in which this route policy will be configured. + * + */ + public Output router() { + return this.router; + } + /** + * List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + */ + @Export(name="terms", refs={List.class,RouterRoutePolicyTerm.class}, tree="[0,1]") + private Output> terms; + + /** + * @return List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + */ + public Output> terms() { + return this.terms; + } + /** + * This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + */ + @Export(name="type", refs={String.class}, tree="[0]") + private Output type; + + /** + * @return This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + */ + public Output> type() { + return Codegen.optional(this.type); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public RouterRoutePolicy(String name) { + this(name, RouterRoutePolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public RouterRoutePolicy(String name, RouterRoutePolicyArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public RouterRoutePolicy(String name, RouterRoutePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:compute/routerRoutePolicy:RouterRoutePolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private RouterRoutePolicy(String name, Output id, @Nullable RouterRoutePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:compute/routerRoutePolicy:RouterRoutePolicy", name, state, makeResourceOptions(options, id)); + } + + private static RouterRoutePolicyArgs makeArgs(RouterRoutePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RouterRoutePolicyArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static RouterRoutePolicy get(String name, Output id, @Nullable RouterRoutePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new RouterRoutePolicy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterRoutePolicyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterRoutePolicyArgs.java new file mode 100644 index 0000000000..1e065ae19d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/RouterRoutePolicyArgs.java @@ -0,0 +1,276 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RouterRoutePolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final RouterRoutePolicyArgs Empty = new RouterRoutePolicyArgs(); + + /** + * Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + @Import(name="project") + private @Nullable Output project; + + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * Region where the router and NAT reside. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where the router and NAT reside. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * The name of the Cloud Router in which this route policy will be configured. + * + */ + @Import(name="router", required=true) + private Output router; + + /** + * @return The name of the Cloud Router in which this route policy will be configured. + * + */ + public Output router() { + return this.router; + } + + /** + * List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + */ + @Import(name="terms", required=true) + private Output> terms; + + /** + * @return List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + */ + public Output> terms() { + return this.terms; + } + + /** + * This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + */ + @Import(name="type") + private @Nullable Output type; + + /** + * @return This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + */ + public Optional> type() { + return Optional.ofNullable(this.type); + } + + private RouterRoutePolicyArgs() {} + + private RouterRoutePolicyArgs(RouterRoutePolicyArgs $) { + this.name = $.name; + this.project = $.project; + this.region = $.region; + this.router = $.router; + this.terms = $.terms; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RouterRoutePolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RouterRoutePolicyArgs $; + + public Builder() { + $ = new RouterRoutePolicyArgs(); + } + + public Builder(RouterRoutePolicyArgs defaults) { + $ = new RouterRoutePolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param region Region where the router and NAT reside. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where the router and NAT reside. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param router The name of the Cloud Router in which this route policy will be configured. + * + * @return builder + * + */ + public Builder router(Output router) { + $.router = router; + return this; + } + + /** + * @param router The name of the Cloud Router in which this route policy will be configured. + * + * @return builder + * + */ + public Builder router(String router) { + return router(Output.of(router)); + } + + /** + * @param terms List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + * @return builder + * + */ + public Builder terms(Output> terms) { + $.terms = terms; + return this; + } + + /** + * @param terms List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + * @return builder + * + */ + public Builder terms(List terms) { + return terms(Output.of(terms)); + } + + /** + * @param terms List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + * @return builder + * + */ + public Builder terms(RouterRoutePolicyTermArgs... terms) { + return terms(List.of(terms)); + } + + /** + * @param type This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + * @return builder + * + */ + public Builder type(@Nullable Output type) { + $.type = type; + return this; + } + + /** + * @param type This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public RouterRoutePolicyArgs build() { + if ($.router == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyArgs", "router"); + } + if ($.terms == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyArgs", "terms"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLCertificate.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLCertificate.java index 6a14ff97bb..d4b39b2876 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLCertificate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLCertificate.java @@ -249,13 +249,20 @@ public SSLCertificate(String name, SSLCertificateArgs args) { * @param options A bag of options that control this resource's behavior. */ public SSLCertificate(String name, SSLCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/sSLCertificate:SSLCertificate", name, args == null ? SSLCertificateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/sSLCertificate:SSLCertificate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SSLCertificate(String name, Output id, @Nullable SSLCertificateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/sSLCertificate:SSLCertificate", name, state, makeResourceOptions(options, id)); } + private static SSLCertificateArgs makeArgs(SSLCertificateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SSLCertificateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLPolicy.java index 93070ec7ed..b6b7b0768b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SSLPolicy.java @@ -326,13 +326,20 @@ public SSLPolicy(String name, @Nullable SSLPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public SSLPolicy(String name, @Nullable SSLPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/sSLPolicy:SSLPolicy", name, args == null ? SSLPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/sSLPolicy:SSLPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SSLPolicy(String name, Output id, @Nullable SSLPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/sSLPolicy:SSLPolicy", name, state, makeResourceOptions(options, id)); } + private static SSLPolicyArgs makeArgs(@Nullable SSLPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SSLPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicy.java index d2c66ee74e..f9699de573 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicy.java @@ -500,13 +500,20 @@ public SecurityPolicy(String name, @Nullable SecurityPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public SecurityPolicy(String name, @Nullable SecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/securityPolicy:SecurityPolicy", name, args == null ? SecurityPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/securityPolicy:SecurityPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SecurityPolicy(String name, Output id, @Nullable SecurityPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/securityPolicy:SecurityPolicy", name, state, makeResourceOptions(options, id)); } + private static SecurityPolicyArgs makeArgs(@Nullable SecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SecurityPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicyRule.java index 98261fa9e2..dd91ce77e2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityPolicyRule.java @@ -433,13 +433,20 @@ public SecurityPolicyRule(String name, SecurityPolicyRuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public SecurityPolicyRule(String name, SecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/securityPolicyRule:SecurityPolicyRule", name, args == null ? SecurityPolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/securityPolicyRule:SecurityPolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SecurityPolicyRule(String name, Output id, @Nullable SecurityPolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/securityPolicyRule:SecurityPolicyRule", name, state, makeResourceOptions(options, id)); } + private static SecurityPolicyRuleArgs makeArgs(SecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SecurityPolicyRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java index 462cc31caf..ede86e6857 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SecurityScanConfig.java @@ -304,13 +304,20 @@ public SecurityScanConfig(String name, SecurityScanConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public SecurityScanConfig(String name, SecurityScanConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/securityScanConfig:SecurityScanConfig", name, args == null ? SecurityScanConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/securityScanConfig:SecurityScanConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SecurityScanConfig(String name, Output id, @Nullable SecurityScanConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/securityScanConfig:SecurityScanConfig", name, state, makeResourceOptions(options, id)); } + private static SecurityScanConfigArgs makeArgs(SecurityScanConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SecurityScanConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachment.java index 02f5b59298..e504f557d8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachment.java @@ -780,16 +780,14 @@ public Output selfLink() { return this.selfLink; } /** - * The URL of a forwarding rule that represents the service identified by - * this service attachment. + * The URL of a service serving the endpoint identified by this service attachment. * */ @Export(name="targetService", refs={String.class}, tree="[0]") private Output targetService; /** - * @return The URL of a forwarding rule that represents the service identified by - * this service attachment. + * @return The URL of a service serving the endpoint identified by this service attachment. * */ public Output targetService() { @@ -818,13 +816,20 @@ public ServiceAttachment(String name, ServiceAttachmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceAttachment(String name, ServiceAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/serviceAttachment:ServiceAttachment", name, args == null ? ServiceAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/serviceAttachment:ServiceAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceAttachment(String name, Output id, @Nullable ServiceAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/serviceAttachment:ServiceAttachment", name, state, makeResourceOptions(options, id)); } + private static ServiceAttachmentArgs makeArgs(ServiceAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachmentArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachmentArgs.java index 181d4be746..ff57ca552d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachmentArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/ServiceAttachmentArgs.java @@ -223,16 +223,14 @@ public Optional> region() { } /** - * The URL of a forwarding rule that represents the service identified by - * this service attachment. + * The URL of a service serving the endpoint identified by this service attachment. * */ @Import(name="targetService", required=true) private Output targetService; /** - * @return The URL of a forwarding rule that represents the service identified by - * this service attachment. + * @return The URL of a service serving the endpoint identified by this service attachment. * */ public Output targetService() { @@ -590,8 +588,7 @@ public Builder region(String region) { } /** - * @param targetService The URL of a forwarding rule that represents the service identified by - * this service attachment. + * @param targetService The URL of a service serving the endpoint identified by this service attachment. * * @return builder * @@ -602,8 +599,7 @@ public Builder targetService(Output targetService) { } /** - * @param targetService The URL of a forwarding rule that represents the service identified by - * this service attachment. + * @param targetService The URL of a service serving the endpoint identified by this service attachment. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCHostProject.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCHostProject.java index d209a03042..662afcb4b9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCHostProject.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCHostProject.java @@ -124,13 +124,20 @@ public SharedVPCHostProject(String name, SharedVPCHostProjectArgs args) { * @param options A bag of options that control this resource's behavior. */ public SharedVPCHostProject(String name, SharedVPCHostProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/sharedVPCHostProject:SharedVPCHostProject", name, args == null ? SharedVPCHostProjectArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/sharedVPCHostProject:SharedVPCHostProject", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SharedVPCHostProject(String name, Output id, @Nullable SharedVPCHostProjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/sharedVPCHostProject:SharedVPCHostProject", name, state, makeResourceOptions(options, id)); } + private static SharedVPCHostProjectArgs makeArgs(SharedVPCHostProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SharedVPCHostProjectArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCServiceProject.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCServiceProject.java index 5016ae3ddb..f706c0fd52 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCServiceProject.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SharedVPCServiceProject.java @@ -145,13 +145,20 @@ public SharedVPCServiceProject(String name, SharedVPCServiceProjectArgs args) { * @param options A bag of options that control this resource's behavior. */ public SharedVPCServiceProject(String name, SharedVPCServiceProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/sharedVPCServiceProject:SharedVPCServiceProject", name, args == null ? SharedVPCServiceProjectArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/sharedVPCServiceProject:SharedVPCServiceProject", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SharedVPCServiceProject(String name, Output id, @Nullable SharedVPCServiceProjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/sharedVPCServiceProject:SharedVPCServiceProject", name, state, makeResourceOptions(options, id)); } + private static SharedVPCServiceProjectArgs makeArgs(SharedVPCServiceProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SharedVPCServiceProjectArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Snapshot.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Snapshot.java index 0e40caf9ec..9f4de79069 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Snapshot.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Snapshot.java @@ -541,13 +541,20 @@ public Snapshot(String name, SnapshotArgs args) { * @param options A bag of options that control this resource's behavior. */ public Snapshot(String name, SnapshotArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/snapshot:Snapshot", name, args == null ? SnapshotArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/snapshot:Snapshot", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Snapshot(String name, Output id, @Nullable SnapshotState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/snapshot:Snapshot", name, state, makeResourceOptions(options, id)); } + private static SnapshotArgs makeArgs(SnapshotArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SnapshotArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamBinding.java index 2c2099a10a..e67c1f6f18 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamBinding.java @@ -439,13 +439,20 @@ public SnapshotIamBinding(String name, SnapshotIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public SnapshotIamBinding(String name, SnapshotIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/snapshotIamBinding:SnapshotIamBinding", name, args == null ? SnapshotIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/snapshotIamBinding:SnapshotIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SnapshotIamBinding(String name, Output id, @Nullable SnapshotIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/snapshotIamBinding:SnapshotIamBinding", name, state, makeResourceOptions(options, id)); } + private static SnapshotIamBindingArgs makeArgs(SnapshotIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SnapshotIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamMember.java index 0c22983aaa..20afaa162a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamMember.java @@ -438,13 +438,20 @@ public SnapshotIamMember(String name, SnapshotIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public SnapshotIamMember(String name, SnapshotIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/snapshotIamMember:SnapshotIamMember", name, args == null ? SnapshotIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/snapshotIamMember:SnapshotIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SnapshotIamMember(String name, Output id, @Nullable SnapshotIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/snapshotIamMember:SnapshotIamMember", name, state, makeResourceOptions(options, id)); } + private static SnapshotIamMemberArgs makeArgs(SnapshotIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SnapshotIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamPolicy.java index 770144b896..a83c0b0e17 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SnapshotIamPolicy.java @@ -394,13 +394,20 @@ public SnapshotIamPolicy(String name, SnapshotIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public SnapshotIamPolicy(String name, SnapshotIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/snapshotIamPolicy:SnapshotIamPolicy", name, args == null ? SnapshotIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/snapshotIamPolicy:SnapshotIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SnapshotIamPolicy(String name, Output id, @Nullable SnapshotIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/snapshotIamPolicy:SnapshotIamPolicy", name, state, makeResourceOptions(options, id)); } + private static SnapshotIamPolicyArgs makeArgs(SnapshotIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SnapshotIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/Subnetwork.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/Subnetwork.java index 696343260e..cc102cd631 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/Subnetwork.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/Subnetwork.java @@ -836,13 +836,20 @@ public Subnetwork(String name, SubnetworkArgs args) { * @param options A bag of options that control this resource's behavior. */ public Subnetwork(String name, SubnetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/subnetwork:Subnetwork", name, args == null ? SubnetworkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/subnetwork:Subnetwork", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Subnetwork(String name, Output id, @Nullable SubnetworkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/subnetwork:Subnetwork", name, state, makeResourceOptions(options, id)); } + private static SubnetworkArgs makeArgs(SubnetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SubnetworkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMBinding.java index bb6e560187..0e6b0e656b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMBinding.java @@ -759,13 +759,20 @@ public SubnetworkIAMBinding(String name, SubnetworkIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public SubnetworkIAMBinding(String name, SubnetworkIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/subnetworkIAMBinding:SubnetworkIAMBinding", name, args == null ? SubnetworkIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/subnetworkIAMBinding:SubnetworkIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SubnetworkIAMBinding(String name, Output id, @Nullable SubnetworkIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/subnetworkIAMBinding:SubnetworkIAMBinding", name, state, makeResourceOptions(options, id)); } + private static SubnetworkIAMBindingArgs makeArgs(SubnetworkIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SubnetworkIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMMember.java index 022a263b2d..b74a2d2548 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMMember.java @@ -758,13 +758,20 @@ public SubnetworkIAMMember(String name, SubnetworkIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public SubnetworkIAMMember(String name, SubnetworkIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/subnetworkIAMMember:SubnetworkIAMMember", name, args == null ? SubnetworkIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/subnetworkIAMMember:SubnetworkIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SubnetworkIAMMember(String name, Output id, @Nullable SubnetworkIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/subnetworkIAMMember:SubnetworkIAMMember", name, state, makeResourceOptions(options, id)); } + private static SubnetworkIAMMemberArgs makeArgs(SubnetworkIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SubnetworkIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMPolicy.java index dfd728a036..68cedb3ccd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/SubnetworkIAMPolicy.java @@ -704,13 +704,20 @@ public SubnetworkIAMPolicy(String name, SubnetworkIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public SubnetworkIAMPolicy(String name, SubnetworkIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/subnetworkIAMPolicy:SubnetworkIAMPolicy", name, args == null ? SubnetworkIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/subnetworkIAMPolicy:SubnetworkIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SubnetworkIAMPolicy(String name, Output id, @Nullable SubnetworkIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/subnetworkIAMPolicy:SubnetworkIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static SubnetworkIAMPolicyArgs makeArgs(SubnetworkIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SubnetworkIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetGrpcProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetGrpcProxy.java index 457d7abb54..9b2ce2d85c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetGrpcProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetGrpcProxy.java @@ -387,13 +387,20 @@ public TargetGrpcProxy(String name, @Nullable TargetGrpcProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetGrpcProxy(String name, @Nullable TargetGrpcProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/targetGrpcProxy:TargetGrpcProxy", name, args == null ? TargetGrpcProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/targetGrpcProxy:TargetGrpcProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetGrpcProxy(String name, Output id, @Nullable TargetGrpcProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/targetGrpcProxy:TargetGrpcProxy", name, state, makeResourceOptions(options, id)); } + private static TargetGrpcProxyArgs makeArgs(@Nullable TargetGrpcProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetGrpcProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpProxy.java index e12b4c8e04..bd1b0be93c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpProxy.java @@ -435,13 +435,20 @@ public TargetHttpProxy(String name, TargetHttpProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetHttpProxy(String name, TargetHttpProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/targetHttpProxy:TargetHttpProxy", name, args == null ? TargetHttpProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/targetHttpProxy:TargetHttpProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetHttpProxy(String name, Output id, @Nullable TargetHttpProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/targetHttpProxy:TargetHttpProxy", name, state, makeResourceOptions(options, id)); } + private static TargetHttpProxyArgs makeArgs(TargetHttpProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetHttpProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpsProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpsProxy.java index 627ba718eb..3a618766ee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpsProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetHttpsProxy.java @@ -786,13 +786,20 @@ public TargetHttpsProxy(String name, TargetHttpsProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetHttpsProxy(String name, TargetHttpsProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/targetHttpsProxy:TargetHttpsProxy", name, args == null ? TargetHttpsProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/targetHttpsProxy:TargetHttpsProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetHttpsProxy(String name, Output id, @Nullable TargetHttpsProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/targetHttpsProxy:TargetHttpsProxy", name, state, makeResourceOptions(options, id)); } + private static TargetHttpsProxyArgs makeArgs(TargetHttpsProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetHttpsProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetInstance.java index 3fd54871b5..0855c28735 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetInstance.java @@ -505,13 +505,20 @@ public TargetInstance(String name, TargetInstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetInstance(String name, TargetInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/targetInstance:TargetInstance", name, args == null ? TargetInstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/targetInstance:TargetInstance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetInstance(String name, Output id, @Nullable TargetInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/targetInstance:TargetInstance", name, state, makeResourceOptions(options, id)); } + private static TargetInstanceArgs makeArgs(TargetInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetInstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetPool.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetPool.java index b2db8cda23..5a10ef6d62 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetPool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetPool.java @@ -309,13 +309,20 @@ public TargetPool(String name, @Nullable TargetPoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetPool(String name, @Nullable TargetPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/targetPool:TargetPool", name, args == null ? TargetPoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/targetPool:TargetPool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetPool(String name, Output id, @Nullable TargetPoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/targetPool:TargetPool", name, state, makeResourceOptions(options, id)); } + private static TargetPoolArgs makeArgs(@Nullable TargetPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetPoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetSSLProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetSSLProxy.java index 54fdf52809..9456d6423c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetSSLProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetSSLProxy.java @@ -338,13 +338,20 @@ public TargetSSLProxy(String name, TargetSSLProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetSSLProxy(String name, TargetSSLProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/targetSSLProxy:TargetSSLProxy", name, args == null ? TargetSSLProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/targetSSLProxy:TargetSSLProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetSSLProxy(String name, Output id, @Nullable TargetSSLProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/targetSSLProxy:TargetSSLProxy", name, state, makeResourceOptions(options, id)); } + private static TargetSSLProxyArgs makeArgs(TargetSSLProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetSSLProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetTCPProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetTCPProxy.java index 48ced344a9..e771a36365 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetTCPProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/TargetTCPProxy.java @@ -288,13 +288,20 @@ public TargetTCPProxy(String name, TargetTCPProxyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TargetTCPProxy(String name, TargetTCPProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/targetTCPProxy:TargetTCPProxy", name, args == null ? TargetTCPProxyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/targetTCPProxy:TargetTCPProxy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TargetTCPProxy(String name, Output id, @Nullable TargetTCPProxyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/targetTCPProxy:TargetTCPProxy", name, state, makeResourceOptions(options, id)); } + private static TargetTCPProxyArgs makeArgs(TargetTCPProxyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TargetTCPProxyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/URLMap.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/URLMap.java index 5dc216e32f..a651d73eba 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/URLMap.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/URLMap.java @@ -1362,13 +1362,20 @@ public URLMap(String name, @Nullable URLMapArgs args) { * @param options A bag of options that control this resource's behavior. */ public URLMap(String name, @Nullable URLMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/uRLMap:URLMap", name, args == null ? URLMapArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/uRLMap:URLMap", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private URLMap(String name, Output id, @Nullable URLMapState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/uRLMap:URLMap", name, state, makeResourceOptions(options, id)); } + private static URLMapArgs makeArgs(@Nullable URLMapArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? URLMapArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNGateway.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNGateway.java index c4becb88d2..0f658c26f2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNGateway.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNGateway.java @@ -312,13 +312,20 @@ public VPNGateway(String name, VPNGatewayArgs args) { * @param options A bag of options that control this resource's behavior. */ public VPNGateway(String name, VPNGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/vPNGateway:VPNGateway", name, args == null ? VPNGatewayArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/vPNGateway:VPNGateway", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VPNGateway(String name, Output id, @Nullable VPNGatewayState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/vPNGateway:VPNGateway", name, state, makeResourceOptions(options, id)); } + private static VPNGatewayArgs makeArgs(VPNGatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VPNGatewayArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNTunnel.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNTunnel.java index 95ce7edd8a..ac4854bf15 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNTunnel.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/VPNTunnel.java @@ -592,13 +592,20 @@ public VPNTunnel(String name, VPNTunnelArgs args) { * @param options A bag of options that control this resource's behavior. */ public VPNTunnel(String name, VPNTunnelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:compute/vPNTunnel:VPNTunnel", name, args == null ? VPNTunnelArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:compute/vPNTunnel:VPNTunnel", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VPNTunnel(String name, Output id, @Nullable VPNTunnelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:compute/vPNTunnel:VPNTunnel", name, state, makeResourceOptions(options, id)); } + private static VPNTunnelArgs makeArgs(VPNTunnelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VPNTunnelArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/BackendServiceSecuritySettingsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/BackendServiceSecuritySettingsArgs.java index 502653f5d8..c62a662c42 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/BackendServiceSecuritySettingsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/BackendServiceSecuritySettingsArgs.java @@ -5,24 +5,49 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.inputs.BackendServiceSecuritySettingsAwsV4AuthenticationArgs; import java.lang.String; import java.util.List; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class BackendServiceSecuritySettingsArgs extends com.pulumi.resources.ResourceArgs { public static final BackendServiceSecuritySettingsArgs Empty = new BackendServiceSecuritySettingsArgs(); + /** + * The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + * + */ + @Import(name="awsV4Authentication") + private @Nullable Output awsV4Authentication; + + /** + * @return The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + * + */ + public Optional> awsV4Authentication() { + return Optional.ofNullable(this.awsV4Authentication); + } + /** * ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect * configuration unless it is attached to a backend service resource. * */ - @Import(name="clientTlsPolicy", required=true) - private Output clientTlsPolicy; + @Import(name="clientTlsPolicy") + private @Nullable Output clientTlsPolicy; /** * @return ClientTlsPolicy is a resource that specifies how a client should authenticate @@ -30,8 +55,8 @@ public final class BackendServiceSecuritySettingsArgs extends com.pulumi.resourc * configuration unless it is attached to a backend service resource. * */ - public Output clientTlsPolicy() { - return this.clientTlsPolicy; + public Optional> clientTlsPolicy() { + return Optional.ofNullable(this.clientTlsPolicy); } /** @@ -40,8 +65,8 @@ public Output clientTlsPolicy() { * alt name matches one of the specified values. * */ - @Import(name="subjectAltNames", required=true) - private Output> subjectAltNames; + @Import(name="subjectAltNames") + private @Nullable Output> subjectAltNames; /** * @return A list of alternate names to verify the subject identity in the certificate. @@ -49,13 +74,14 @@ public Output clientTlsPolicy() { * alt name matches one of the specified values. * */ - public Output> subjectAltNames() { - return this.subjectAltNames; + public Optional>> subjectAltNames() { + return Optional.ofNullable(this.subjectAltNames); } private BackendServiceSecuritySettingsArgs() {} private BackendServiceSecuritySettingsArgs(BackendServiceSecuritySettingsArgs $) { + this.awsV4Authentication = $.awsV4Authentication; this.clientTlsPolicy = $.clientTlsPolicy; this.subjectAltNames = $.subjectAltNames; } @@ -78,6 +104,35 @@ public Builder(BackendServiceSecuritySettingsArgs defaults) { $ = new BackendServiceSecuritySettingsArgs(Objects.requireNonNull(defaults)); } + /** + * @param awsV4Authentication The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + * + * @return builder + * + */ + public Builder awsV4Authentication(@Nullable Output awsV4Authentication) { + $.awsV4Authentication = awsV4Authentication; + return this; + } + + /** + * @param awsV4Authentication The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + * + * @return builder + * + */ + public Builder awsV4Authentication(BackendServiceSecuritySettingsAwsV4AuthenticationArgs awsV4Authentication) { + return awsV4Authentication(Output.of(awsV4Authentication)); + } + /** * @param clientTlsPolicy ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect @@ -86,7 +141,7 @@ public Builder(BackendServiceSecuritySettingsArgs defaults) { * @return builder * */ - public Builder clientTlsPolicy(Output clientTlsPolicy) { + public Builder clientTlsPolicy(@Nullable Output clientTlsPolicy) { $.clientTlsPolicy = clientTlsPolicy; return this; } @@ -111,7 +166,7 @@ public Builder clientTlsPolicy(String clientTlsPolicy) { * @return builder * */ - public Builder subjectAltNames(Output> subjectAltNames) { + public Builder subjectAltNames(@Nullable Output> subjectAltNames) { $.subjectAltNames = subjectAltNames; return this; } @@ -141,12 +196,6 @@ public Builder subjectAltNames(String... subjectAltNames) { } public BackendServiceSecuritySettingsArgs build() { - if ($.clientTlsPolicy == null) { - throw new MissingRequiredPropertyException("BackendServiceSecuritySettingsArgs", "clientTlsPolicy"); - } - if ($.subjectAltNames == null) { - throw new MissingRequiredPropertyException("BackendServiceSecuritySettingsArgs", "subjectAltNames"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/BackendServiceSecuritySettingsAwsV4AuthenticationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/BackendServiceSecuritySettingsAwsV4AuthenticationArgs.java new file mode 100644 index 0000000000..790fcea6cf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/BackendServiceSecuritySettingsAwsV4AuthenticationArgs.java @@ -0,0 +1,202 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackendServiceSecuritySettingsAwsV4AuthenticationArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackendServiceSecuritySettingsAwsV4AuthenticationArgs Empty = new BackendServiceSecuritySettingsAwsV4AuthenticationArgs(); + + /** + * The access key used for s3 bucket authentication. + * Required 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. + * + */ + @Import(name="accessKey") + private @Nullable Output accessKey; + + /** + * @return The access key used for s3 bucket authentication. + * Required 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. + * + */ + public Optional> accessKey() { + return Optional.ofNullable(this.accessKey); + } + + /** + * The identifier of an access key used for s3 bucket authentication. + * + */ + @Import(name="accessKeyId") + private @Nullable Output accessKeyId; + + /** + * @return The identifier of an access key used for s3 bucket authentication. + * + */ + public Optional> accessKeyId() { + return Optional.ofNullable(this.accessKeyId); + } + + /** + * The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + */ + @Import(name="accessKeyVersion") + private @Nullable Output accessKeyVersion; + + /** + * @return The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + */ + public Optional> accessKeyVersion() { + return Optional.ofNullable(this.accessKeyVersion); + } + + /** + * 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + */ + @Import(name="originRegion") + private @Nullable Output originRegion; + + /** + * @return 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + */ + public Optional> originRegion() { + return Optional.ofNullable(this.originRegion); + } + + private BackendServiceSecuritySettingsAwsV4AuthenticationArgs() {} + + private BackendServiceSecuritySettingsAwsV4AuthenticationArgs(BackendServiceSecuritySettingsAwsV4AuthenticationArgs $) { + this.accessKey = $.accessKey; + this.accessKeyId = $.accessKeyId; + this.accessKeyVersion = $.accessKeyVersion; + this.originRegion = $.originRegion; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackendServiceSecuritySettingsAwsV4AuthenticationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackendServiceSecuritySettingsAwsV4AuthenticationArgs $; + + public Builder() { + $ = new BackendServiceSecuritySettingsAwsV4AuthenticationArgs(); + } + + public Builder(BackendServiceSecuritySettingsAwsV4AuthenticationArgs defaults) { + $ = new BackendServiceSecuritySettingsAwsV4AuthenticationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param accessKey The access key used for s3 bucket authentication. + * Required 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. + * + * @return builder + * + */ + public Builder accessKey(@Nullable Output accessKey) { + $.accessKey = accessKey; + return this; + } + + /** + * @param accessKey The access key used for s3 bucket authentication. + * Required 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. + * + * @return builder + * + */ + public Builder accessKey(String accessKey) { + return accessKey(Output.of(accessKey)); + } + + /** + * @param accessKeyId The identifier of an access key used for s3 bucket authentication. + * + * @return builder + * + */ + public Builder accessKeyId(@Nullable Output accessKeyId) { + $.accessKeyId = accessKeyId; + return this; + } + + /** + * @param accessKeyId The identifier of an access key used for s3 bucket authentication. + * + * @return builder + * + */ + public Builder accessKeyId(String accessKeyId) { + return accessKeyId(Output.of(accessKeyId)); + } + + /** + * @param accessKeyVersion The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + * @return builder + * + */ + public Builder accessKeyVersion(@Nullable Output accessKeyVersion) { + $.accessKeyVersion = accessKeyVersion; + return this; + } + + /** + * @param accessKeyVersion The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + * @return builder + * + */ + public Builder accessKeyVersion(String accessKeyVersion) { + return accessKeyVersion(Output.of(accessKeyVersion)); + } + + /** + * @param originRegion 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + * @return builder + * + */ + public Builder originRegion(@Nullable Output originRegion) { + $.originRegion = originRegion; + return this; + } + + /** + * @param originRegion 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + * @return builder + * + */ + public Builder originRegion(String originRegion) { + return originRegion(Output.of(originRegion)); + } + + public BackendServiceSecuritySettingsAwsV4AuthenticationArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceBootDiskInitializeParamsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceBootDiskInitializeParamsArgs.java index 7c8d37bb63..ae68a1251c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceBootDiskInitializeParamsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceBootDiskInitializeParamsArgs.java @@ -170,6 +170,27 @@ public Optional> size() { return Optional.ofNullable(this.size); } + /** + * The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + * + */ + @Import(name="storagePool") + private @Nullable Output storagePool; + + /** + * @return The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + * + */ + public Optional> storagePool() { + return Optional.ofNullable(this.storagePool); + } + /** * The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. * @@ -195,6 +216,7 @@ private InstanceBootDiskInitializeParamsArgs(InstanceBootDiskInitializeParamsArg this.provisionedThroughput = $.provisionedThroughput; this.resourceManagerTags = $.resourceManagerTags; this.size = $.size; + this.storagePool = $.storagePool; this.type = $.type; } @@ -409,6 +431,33 @@ public Builder size(Integer size) { return size(Output.of(size)); } + /** + * @param storagePool The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + * + * @return builder + * + */ + public Builder storagePool(@Nullable Output storagePool) { + $.storagePool = storagePool; + return this; + } + + /** + * @param storagePool The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + * + * @return builder + * + */ + public Builder storagePool(String storagePool) { + return storagePool(Output.of(storagePool)); + } + /** * @param type The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.java index 3bcb96add8..335a44d463 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromMachineImageBootDiskInitializeParamsArgs.java @@ -124,6 +124,21 @@ public Optional> size() { return Optional.ofNullable(this.size); } + /** + * The URL of the storage pool in which the new disk is created + * + */ + @Import(name="storagePool") + private @Nullable Output storagePool; + + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + public Optional> storagePool() { + return Optional.ofNullable(this.storagePool); + } + /** * The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * @@ -149,6 +164,7 @@ private InstanceFromMachineImageBootDiskInitializeParamsArgs(InstanceFromMachine this.provisionedThroughput = $.provisionedThroughput; this.resourceManagerTags = $.resourceManagerTags; this.size = $.size; + this.storagePool = $.storagePool; this.type = $.type; } @@ -317,6 +333,27 @@ public Builder size(Integer size) { return size(Output.of(size)); } + /** + * @param storagePool The URL of the storage pool in which the new disk is created + * + * @return builder + * + */ + public Builder storagePool(@Nullable Output storagePool) { + $.storagePool = storagePool; + return this; + } + + /** + * @param storagePool The URL of the storage pool in which the new disk is created + * + * @return builder + * + */ + public Builder storagePool(String storagePool) { + return storagePool(Output.of(storagePool)); + } + /** * @param type The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.java index 032a0c83b8..0e193a10bb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/InstanceFromTemplateBootDiskInitializeParamsArgs.java @@ -124,6 +124,21 @@ public Optional> size() { return Optional.ofNullable(this.size); } + /** + * The URL of the storage pool in which the new disk is created + * + */ + @Import(name="storagePool") + private @Nullable Output storagePool; + + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + public Optional> storagePool() { + return Optional.ofNullable(this.storagePool); + } + /** * The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * @@ -149,6 +164,7 @@ private InstanceFromTemplateBootDiskInitializeParamsArgs(InstanceFromTemplateBoo this.provisionedThroughput = $.provisionedThroughput; this.resourceManagerTags = $.resourceManagerTags; this.size = $.size; + this.storagePool = $.storagePool; this.type = $.type; } @@ -317,6 +333,27 @@ public Builder size(Integer size) { return size(Output.of(size)); } + /** + * @param storagePool The URL of the storage pool in which the new disk is created + * + * @return builder + * + */ + public Builder storagePool(@Nullable Output storagePool) { + $.storagePool = storagePool; + return this; + } + + /** + * @param storagePool The URL of the storage pool in which the new disk is created + * + * @return builder + * + */ + public Builder storagePool(String storagePool) { + return storagePool(Output.of(storagePool)); + } + /** * @param type The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/PublicAdvertisedPrefixState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/PublicAdvertisedPrefixState.java index 3f5e3f3022..7805d23426 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/PublicAdvertisedPrefixState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/PublicAdvertisedPrefixState.java @@ -121,6 +121,21 @@ public Optional> selfLink() { return Optional.ofNullable(this.selfLink); } + /** + * Output Only. The shared secret to be used for reverse DNS verification. + * + */ + @Import(name="sharedSecret") + private @Nullable Output sharedSecret; + + /** + * @return Output Only. The shared secret to be used for reverse DNS verification. + * + */ + public Optional> sharedSecret() { + return Optional.ofNullable(this.sharedSecret); + } + private PublicAdvertisedPrefixState() {} private PublicAdvertisedPrefixState(PublicAdvertisedPrefixState $) { @@ -130,6 +145,7 @@ private PublicAdvertisedPrefixState(PublicAdvertisedPrefixState $) { this.name = $.name; this.project = $.project; this.selfLink = $.selfLink; + this.sharedSecret = $.sharedSecret; } public static Builder builder() { @@ -292,6 +308,27 @@ public Builder selfLink(String selfLink) { return selfLink(Output.of(selfLink)); } + /** + * @param sharedSecret Output Only. The shared secret to be used for reverse DNS verification. + * + * @return builder + * + */ + public Builder sharedSecret(@Nullable Output sharedSecret) { + $.sharedSecret = sharedSecret; + return this; + } + + /** + * @param sharedSecret Output Only. The shared secret to be used for reverse DNS verification. + * + * @return builder + * + */ + public Builder sharedSecret(String sharedSecret) { + return sharedSecret(Output.of(sharedSecret)); + } + public PublicAdvertisedPrefixState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestRequestedRunDurationArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestRequestedRunDurationArgs.java new file mode 100644 index 0000000000..92c7cf471b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestRequestedRunDurationArgs.java @@ -0,0 +1,125 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestRequestedRunDurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestRequestedRunDurationArgs Empty = new ResizeRequestRequestedRunDurationArgs(); + + /** + * 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. + * + */ + @Import(name="nanos") + private @Nullable Output nanos; + + /** + * @return 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. + * + */ + public Optional> nanos() { + return Optional.ofNullable(this.nanos); + } + + /** + * 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 + * + */ + @Import(name="seconds", required=true) + private Output seconds; + + /** + * @return 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 + * + */ + public Output seconds() { + return this.seconds; + } + + private ResizeRequestRequestedRunDurationArgs() {} + + private ResizeRequestRequestedRunDurationArgs(ResizeRequestRequestedRunDurationArgs $) { + this.nanos = $.nanos; + this.seconds = $.seconds; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestRequestedRunDurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestRequestedRunDurationArgs $; + + public Builder() { + $ = new ResizeRequestRequestedRunDurationArgs(); + } + + public Builder(ResizeRequestRequestedRunDurationArgs defaults) { + $ = new ResizeRequestRequestedRunDurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param nanos 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. + * + * @return builder + * + */ + public Builder nanos(@Nullable Output nanos) { + $.nanos = nanos; + return this; + } + + /** + * @param nanos 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. + * + * @return builder + * + */ + public Builder nanos(Integer nanos) { + return nanos(Output.of(nanos)); + } + + /** + * @param seconds 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 + * + * @return builder + * + */ + public Builder seconds(Output seconds) { + $.seconds = seconds; + return this; + } + + /** + * @param seconds 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 + * + * @return builder + * + */ + public Builder seconds(String seconds) { + return seconds(Output.of(seconds)); + } + + public ResizeRequestRequestedRunDurationArgs build() { + if ($.seconds == null) { + throw new MissingRequiredPropertyException("ResizeRequestRequestedRunDurationArgs", "seconds"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestState.java new file mode 100644 index 0000000000..76ccaad10b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestState.java @@ -0,0 +1,459 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestRequestedRunDurationArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestState extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestState Empty = new ResizeRequestState(); + + /** + * The creation timestamp for this resize request in RFC3339 text format. + * + */ + @Import(name="creationTimestamp") + private @Nullable Output creationTimestamp; + + /** + * @return The creation timestamp for this resize request in RFC3339 text format. + * + */ + public Optional> creationTimestamp() { + return Optional.ofNullable(this.creationTimestamp); + } + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + */ + @Import(name="instanceGroupManager") + private @Nullable Output instanceGroupManager; + + /** + * @return The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + */ + public Optional> instanceGroupManager() { + return Optional.ofNullable(this.instanceGroupManager); + } + + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + @Import(name="project") + private @Nullable Output project; + + /** + * @return The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + */ + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + */ + @Import(name="requestedRunDuration") + private @Nullable Output requestedRunDuration; + + /** + * @return Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + */ + public Optional> requestedRunDuration() { + return Optional.ofNullable(this.requestedRunDuration); + } + + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + @Import(name="resizeBy") + private @Nullable Output resizeBy; + + /** + * @return The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + */ + public Optional> resizeBy() { + return Optional.ofNullable(this.resizeBy); + } + + /** + * [Output only] Current state of the request. + * + */ + @Import(name="state") + private @Nullable Output state; + + /** + * @return [Output only] Current state of the request. + * + */ + public Optional> state() { + return Optional.ofNullable(this.state); + } + + /** + * [Output only] Status of the request. + * Structure is documented below. + * + */ + @Import(name="statuses") + private @Nullable Output> statuses; + + /** + * @return [Output only] Status of the request. + * Structure is documented below. + * + */ + public Optional>> statuses() { + return Optional.ofNullable(this.statuses); + } + + /** + * Name of the compute zone scoping this request. Name should conform to RFC1035. + * + */ + @Import(name="zone") + private @Nullable Output zone; + + /** + * @return Name of the compute zone scoping this request. Name should conform to RFC1035. + * + */ + public Optional> zone() { + return Optional.ofNullable(this.zone); + } + + private ResizeRequestState() {} + + private ResizeRequestState(ResizeRequestState $) { + this.creationTimestamp = $.creationTimestamp; + this.description = $.description; + this.instanceGroupManager = $.instanceGroupManager; + this.name = $.name; + this.project = $.project; + this.requestedRunDuration = $.requestedRunDuration; + this.resizeBy = $.resizeBy; + this.state = $.state; + this.statuses = $.statuses; + this.zone = $.zone; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestState $; + + public Builder() { + $ = new ResizeRequestState(); + } + + public Builder(ResizeRequestState defaults) { + $ = new ResizeRequestState(Objects.requireNonNull(defaults)); + } + + /** + * @param creationTimestamp The creation timestamp for this resize request in RFC3339 text format. + * + * @return builder + * + */ + public Builder creationTimestamp(@Nullable Output creationTimestamp) { + $.creationTimestamp = creationTimestamp; + return this; + } + + /** + * @param creationTimestamp The creation timestamp for this resize request in RFC3339 text format. + * + * @return builder + * + */ + public Builder creationTimestamp(String creationTimestamp) { + return creationTimestamp(Output.of(creationTimestamp)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param instanceGroupManager The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(@Nullable Output instanceGroupManager) { + $.instanceGroupManager = instanceGroupManager; + return this; + } + + /** + * @param instanceGroupManager The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * *** + * + * @return builder + * + */ + public Builder instanceGroupManager(String instanceGroupManager) { + return instanceGroupManager(Output.of(instanceGroupManager)); + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + /** + * @param project The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + * + * @return builder + * + */ + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(@Nullable Output requestedRunDuration) { + $.requestedRunDuration = requestedRunDuration; + return this; + } + + /** + * @param requestedRunDuration Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + * + * @return builder + * + */ + public Builder requestedRunDuration(ResizeRequestRequestedRunDurationArgs requestedRunDuration) { + return requestedRunDuration(Output.of(requestedRunDuration)); + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(@Nullable Output resizeBy) { + $.resizeBy = resizeBy; + return this; + } + + /** + * @param resizeBy The number of instances to be created by this resize request. The group's target size will be increased by this number. + * + * @return builder + * + */ + public Builder resizeBy(Integer resizeBy) { + return resizeBy(Output.of(resizeBy)); + } + + /** + * @param state [Output only] Current state of the request. + * + * @return builder + * + */ + public Builder state(@Nullable Output state) { + $.state = state; + return this; + } + + /** + * @param state [Output only] Current state of the request. + * + * @return builder + * + */ + public Builder state(String state) { + return state(Output.of(state)); + } + + /** + * @param statuses [Output only] Status of the request. + * Structure is documented below. + * + * @return builder + * + */ + public Builder statuses(@Nullable Output> statuses) { + $.statuses = statuses; + return this; + } + + /** + * @param statuses [Output only] Status of the request. + * Structure is documented below. + * + * @return builder + * + */ + public Builder statuses(List statuses) { + return statuses(Output.of(statuses)); + } + + /** + * @param statuses [Output only] Status of the request. + * Structure is documented below. + * + * @return builder + * + */ + public Builder statuses(ResizeRequestStatusArgs... statuses) { + return statuses(List.of(statuses)); + } + + /** + * @param zone Name of the compute zone scoping this request. Name should conform to RFC1035. + * + * @return builder + * + */ + public Builder zone(@Nullable Output zone) { + $.zone = zone; + return this; + } + + /** + * @param zone Name of the compute zone scoping this request. Name should conform to RFC1035. + * + * @return builder + * + */ + public Builder zone(String zone) { + return zone(Output.of(zone)); + } + + public ResizeRequestState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusArgs.java new file mode 100644 index 0000000000..b2209bc156 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusArgs.java @@ -0,0 +1,162 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusArgs Empty = new ResizeRequestStatusArgs(); + + /** + * (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + /** + * (Output) + * [Output only] Information 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. + * Structure is documented below. + * + */ + @Import(name="lastAttempts") + private @Nullable Output> lastAttempts; + + /** + * @return (Output) + * [Output only] Information 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. + * Structure is documented below. + * + */ + public Optional>> lastAttempts() { + return Optional.ofNullable(this.lastAttempts); + } + + private ResizeRequestStatusArgs() {} + + private ResizeRequestStatusArgs(ResizeRequestStatusArgs $) { + this.errors = $.errors; + this.lastAttempts = $.lastAttempts; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusArgs $; + + public Builder() { + $ = new ResizeRequestStatusArgs(); + } + + public Builder(ResizeRequestStatusArgs defaults) { + $ = new ResizeRequestStatusArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(ResizeRequestStatusErrorArgs... errors) { + return errors(List.of(errors)); + } + + /** + * @param lastAttempts (Output) + * [Output only] Information 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastAttempts(@Nullable Output> lastAttempts) { + $.lastAttempts = lastAttempts; + return this; + } + + /** + * @param lastAttempts (Output) + * [Output only] Information 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastAttempts(List lastAttempts) { + return lastAttempts(Output.of(lastAttempts)); + } + + /** + * @param lastAttempts (Output) + * [Output only] Information 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder lastAttempts(ResizeRequestStatusLastAttemptArgs... lastAttempts) { + return lastAttempts(List.of(lastAttempts)); + } + + public ResizeRequestStatusArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorArgs.java new file mode 100644 index 0000000000..627244b700 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorErrorArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorArgs Empty = new ResizeRequestStatusErrorArgs(); + + /** + * (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + private ResizeRequestStatusErrorArgs() {} + + private ResizeRequestStatusErrorArgs(ResizeRequestStatusErrorArgs $) { + this.errors = $.errors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorArgs(); + } + + public Builder(ResizeRequestStatusErrorArgs defaults) { + $ = new ResizeRequestStatusErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(ResizeRequestStatusErrorErrorArgs... errors) { + return errors(List.of(errors)); + } + + public ResizeRequestStatusErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorArgs.java new file mode 100644 index 0000000000..1015d6307b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorArgs.java @@ -0,0 +1,228 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorErrorErrorDetailArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorErrorArgs Empty = new ResizeRequestStatusErrorErrorArgs(); + + /** + * (Output) + * [Output Only] The error type identifier for this error. + * + */ + @Import(name="code") + private @Nullable Output code; + + /** + * @return (Output) + * [Output Only] The error type identifier for this error. + * + */ + public Optional> code() { + return Optional.ofNullable(this.code); + } + + /** + * (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + @Import(name="errorDetails") + private @Nullable Output> errorDetails; + + /** + * @return (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + public Optional>> errorDetails() { + return Optional.ofNullable(this.errorDetails); + } + + /** + * (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private ResizeRequestStatusErrorErrorArgs() {} + + private ResizeRequestStatusErrorErrorArgs(ResizeRequestStatusErrorErrorArgs $) { + this.code = $.code; + this.errorDetails = $.errorDetails; + this.location = $.location; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorErrorArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorErrorArgs(); + } + + public Builder(ResizeRequestStatusErrorErrorArgs defaults) { + $ = new ResizeRequestStatusErrorErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param code (Output) + * [Output Only] The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(@Nullable Output code) { + $.code = code; + return this; + } + + /** + * @param code (Output) + * [Output Only] The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(String code) { + return code(Output.of(code)); + } + + /** + * @param errorDetails (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(@Nullable Output> errorDetails) { + $.errorDetails = errorDetails; + return this; + } + + /** + * @param errorDetails (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(List errorDetails) { + return errorDetails(Output.of(errorDetails)); + } + + /** + * @param errorDetails (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(ResizeRequestStatusErrorErrorErrorDetailArgs... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + + /** + * @param location (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public ResizeRequestStatusErrorErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailArgs.java new file mode 100644 index 0000000000..ee04ec0bb5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailArgs.java @@ -0,0 +1,278 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorErrorErrorDetailHelpArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorErrorErrorDetailArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorErrorErrorDetailArgs Empty = new ResizeRequestStatusErrorErrorErrorDetailArgs(); + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="errorInfos") + private @Nullable Output> errorInfos; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> errorInfos() { + return Optional.ofNullable(this.errorInfos); + } + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="helps") + private @Nullable Output> helps; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> helps() { + return Optional.ofNullable(this.helps); + } + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="localizedMessages") + private @Nullable Output> localizedMessages; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> localizedMessages() { + return Optional.ofNullable(this.localizedMessages); + } + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="quotaInfos") + private @Nullable Output> quotaInfos; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> quotaInfos() { + return Optional.ofNullable(this.quotaInfos); + } + + private ResizeRequestStatusErrorErrorErrorDetailArgs() {} + + private ResizeRequestStatusErrorErrorErrorDetailArgs(ResizeRequestStatusErrorErrorErrorDetailArgs $) { + this.errorInfos = $.errorInfos; + this.helps = $.helps; + this.localizedMessages = $.localizedMessages; + this.quotaInfos = $.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorErrorErrorDetailArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorErrorErrorDetailArgs(); + } + + public Builder(ResizeRequestStatusErrorErrorErrorDetailArgs defaults) { + $ = new ResizeRequestStatusErrorErrorErrorDetailArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errorInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(@Nullable Output> errorInfos) { + $.errorInfos = errorInfos; + return this; + } + + /** + * @param errorInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(List errorInfos) { + return errorInfos(Output.of(errorInfos)); + } + + /** + * @param errorInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + + /** + * @param helps (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(@Nullable Output> helps) { + $.helps = helps; + return this; + } + + /** + * @param helps (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(List helps) { + return helps(Output.of(helps)); + } + + /** + * @param helps (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(ResizeRequestStatusErrorErrorErrorDetailHelpArgs... helps) { + return helps(List.of(helps)); + } + + /** + * @param localizedMessages (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(@Nullable Output> localizedMessages) { + $.localizedMessages = localizedMessages; + return this; + } + + /** + * @param localizedMessages (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(List localizedMessages) { + return localizedMessages(Output.of(localizedMessages)); + } + + /** + * @param localizedMessages (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + + /** + * @param quotaInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(@Nullable Output> quotaInfos) { + $.quotaInfos = quotaInfos; + return this; + } + + /** + * @param quotaInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(List quotaInfos) { + return quotaInfos(Output.of(quotaInfos)); + } + + /** + * @param quotaInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + + public ResizeRequestStatusErrorErrorErrorDetailArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.java new file mode 100644 index 0000000000..63b05008b6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs.java @@ -0,0 +1,174 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs Empty = new ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(); + + /** + * (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + @Import(name="domain") + private @Nullable Output domain; + + /** + * @return (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + + /** + * (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + @Import(name="metadatas") + private @Nullable Output> metadatas; + + /** + * @return (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + public Optional>> metadatas() { + return Optional.ofNullable(this.metadatas); + } + + /** + * (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + @Import(name="reason") + private @Nullable Output reason; + + /** + * @return (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + public Optional> reason() { + return Optional.ofNullable(this.reason); + } + + private ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs() {} + + private ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs $) { + this.domain = $.domain; + this.metadatas = $.metadatas; + this.reason = $.reason; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(); + } + + public Builder(ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs defaults) { + $ = new ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param domain (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + * @return builder + * + */ + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + /** + * @param domain (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + * @return builder + * + */ + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + * @return builder + * + */ + public Builder metadatas(@Nullable Output> metadatas) { + $.metadatas = metadatas; + return this; + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + * @return builder + * + */ + public Builder metadatas(Map metadatas) { + return metadatas(Output.of(metadatas)); + } + + /** + * @param reason (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + * @return builder + * + */ + public Builder reason(@Nullable Output reason) { + $.reason = reason; + return this; + } + + /** + * @param reason (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + * @return builder + * + */ + public Builder reason(String reason) { + return reason(Output.of(reason)); + } + + public ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailHelpArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailHelpArgs.java new file mode 100644 index 0000000000..ea4c9b9864 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailHelpArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorErrorErrorDetailHelpArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorErrorErrorDetailHelpArgs Empty = new ResizeRequestStatusErrorErrorErrorDetailHelpArgs(); + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="links") + private @Nullable Output> links; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> links() { + return Optional.ofNullable(this.links); + } + + private ResizeRequestStatusErrorErrorErrorDetailHelpArgs() {} + + private ResizeRequestStatusErrorErrorErrorDetailHelpArgs(ResizeRequestStatusErrorErrorErrorDetailHelpArgs $) { + this.links = $.links; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailHelpArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorErrorErrorDetailHelpArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorErrorErrorDetailHelpArgs(); + } + + public Builder(ResizeRequestStatusErrorErrorErrorDetailHelpArgs defaults) { + $ = new ResizeRequestStatusErrorErrorErrorDetailHelpArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param links (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(@Nullable Output> links) { + $.links = links; + return this; + } + + /** + * @param links (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(List links) { + return links(Output.of(links)); + } + + /** + * @param links (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs... links) { + return links(List.of(links)); + } + + public ResizeRequestStatusErrorErrorErrorDetailHelpArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.java new file mode 100644 index 0000000000..28dbd7a55d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs.java @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs Empty = new ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(); + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * (Output) + * The URL of the link. + * + */ + @Import(name="url") + private @Nullable Output url; + + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional> url() { + return Optional.ofNullable(this.url); + } + + private ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs() {} + + private ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs $) { + this.description = $.description; + this.url = $.url; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(); + } + + public Builder(ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs defaults) { + $ = new ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(@Nullable Output url) { + $.url = url; + return this; + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(String url) { + return url(Output.of(url)); + } + + public ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.java new file mode 100644 index 0000000000..49c961dc48 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs.java @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs Empty = new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(); + + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + @Import(name="locale") + private @Nullable Output locale; + + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional> locale() { + return Optional.ofNullable(this.locale); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs() {} + + private ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs $) { + this.locale = $.locale; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(); + } + + public Builder(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs defaults) { + $ = new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(@Nullable Output locale) { + $.locale = locale; + return this; + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(String locale) { + return locale(Output.of(locale)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.java new file mode 100644 index 0000000000..9dfb734613 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs.java @@ -0,0 +1,294 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs Empty = new ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(); + + /** + * (Output) + * The map holding related quota dimensions + * + */ + @Import(name="dimensions") + private @Nullable Output> dimensions; + + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Optional>> dimensions() { + return Optional.ofNullable(this.dimensions); + } + + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="futureLimit") + private @Nullable Output futureLimit; + + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional> futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="limit") + private @Nullable Output limit; + + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional> limit() { + return Optional.ofNullable(this.limit); + } + + /** + * (Output) + * The name of the quota limit. + * + */ + @Import(name="limitName") + private @Nullable Output limitName; + + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional> limitName() { + return Optional.ofNullable(this.limitName); + } + + /** + * (Output) + * The Compute Engine quota metric name. + * + */ + @Import(name="metricName") + private @Nullable Output metricName; + + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional> metricName() { + return Optional.ofNullable(this.metricName); + } + + /** + * (Output) + * Rollout status of the future quota limit. + * + */ + @Import(name="rolloutStatus") + private @Nullable Output rolloutStatus; + + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional> rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + private ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs() {} + + private ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs $) { + this.dimensions = $.dimensions; + this.futureLimit = $.futureLimit; + this.limit = $.limit; + this.limitName = $.limitName; + this.metricName = $.metricName; + this.rolloutStatus = $.rolloutStatus; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs $; + + public Builder() { + $ = new ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(); + } + + public Builder(ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs defaults) { + $ = new ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(@Nullable Output> dimensions) { + $.dimensions = dimensions; + return this; + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(Map dimensions) { + return dimensions(Output.of(dimensions)); + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(@Nullable Output futureLimit) { + $.futureLimit = futureLimit; + return this; + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(Integer futureLimit) { + return futureLimit(Output.of(futureLimit)); + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(@Nullable Output limit) { + $.limit = limit; + return this; + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(Integer limit) { + return limit(Output.of(limit)); + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(@Nullable Output limitName) { + $.limitName = limitName; + return this; + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(String limitName) { + return limitName(Output.of(limitName)); + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(@Nullable Output metricName) { + $.metricName = metricName; + return this; + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(String metricName) { + return metricName(Output.of(metricName)); + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(@Nullable Output rolloutStatus) { + $.rolloutStatus = rolloutStatus; + return this; + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(String rolloutStatus) { + return rolloutStatus(Output.of(rolloutStatus)); + } + + public ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptArgs.java new file mode 100644 index 0000000000..8173b33147 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptArgs Empty = new ResizeRequestStatusLastAttemptArgs(); + + /** + * (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + private ResizeRequestStatusLastAttemptArgs() {} + + private ResizeRequestStatusLastAttemptArgs(ResizeRequestStatusLastAttemptArgs $) { + this.errors = $.errors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptArgs defaults) { + $ = new ResizeRequestStatusLastAttemptArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(ResizeRequestStatusLastAttemptErrorArgs... errors) { + return errors(List.of(errors)); + } + + public ResizeRequestStatusLastAttemptArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorArgs.java new file mode 100644 index 0000000000..20c0eba2d5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorErrorArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorArgs Empty = new ResizeRequestStatusLastAttemptErrorArgs(); + + /** + * (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + @Import(name="errors") + private @Nullable Output> errors; + + /** + * @return (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public Optional>> errors() { + return Optional.ofNullable(this.errors); + } + + private ResizeRequestStatusLastAttemptErrorArgs() {} + + private ResizeRequestStatusLastAttemptErrorArgs(ResizeRequestStatusLastAttemptErrorArgs $) { + this.errors = $.errors; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errors (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(@Nullable Output> errors) { + $.errors = errors; + return this; + } + + /** + * @param errors (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(List errors) { + return errors(Output.of(errors)); + } + + /** + * @param errors (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errors(ResizeRequestStatusLastAttemptErrorErrorArgs... errors) { + return errors(List.of(errors)); + } + + public ResizeRequestStatusLastAttemptErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorArgs.java new file mode 100644 index 0000000000..6d3dd351f2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorArgs.java @@ -0,0 +1,228 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorErrorArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorErrorArgs Empty = new ResizeRequestStatusLastAttemptErrorErrorArgs(); + + /** + * (Output) + * [Output Only] The error type identifier for this error. + * + */ + @Import(name="code") + private @Nullable Output code; + + /** + * @return (Output) + * [Output Only] The error type identifier for this error. + * + */ + public Optional> code() { + return Optional.ofNullable(this.code); + } + + /** + * (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + @Import(name="errorDetails") + private @Nullable Output> errorDetails; + + /** + * @return (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + public Optional>> errorDetails() { + return Optional.ofNullable(this.errorDetails); + } + + /** + * (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private ResizeRequestStatusLastAttemptErrorErrorArgs() {} + + private ResizeRequestStatusLastAttemptErrorErrorArgs(ResizeRequestStatusLastAttemptErrorErrorArgs $) { + this.code = $.code; + this.errorDetails = $.errorDetails; + this.location = $.location; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorErrorArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorErrorArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorErrorArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorErrorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param code (Output) + * [Output Only] The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(@Nullable Output code) { + $.code = code; + return this; + } + + /** + * @param code (Output) + * [Output Only] The error type identifier for this error. + * + * @return builder + * + */ + public Builder code(String code) { + return code(Output.of(code)); + } + + /** + * @param errorDetails (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(@Nullable Output> errorDetails) { + $.errorDetails = errorDetails; + return this; + } + + /** + * @param errorDetails (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(List errorDetails) { + return errorDetails(Output.of(errorDetails)); + } + + /** + * @param errorDetails (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorDetails(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + + /** + * @param location (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public ResizeRequestStatusLastAttemptErrorErrorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.java new file mode 100644 index 0000000000..9a314b57b5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs.java @@ -0,0 +1,278 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs Empty = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(); + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="errorInfos") + private @Nullable Output> errorInfos; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> errorInfos() { + return Optional.ofNullable(this.errorInfos); + } + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="helps") + private @Nullable Output> helps; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> helps() { + return Optional.ofNullable(this.helps); + } + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="localizedMessages") + private @Nullable Output> localizedMessages; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> localizedMessages() { + return Optional.ofNullable(this.localizedMessages); + } + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="quotaInfos") + private @Nullable Output> quotaInfos; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> quotaInfos() { + return Optional.ofNullable(this.quotaInfos); + } + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs() {} + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs $) { + this.errorInfos = $.errorInfos; + this.helps = $.helps; + this.localizedMessages = $.localizedMessages; + this.quotaInfos = $.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param errorInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(@Nullable Output> errorInfos) { + $.errorInfos = errorInfos; + return this; + } + + /** + * @param errorInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(List errorInfos) { + return errorInfos(Output.of(errorInfos)); + } + + /** + * @param errorInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder errorInfos(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + + /** + * @param helps (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(@Nullable Output> helps) { + $.helps = helps; + return this; + } + + /** + * @param helps (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(List helps) { + return helps(Output.of(helps)); + } + + /** + * @param helps (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder helps(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs... helps) { + return helps(List.of(helps)); + } + + /** + * @param localizedMessages (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(@Nullable Output> localizedMessages) { + $.localizedMessages = localizedMessages; + return this; + } + + /** + * @param localizedMessages (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(List localizedMessages) { + return localizedMessages(Output.of(localizedMessages)); + } + + /** + * @param localizedMessages (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder localizedMessages(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + + /** + * @param quotaInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(@Nullable Output> quotaInfos) { + $.quotaInfos = quotaInfos; + return this; + } + + /** + * @param quotaInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(List quotaInfos) { + return quotaInfos(Output.of(quotaInfos)); + } + + /** + * @param quotaInfos (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder quotaInfos(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.java new file mode 100644 index 0000000000..2247800751 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs.java @@ -0,0 +1,174 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs Empty = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(); + + /** + * (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + @Import(name="domain") + private @Nullable Output domain; + + /** + * @return (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + + /** + * (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + @Import(name="metadatas") + private @Nullable Output> metadatas; + + /** + * @return (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + public Optional>> metadatas() { + return Optional.ofNullable(this.metadatas); + } + + /** + * (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + @Import(name="reason") + private @Nullable Output reason; + + /** + * @return (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + public Optional> reason() { + return Optional.ofNullable(this.reason); + } + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs() {} + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs $) { + this.domain = $.domain; + this.metadatas = $.metadatas; + this.reason = $.reason; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param domain (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + * @return builder + * + */ + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + /** + * @param domain (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + * @return builder + * + */ + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + * @return builder + * + */ + public Builder metadatas(@Nullable Output> metadatas) { + $.metadatas = metadatas; + return this; + } + + /** + * @param metadatas (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + * @return builder + * + */ + public Builder metadatas(Map metadatas) { + return metadatas(Output.of(metadatas)); + } + + /** + * @param reason (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + * @return builder + * + */ + public Builder reason(@Nullable Output reason) { + $.reason = reason; + return this; + } + + /** + * @param reason (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + * @return builder + * + */ + public Builder reason(String reason) { + return reason(Output.of(reason)); + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.java new file mode 100644 index 0000000000..a79c4a14ce --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs.java @@ -0,0 +1,104 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs Empty = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(); + + /** + * (Output) + * [Output Only] + * Structure is documented below. + * + */ + @Import(name="links") + private @Nullable Output> links; + + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public Optional>> links() { + return Optional.ofNullable(this.links); + } + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs() {} + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs $) { + this.links = $.links; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param links (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(@Nullable Output> links) { + $.links = links; + return this; + } + + /** + * @param links (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(List links) { + return links(Output.of(links)); + } + + /** + * @param links (Output) + * [Output Only] + * Structure is documented below. + * + * @return builder + * + */ + public Builder links(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs... links) { + return links(List.of(links)); + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.java new file mode 100644 index 0000000000..d7395266f4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs.java @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs Empty = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(); + + /** + * An optional description of this resize-request. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return An optional description of this resize-request. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * (Output) + * The URL of the link. + * + */ + @Import(name="url") + private @Nullable Output url; + + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional> url() { + return Optional.ofNullable(this.url); + } + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs() {} + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs $) { + this.description = $.description; + this.url = $.url; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description An optional description of this resize-request. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(@Nullable Output url) { + $.url = url; + return this; + } + + /** + * @param url (Output) + * The URL of the link. + * + * @return builder + * + */ + public Builder url(String url) { + return url(Output.of(url)); + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.java new file mode 100644 index 0000000000..912127d9ca --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs.java @@ -0,0 +1,128 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs Empty = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(); + + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + @Import(name="locale") + private @Nullable Output locale; + + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional> locale() { + return Optional.ofNullable(this.locale); + } + + /** + * (Output) + * The localized error message in the above locale. + * + */ + @Import(name="message") + private @Nullable Output message; + + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional> message() { + return Optional.ofNullable(this.message); + } + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs() {} + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs $) { + this.locale = $.locale; + this.message = $.message; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(@Nullable Output locale) { + $.locale = locale; + return this; + } + + /** + * @param locale (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + * @return builder + * + */ + public Builder locale(String locale) { + return locale(Output.of(locale)); + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(@Nullable Output message) { + $.message = message; + return this; + } + + /** + * @param message (Output) + * The localized error message in the above locale. + * + * @return builder + * + */ + public Builder message(String message) { + return message(Output.of(message)); + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.java new file mode 100644 index 0000000000..1644609eff --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs.java @@ -0,0 +1,294 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs extends com.pulumi.resources.ResourceArgs { + + public static final ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs Empty = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(); + + /** + * (Output) + * The map holding related quota dimensions + * + */ + @Import(name="dimensions") + private @Nullable Output> dimensions; + + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Optional>> dimensions() { + return Optional.ofNullable(this.dimensions); + } + + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="futureLimit") + private @Nullable Output futureLimit; + + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional> futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + @Import(name="limit") + private @Nullable Output limit; + + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional> limit() { + return Optional.ofNullable(this.limit); + } + + /** + * (Output) + * The name of the quota limit. + * + */ + @Import(name="limitName") + private @Nullable Output limitName; + + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional> limitName() { + return Optional.ofNullable(this.limitName); + } + + /** + * (Output) + * The Compute Engine quota metric name. + * + */ + @Import(name="metricName") + private @Nullable Output metricName; + + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional> metricName() { + return Optional.ofNullable(this.metricName); + } + + /** + * (Output) + * Rollout status of the future quota limit. + * + */ + @Import(name="rolloutStatus") + private @Nullable Output rolloutStatus; + + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional> rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs() {} + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs $) { + this.dimensions = $.dimensions; + this.futureLimit = $.futureLimit; + this.limit = $.limit; + this.limitName = $.limitName; + this.metricName = $.metricName; + this.rolloutStatus = $.rolloutStatus; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs $; + + public Builder() { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(); + } + + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs defaults) { + $ = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(@Nullable Output> dimensions) { + $.dimensions = dimensions; + return this; + } + + /** + * @param dimensions (Output) + * The map holding related quota dimensions + * + * @return builder + * + */ + public Builder dimensions(Map dimensions) { + return dimensions(Output.of(dimensions)); + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(@Nullable Output futureLimit) { + $.futureLimit = futureLimit; + return this; + } + + /** + * @param futureLimit (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder futureLimit(Integer futureLimit) { + return futureLimit(Output.of(futureLimit)); + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(@Nullable Output limit) { + $.limit = limit; + return this; + } + + /** + * @param limit (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + * @return builder + * + */ + public Builder limit(Integer limit) { + return limit(Output.of(limit)); + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(@Nullable Output limitName) { + $.limitName = limitName; + return this; + } + + /** + * @param limitName (Output) + * The name of the quota limit. + * + * @return builder + * + */ + public Builder limitName(String limitName) { + return limitName(Output.of(limitName)); + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(@Nullable Output metricName) { + $.metricName = metricName; + return this; + } + + /** + * @param metricName (Output) + * The Compute Engine quota metric name. + * + * @return builder + * + */ + public Builder metricName(String metricName) { + return metricName(Output.of(metricName)); + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(@Nullable Output rolloutStatus) { + $.rolloutStatus = rolloutStatus; + return this; + } + + /** + * @param rolloutStatus (Output) + * Rollout status of the future quota limit. + * + * @return builder + * + */ + public Builder rolloutStatus(String rolloutStatus) { + return rolloutStatus(Output.of(rolloutStatus)); + } + + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerCustomLearnedIpRangeArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerCustomLearnedIpRangeArgs.java new file mode 100644 index 0000000000..c0dff646e8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerCustomLearnedIpRangeArgs.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class RouterPeerCustomLearnedIpRangeArgs extends com.pulumi.resources.ResourceArgs { + + public static final RouterPeerCustomLearnedIpRangeArgs Empty = new RouterPeerCustomLearnedIpRangeArgs(); + + /** + * The IP range to advertise. The value must be a + * CIDR-formatted string. + * + */ + @Import(name="range", required=true) + private Output range; + + /** + * @return The IP range to advertise. The value must be a + * CIDR-formatted string. + * + */ + public Output range() { + return this.range; + } + + private RouterPeerCustomLearnedIpRangeArgs() {} + + private RouterPeerCustomLearnedIpRangeArgs(RouterPeerCustomLearnedIpRangeArgs $) { + this.range = $.range; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RouterPeerCustomLearnedIpRangeArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RouterPeerCustomLearnedIpRangeArgs $; + + public Builder() { + $ = new RouterPeerCustomLearnedIpRangeArgs(); + } + + public Builder(RouterPeerCustomLearnedIpRangeArgs defaults) { + $ = new RouterPeerCustomLearnedIpRangeArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param range The IP range to advertise. The value must be a + * CIDR-formatted string. + * + * @return builder + * + */ + public Builder range(Output range) { + $.range = range; + return this; + } + + /** + * @param range The IP range to advertise. The value must be a + * CIDR-formatted string. + * + * @return builder + * + */ + public Builder range(String range) { + return range(Output.of(range)); + } + + public RouterPeerCustomLearnedIpRangeArgs build() { + if ($.range == null) { + throw new MissingRequiredPropertyException("RouterPeerCustomLearnedIpRangeArgs", "range"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java index c330c363e4..1b33aeb5db 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterPeerState.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.compute.inputs.RouterPeerAdvertisedIpRangeArgs; import com.pulumi.gcp.compute.inputs.RouterPeerBfdArgs; +import com.pulumi.gcp.compute.inputs.RouterPeerCustomLearnedIpRangeArgs; import com.pulumi.gcp.compute.inputs.RouterPeerMd5AuthenticationKeyArgs; import java.lang.Boolean; import java.lang.Integer; @@ -136,6 +137,42 @@ public Optional> bfd() { return Optional.ofNullable(this.bfd); } + /** + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + */ + @Import(name="customLearnedIpRanges") + private @Nullable Output> customLearnedIpRanges; + + /** + * @return The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + */ + public Optional>> customLearnedIpRanges() { + return Optional.ofNullable(this.customLearnedIpRanges); + } + + /** + * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + */ + @Import(name="customLearnedRoutePriority") + private @Nullable Output customLearnedRoutePriority; + + /** + * @return The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + */ + public Optional> customLearnedRoutePriority() { + return Optional.ofNullable(this.customLearnedRoutePriority); + } + /** * The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -187,6 +224,40 @@ public Optional> enableIpv6() { return Optional.ofNullable(this.enableIpv6); } + /** + * routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + */ + @Import(name="exportPolicies") + private @Nullable Output> exportPolicies; + + /** + * @return routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + */ + public Optional>> exportPolicies() { + return Optional.ofNullable(this.exportPolicies); + } + + /** + * routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + */ + @Import(name="importPolicies") + private @Nullable Output> importPolicies; + + /** + * @return routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + */ + public Optional>> importPolicies() { + return Optional.ofNullable(this.importPolicies); + } + /** * Name of the interface the BGP peer is associated with. * @@ -480,9 +551,13 @@ private RouterPeerState(RouterPeerState $) { this.advertisedIpRanges = $.advertisedIpRanges; this.advertisedRoutePriority = $.advertisedRoutePriority; this.bfd = $.bfd; + this.customLearnedIpRanges = $.customLearnedIpRanges; + this.customLearnedRoutePriority = $.customLearnedRoutePriority; this.enable = $.enable; this.enableIpv4 = $.enableIpv4; this.enableIpv6 = $.enableIpv6; + this.exportPolicies = $.exportPolicies; + this.importPolicies = $.importPolicies; this.interface_ = $.interface_; this.ipAddress = $.ipAddress; this.ipv4NexthopAddress = $.ipv4NexthopAddress; @@ -697,6 +772,65 @@ public Builder bfd(RouterPeerBfdArgs bfd) { return bfd(Output.of(bfd)); } + /** + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + * @return builder + * + */ + public Builder customLearnedIpRanges(@Nullable Output> customLearnedIpRanges) { + $.customLearnedIpRanges = customLearnedIpRanges; + return this; + } + + /** + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + * @return builder + * + */ + public Builder customLearnedIpRanges(List customLearnedIpRanges) { + return customLearnedIpRanges(Output.of(customLearnedIpRanges)); + } + + /** + * @param customLearnedIpRanges The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + * + * @return builder + * + */ + public Builder customLearnedIpRanges(RouterPeerCustomLearnedIpRangeArgs... customLearnedIpRanges) { + return customLearnedIpRanges(List.of(customLearnedIpRanges)); + } + + /** + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + * @return builder + * + */ + public Builder customLearnedRoutePriority(@Nullable Output customLearnedRoutePriority) { + $.customLearnedRoutePriority = customLearnedRoutePriority; + return this; + } + + /** + * @param customLearnedRoutePriority The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + * + * @return builder + * + */ + public Builder customLearnedRoutePriority(Integer customLearnedRoutePriority) { + return customLearnedRoutePriority(Output.of(customLearnedRoutePriority)); + } + /** * @param enable The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -766,6 +900,74 @@ public Builder enableIpv6(Boolean enableIpv6) { return enableIpv6(Output.of(enableIpv6)); } + /** + * @param exportPolicies routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + * @return builder + * + */ + public Builder exportPolicies(@Nullable Output> exportPolicies) { + $.exportPolicies = exportPolicies; + return this; + } + + /** + * @param exportPolicies routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + * @return builder + * + */ + public Builder exportPolicies(List exportPolicies) { + return exportPolicies(Output.of(exportPolicies)); + } + + /** + * @param exportPolicies routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + * + * @return builder + * + */ + public Builder exportPolicies(String... exportPolicies) { + return exportPolicies(List.of(exportPolicies)); + } + + /** + * @param importPolicies routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + * @return builder + * + */ + public Builder importPolicies(@Nullable Output> importPolicies) { + $.importPolicies = importPolicies; + return this; + } + + /** + * @param importPolicies routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + * @return builder + * + */ + public Builder importPolicies(List importPolicies) { + return importPolicies(Output.of(importPolicies)); + } + + /** + * @param importPolicies routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + * + * @return builder + * + */ + public Builder importPolicies(String... importPolicies) { + return importPolicies(List.of(importPolicies)); + } + /** * @param interface_ Name of the interface the BGP peer is associated with. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyState.java new file mode 100644 index 0000000000..380f9855f9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyState.java @@ -0,0 +1,310 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermArgs; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RouterRoutePolicyState extends com.pulumi.resources.ResourceArgs { + + public static final RouterRoutePolicyState Empty = new RouterRoutePolicyState(); + + /** + * The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + * + */ + @Import(name="fingerprint") + private @Nullable Output fingerprint; + + /** + * @return The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + * + */ + public Optional> fingerprint() { + return Optional.ofNullable(this.fingerprint); + } + + /** + * Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + @Import(name="project") + private @Nullable Output project; + + public Optional> project() { + return Optional.ofNullable(this.project); + } + + /** + * Region where the router and NAT reside. + * + */ + @Import(name="region") + private @Nullable Output region; + + /** + * @return Region where the router and NAT reside. + * + */ + public Optional> region() { + return Optional.ofNullable(this.region); + } + + /** + * The name of the Cloud Router in which this route policy will be configured. + * + */ + @Import(name="router") + private @Nullable Output router; + + /** + * @return The name of the Cloud Router in which this route policy will be configured. + * + */ + public Optional> router() { + return Optional.ofNullable(this.router); + } + + /** + * List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + */ + @Import(name="terms") + private @Nullable Output> terms; + + /** + * @return List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + */ + public Optional>> terms() { + return Optional.ofNullable(this.terms); + } + + /** + * This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + */ + @Import(name="type") + private @Nullable Output type; + + /** + * @return This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + */ + public Optional> type() { + return Optional.ofNullable(this.type); + } + + private RouterRoutePolicyState() {} + + private RouterRoutePolicyState(RouterRoutePolicyState $) { + this.fingerprint = $.fingerprint; + this.name = $.name; + this.project = $.project; + this.region = $.region; + this.router = $.router; + this.terms = $.terms; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RouterRoutePolicyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RouterRoutePolicyState $; + + public Builder() { + $ = new RouterRoutePolicyState(); + } + + public Builder(RouterRoutePolicyState defaults) { + $ = new RouterRoutePolicyState(Objects.requireNonNull(defaults)); + } + + /** + * @param fingerprint The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + * + * @return builder + * + */ + public Builder fingerprint(@Nullable Output fingerprint) { + $.fingerprint = fingerprint; + return this; + } + + /** + * @param fingerprint The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + * + * @return builder + * + */ + public Builder fingerprint(String fingerprint) { + return fingerprint(Output.of(fingerprint)); + } + + /** + * @param name Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public Builder project(@Nullable Output project) { + $.project = project; + return this; + } + + public Builder project(String project) { + return project(Output.of(project)); + } + + /** + * @param region Region where the router and NAT reside. + * + * @return builder + * + */ + public Builder region(@Nullable Output region) { + $.region = region; + return this; + } + + /** + * @param region Region where the router and NAT reside. + * + * @return builder + * + */ + public Builder region(String region) { + return region(Output.of(region)); + } + + /** + * @param router The name of the Cloud Router in which this route policy will be configured. + * + * @return builder + * + */ + public Builder router(@Nullable Output router) { + $.router = router; + return this; + } + + /** + * @param router The name of the Cloud Router in which this route policy will be configured. + * + * @return builder + * + */ + public Builder router(String router) { + return router(Output.of(router)); + } + + /** + * @param terms List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + * @return builder + * + */ + public Builder terms(@Nullable Output> terms) { + $.terms = terms; + return this; + } + + /** + * @param terms List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + * @return builder + * + */ + public Builder terms(List terms) { + return terms(Output.of(terms)); + } + + /** + * @param terms List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + * + * @return builder + * + */ + public Builder terms(RouterRoutePolicyTermArgs... terms) { + return terms(List.of(terms)); + } + + /** + * @param type This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + * @return builder + * + */ + public Builder type(@Nullable Output type) { + $.type = type; + return this; + } + + /** + * @param type This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public RouterRoutePolicyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermActionArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermActionArgs.java new file mode 100644 index 0000000000..9f07502125 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermActionArgs.java @@ -0,0 +1,218 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RouterRoutePolicyTermActionArgs extends com.pulumi.resources.ResourceArgs { + + public static final RouterRoutePolicyTermActionArgs Empty = new RouterRoutePolicyTermActionArgs(); + + /** + * Description of the expression + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the expression + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Textual representation of an expression in Common Expression + * Language syntax. + * + */ + @Import(name="expression", required=true) + private Output expression; + + /** + * @return Textual representation of an expression in Common Expression + * Language syntax. + * + */ + public Output expression() { + return this.expression; + } + + /** + * String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * *** + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * *** + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Title for the expression, i.e. a short string describing its + * purpose. + * + */ + @Import(name="title") + private @Nullable Output title; + + /** + * @return Title for the expression, i.e. a short string describing its + * purpose. + * + */ + public Optional> title() { + return Optional.ofNullable(this.title); + } + + private RouterRoutePolicyTermActionArgs() {} + + private RouterRoutePolicyTermActionArgs(RouterRoutePolicyTermActionArgs $) { + this.description = $.description; + this.expression = $.expression; + this.location = $.location; + this.title = $.title; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RouterRoutePolicyTermActionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RouterRoutePolicyTermActionArgs $; + + public Builder() { + $ = new RouterRoutePolicyTermActionArgs(); + } + + public Builder(RouterRoutePolicyTermActionArgs defaults) { + $ = new RouterRoutePolicyTermActionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of the expression + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the expression + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param expression Textual representation of an expression in Common Expression + * Language syntax. + * + * @return builder + * + */ + public Builder expression(Output expression) { + $.expression = expression; + return this; + } + + /** + * @param expression Textual representation of an expression in Common Expression + * Language syntax. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + /** + * @param location String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * *** + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * *** + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param title Title for the expression, i.e. a short string describing its + * purpose. + * + * @return builder + * + */ + public Builder title(@Nullable Output title) { + $.title = title; + return this; + } + + /** + * @param title Title for the expression, i.e. a short string describing its + * purpose. + * + * @return builder + * + */ + public Builder title(String title) { + return title(Output.of(title)); + } + + public RouterRoutePolicyTermActionArgs build() { + if ($.expression == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyTermActionArgs", "expression"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermArgs.java new file mode 100644 index 0000000000..e0acb506a6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermArgs.java @@ -0,0 +1,183 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermActionArgs; +import com.pulumi.gcp.compute.inputs.RouterRoutePolicyTermMatchArgs; +import java.lang.Integer; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RouterRoutePolicyTermArgs extends com.pulumi.resources.ResourceArgs { + + public static final RouterRoutePolicyTermArgs Empty = new RouterRoutePolicyTermArgs(); + + /** + * 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + * + */ + @Import(name="actions") + private @Nullable Output> actions; + + /** + * @return 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + * + */ + public Optional>> actions() { + return Optional.ofNullable(this.actions); + } + + /** + * CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + * + */ + @Import(name="match") + private @Nullable Output match; + + /** + * @return CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + * + */ + public Optional> match() { + return Optional.ofNullable(this.match); + } + + /** + * The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + * + */ + @Import(name="priority", required=true) + private Output priority; + + /** + * @return The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + * + */ + public Output priority() { + return this.priority; + } + + private RouterRoutePolicyTermArgs() {} + + private RouterRoutePolicyTermArgs(RouterRoutePolicyTermArgs $) { + this.actions = $.actions; + this.match = $.match; + this.priority = $.priority; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RouterRoutePolicyTermArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RouterRoutePolicyTermArgs $; + + public Builder() { + $ = new RouterRoutePolicyTermArgs(); + } + + public Builder(RouterRoutePolicyTermArgs defaults) { + $ = new RouterRoutePolicyTermArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param actions 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + * + * @return builder + * + */ + public Builder actions(@Nullable Output> actions) { + $.actions = actions; + return this; + } + + /** + * @param actions 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + * + * @return builder + * + */ + public Builder actions(List actions) { + return actions(Output.of(actions)); + } + + /** + * @param actions 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + * + * @return builder + * + */ + public Builder actions(RouterRoutePolicyTermActionArgs... actions) { + return actions(List.of(actions)); + } + + /** + * @param match CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + * + * @return builder + * + */ + public Builder match(@Nullable Output match) { + $.match = match; + return this; + } + + /** + * @param match CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + * + * @return builder + * + */ + public Builder match(RouterRoutePolicyTermMatchArgs match) { + return match(Output.of(match)); + } + + /** + * @param priority The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + * + * @return builder + * + */ + public Builder priority(Output priority) { + $.priority = priority; + return this; + } + + /** + * @param priority The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + * + * @return builder + * + */ + public Builder priority(Integer priority) { + return priority(Output.of(priority)); + } + + public RouterRoutePolicyTermArgs build() { + if ($.priority == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyTermArgs", "priority"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermMatchArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermMatchArgs.java new file mode 100644 index 0000000000..ceb7f6c0da --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/RouterRoutePolicyTermMatchArgs.java @@ -0,0 +1,198 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class RouterRoutePolicyTermMatchArgs extends com.pulumi.resources.ResourceArgs { + + public static final RouterRoutePolicyTermMatchArgs Empty = new RouterRoutePolicyTermMatchArgs(); + + /** + * Description of the expression + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Description of the expression + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Textual representation of an expression in Common Expression Language syntax. + * + */ + @Import(name="expression", required=true) + private Output expression; + + /** + * @return Textual representation of an expression in Common Expression Language syntax. + * + */ + public Output expression() { + return this.expression; + } + + /** + * String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Title for the expression, i.e. a short string describing its purpose. + * + */ + @Import(name="title") + private @Nullable Output title; + + /** + * @return Title for the expression, i.e. a short string describing its purpose. + * + */ + public Optional> title() { + return Optional.ofNullable(this.title); + } + + private RouterRoutePolicyTermMatchArgs() {} + + private RouterRoutePolicyTermMatchArgs(RouterRoutePolicyTermMatchArgs $) { + this.description = $.description; + this.expression = $.expression; + this.location = $.location; + this.title = $.title; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RouterRoutePolicyTermMatchArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RouterRoutePolicyTermMatchArgs $; + + public Builder() { + $ = new RouterRoutePolicyTermMatchArgs(); + } + + public Builder(RouterRoutePolicyTermMatchArgs defaults) { + $ = new RouterRoutePolicyTermMatchArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description Description of the expression + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Description of the expression + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param expression Textual representation of an expression in Common Expression Language syntax. + * + * @return builder + * + */ + public Builder expression(Output expression) { + $.expression = expression; + return this; + } + + /** + * @param expression Textual representation of an expression in Common Expression Language syntax. + * + * @return builder + * + */ + public Builder expression(String expression) { + return expression(Output.of(expression)); + } + + /** + * @param location String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param title Title for the expression, i.e. a short string describing its purpose. + * + * @return builder + * + */ + public Builder title(@Nullable Output title) { + $.title = title; + return this; + } + + /** + * @param title Title for the expression, i.e. a short string describing its purpose. + * + * @return builder + * + */ + public Builder title(String title) { + return title(Output.of(title)); + } + + public RouterRoutePolicyTermMatchArgs build() { + if ($.expression == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyTermMatchArgs", "expression"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ServiceAttachmentState.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ServiceAttachmentState.java index c7d60f7aae..e249263205 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ServiceAttachmentState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/inputs/ServiceAttachmentState.java @@ -274,16 +274,14 @@ public Optional> selfLink() { } /** - * The URL of a forwarding rule that represents the service identified by - * this service attachment. + * The URL of a service serving the endpoint identified by this service attachment. * */ @Import(name="targetService") private @Nullable Output targetService; /** - * @return The URL of a forwarding rule that represents the service identified by - * this service attachment. + * @return The URL of a service serving the endpoint identified by this service attachment. * */ public Optional> targetService() { @@ -725,8 +723,7 @@ public Builder selfLink(String selfLink) { } /** - * @param targetService The URL of a forwarding rule that represents the service identified by - * this service attachment. + * @param targetService The URL of a service serving the endpoint identified by this service attachment. * * @return builder * @@ -737,8 +734,7 @@ public Builder targetService(@Nullable Output targetService) { } /** - * @param targetService The URL of a forwarding rule that represents the service identified by - * this service attachment. + * @param targetService The URL of a service serving the endpoint identified by this service attachment. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/BackendServiceSecuritySettings.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/BackendServiceSecuritySettings.java index 5764d68a54..2eca3a2915 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/BackendServiceSecuritySettings.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/BackendServiceSecuritySettings.java @@ -4,37 +4,59 @@ package com.pulumi.gcp.compute.outputs; import com.pulumi.core.annotations.CustomType; -import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.outputs.BackendServiceSecuritySettingsAwsV4Authentication; import java.lang.String; import java.util.List; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; @CustomType public final class BackendServiceSecuritySettings { + /** + * @return The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + * + */ + private @Nullable BackendServiceSecuritySettingsAwsV4Authentication awsV4Authentication; /** * @return ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect * configuration unless it is attached to a backend service resource. * */ - private String clientTlsPolicy; + private @Nullable String clientTlsPolicy; /** * @return A list of alternate names to verify the subject identity in the certificate. * If specified, the client will verify that the server certificate's subject * alt name matches one of the specified values. * */ - private List subjectAltNames; + private @Nullable List subjectAltNames; private BackendServiceSecuritySettings() {} + /** + * @return The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * <a name="nested_aws_v4_authentication"></a>The `aws_v4_authentication` block supports: + * + */ + public Optional awsV4Authentication() { + return Optional.ofNullable(this.awsV4Authentication); + } /** * @return ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect * configuration unless it is attached to a backend service resource. * */ - public String clientTlsPolicy() { - return this.clientTlsPolicy; + public Optional clientTlsPolicy() { + return Optional.ofNullable(this.clientTlsPolicy); } /** * @return A list of alternate names to verify the subject identity in the certificate. @@ -43,7 +65,7 @@ public String clientTlsPolicy() { * */ public List subjectAltNames() { - return this.subjectAltNames; + return this.subjectAltNames == null ? List.of() : this.subjectAltNames; } public static Builder builder() { @@ -55,28 +77,32 @@ public static Builder builder(BackendServiceSecuritySettings defaults) { } @CustomType.Builder public static final class Builder { - private String clientTlsPolicy; - private List subjectAltNames; + private @Nullable BackendServiceSecuritySettingsAwsV4Authentication awsV4Authentication; + private @Nullable String clientTlsPolicy; + private @Nullable List subjectAltNames; public Builder() {} public Builder(BackendServiceSecuritySettings defaults) { Objects.requireNonNull(defaults); + this.awsV4Authentication = defaults.awsV4Authentication; this.clientTlsPolicy = defaults.clientTlsPolicy; this.subjectAltNames = defaults.subjectAltNames; } @CustomType.Setter - public Builder clientTlsPolicy(String clientTlsPolicy) { - if (clientTlsPolicy == null) { - throw new MissingRequiredPropertyException("BackendServiceSecuritySettings", "clientTlsPolicy"); - } + public Builder awsV4Authentication(@Nullable BackendServiceSecuritySettingsAwsV4Authentication awsV4Authentication) { + + this.awsV4Authentication = awsV4Authentication; + return this; + } + @CustomType.Setter + public Builder clientTlsPolicy(@Nullable String clientTlsPolicy) { + this.clientTlsPolicy = clientTlsPolicy; return this; } @CustomType.Setter - public Builder subjectAltNames(List subjectAltNames) { - if (subjectAltNames == null) { - throw new MissingRequiredPropertyException("BackendServiceSecuritySettings", "subjectAltNames"); - } + public Builder subjectAltNames(@Nullable List subjectAltNames) { + this.subjectAltNames = subjectAltNames; return this; } @@ -85,6 +111,7 @@ public Builder subjectAltNames(String... subjectAltNames) { } public BackendServiceSecuritySettings build() { final var _resultValue = new BackendServiceSecuritySettings(); + _resultValue.awsV4Authentication = awsV4Authentication; _resultValue.clientTlsPolicy = clientTlsPolicy; _resultValue.subjectAltNames = subjectAltNames; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/BackendServiceSecuritySettingsAwsV4Authentication.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/BackendServiceSecuritySettingsAwsV4Authentication.java new file mode 100644 index 0000000000..2a6c0a8d77 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/BackendServiceSecuritySettingsAwsV4Authentication.java @@ -0,0 +1,124 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class BackendServiceSecuritySettingsAwsV4Authentication { + /** + * @return The access key used for s3 bucket authentication. + * Required 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. + * + */ + private @Nullable String accessKey; + /** + * @return The identifier of an access key used for s3 bucket authentication. + * + */ + private @Nullable String accessKeyId; + /** + * @return The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + */ + private @Nullable String accessKeyVersion; + /** + * @return 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + */ + private @Nullable String originRegion; + + private BackendServiceSecuritySettingsAwsV4Authentication() {} + /** + * @return The access key used for s3 bucket authentication. + * Required 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. + * + */ + public Optional accessKey() { + return Optional.ofNullable(this.accessKey); + } + /** + * @return The identifier of an access key used for s3 bucket authentication. + * + */ + public Optional accessKeyId() { + return Optional.ofNullable(this.accessKeyId); + } + /** + * @return The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + */ + public Optional accessKeyVersion() { + return Optional.ofNullable(this.accessKeyVersion); + } + /** + * @return 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + */ + public Optional originRegion() { + return Optional.ofNullable(this.originRegion); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(BackendServiceSecuritySettingsAwsV4Authentication defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String accessKey; + private @Nullable String accessKeyId; + private @Nullable String accessKeyVersion; + private @Nullable String originRegion; + public Builder() {} + public Builder(BackendServiceSecuritySettingsAwsV4Authentication defaults) { + Objects.requireNonNull(defaults); + this.accessKey = defaults.accessKey; + this.accessKeyId = defaults.accessKeyId; + this.accessKeyVersion = defaults.accessKeyVersion; + this.originRegion = defaults.originRegion; + } + + @CustomType.Setter + public Builder accessKey(@Nullable String accessKey) { + + this.accessKey = accessKey; + return this; + } + @CustomType.Setter + public Builder accessKeyId(@Nullable String accessKeyId) { + + this.accessKeyId = accessKeyId; + return this; + } + @CustomType.Setter + public Builder accessKeyVersion(@Nullable String accessKeyVersion) { + + this.accessKeyVersion = accessKeyVersion; + return this; + } + @CustomType.Setter + public Builder originRegion(@Nullable String originRegion) { + + this.originRegion = originRegion; + return this; + } + public BackendServiceSecuritySettingsAwsV4Authentication build() { + final var _resultValue = new BackendServiceSecuritySettingsAwsV4Authentication(); + _resultValue.accessKey = accessKey; + _resultValue.accessKeyId = accessKeyId; + _resultValue.accessKeyVersion = accessKeyVersion; + _resultValue.originRegion = originRegion; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetBackendServiceSecuritySetting.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetBackendServiceSecuritySetting.java index b5441785ab..b36025a27f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetBackendServiceSecuritySetting.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetBackendServiceSecuritySetting.java @@ -5,12 +5,19 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.outputs.GetBackendServiceSecuritySettingAwsV4Authentication; import java.lang.String; import java.util.List; import java.util.Objects; @CustomType public final class GetBackendServiceSecuritySetting { + /** + * @return The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * + */ + private List awsV4Authentications; /** * @return ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect @@ -27,6 +34,14 @@ public final class GetBackendServiceSecuritySetting { private List subjectAltNames; private GetBackendServiceSecuritySetting() {} + /** + * @return The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * + */ + public List awsV4Authentications() { + return this.awsV4Authentications; + } /** * @return ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect @@ -55,15 +70,28 @@ public static Builder builder(GetBackendServiceSecuritySetting defaults) { } @CustomType.Builder public static final class Builder { + private List awsV4Authentications; private String clientTlsPolicy; private List subjectAltNames; public Builder() {} public Builder(GetBackendServiceSecuritySetting defaults) { Objects.requireNonNull(defaults); + this.awsV4Authentications = defaults.awsV4Authentications; this.clientTlsPolicy = defaults.clientTlsPolicy; this.subjectAltNames = defaults.subjectAltNames; } + @CustomType.Setter + public Builder awsV4Authentications(List awsV4Authentications) { + if (awsV4Authentications == null) { + throw new MissingRequiredPropertyException("GetBackendServiceSecuritySetting", "awsV4Authentications"); + } + this.awsV4Authentications = awsV4Authentications; + return this; + } + public Builder awsV4Authentications(GetBackendServiceSecuritySettingAwsV4Authentication... awsV4Authentications) { + return awsV4Authentications(List.of(awsV4Authentications)); + } @CustomType.Setter public Builder clientTlsPolicy(String clientTlsPolicy) { if (clientTlsPolicy == null) { @@ -85,6 +113,7 @@ public Builder subjectAltNames(String... subjectAltNames) { } public GetBackendServiceSecuritySetting build() { final var _resultValue = new GetBackendServiceSecuritySetting(); + _resultValue.awsV4Authentications = awsV4Authentications; _resultValue.clientTlsPolicy = clientTlsPolicy; _resultValue.subjectAltNames = subjectAltNames; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetBackendServiceSecuritySettingAwsV4Authentication.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetBackendServiceSecuritySettingAwsV4Authentication.java new file mode 100644 index 0000000000..e5f622131c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetBackendServiceSecuritySettingAwsV4Authentication.java @@ -0,0 +1,131 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetBackendServiceSecuritySettingAwsV4Authentication { + /** + * @return The access key used for s3 bucket authentication. + * Required 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. + * + */ + private String accessKey; + /** + * @return The identifier of an access key used for s3 bucket authentication. + * + */ + private String accessKeyId; + /** + * @return The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + */ + private String accessKeyVersion; + /** + * @return 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + */ + private String originRegion; + + private GetBackendServiceSecuritySettingAwsV4Authentication() {} + /** + * @return The access key used for s3 bucket authentication. + * Required 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. + * + */ + public String accessKey() { + return this.accessKey; + } + /** + * @return The identifier of an access key used for s3 bucket authentication. + * + */ + public String accessKeyId() { + return this.accessKeyId; + } + /** + * @return The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + * + */ + public String accessKeyVersion() { + return this.accessKeyVersion; + } + /** + * @return 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + * + */ + public String originRegion() { + return this.originRegion; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetBackendServiceSecuritySettingAwsV4Authentication defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String accessKey; + private String accessKeyId; + private String accessKeyVersion; + private String originRegion; + public Builder() {} + public Builder(GetBackendServiceSecuritySettingAwsV4Authentication defaults) { + Objects.requireNonNull(defaults); + this.accessKey = defaults.accessKey; + this.accessKeyId = defaults.accessKeyId; + this.accessKeyVersion = defaults.accessKeyVersion; + this.originRegion = defaults.originRegion; + } + + @CustomType.Setter + public Builder accessKey(String accessKey) { + if (accessKey == null) { + throw new MissingRequiredPropertyException("GetBackendServiceSecuritySettingAwsV4Authentication", "accessKey"); + } + this.accessKey = accessKey; + return this; + } + @CustomType.Setter + public Builder accessKeyId(String accessKeyId) { + if (accessKeyId == null) { + throw new MissingRequiredPropertyException("GetBackendServiceSecuritySettingAwsV4Authentication", "accessKeyId"); + } + this.accessKeyId = accessKeyId; + return this; + } + @CustomType.Setter + public Builder accessKeyVersion(String accessKeyVersion) { + if (accessKeyVersion == null) { + throw new MissingRequiredPropertyException("GetBackendServiceSecuritySettingAwsV4Authentication", "accessKeyVersion"); + } + this.accessKeyVersion = accessKeyVersion; + return this; + } + @CustomType.Setter + public Builder originRegion(String originRegion) { + if (originRegion == null) { + throw new MissingRequiredPropertyException("GetBackendServiceSecuritySettingAwsV4Authentication", "originRegion"); + } + this.originRegion = originRegion; + return this; + } + public GetBackendServiceSecuritySettingAwsV4Authentication build() { + final var _resultValue = new GetBackendServiceSecuritySettingAwsV4Authentication(); + _resultValue.accessKey = accessKey; + _resultValue.accessKeyId = accessKeyId; + _resultValue.accessKeyVersion = accessKeyVersion; + _resultValue.originRegion = originRegion; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceBootDiskInitializeParam.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceBootDiskInitializeParam.java index 2df74ce2d5..0f5761fa4f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceBootDiskInitializeParam.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/GetInstanceBootDiskInitializeParam.java @@ -49,6 +49,11 @@ public final class GetInstanceBootDiskInitializeParam { * */ private Integer size; + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + private String storagePool; /** * @return The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. * @@ -105,6 +110,13 @@ public Map resourceManagerTags() { public Integer size() { return this.size; } + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + public String storagePool() { + return this.storagePool; + } /** * @return The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. * @@ -129,6 +141,7 @@ public static final class Builder { private Integer provisionedThroughput; private Map resourceManagerTags; private Integer size; + private String storagePool; private String type; public Builder() {} public Builder(GetInstanceBootDiskInitializeParam defaults) { @@ -140,6 +153,7 @@ public Builder(GetInstanceBootDiskInitializeParam defaults) { this.provisionedThroughput = defaults.provisionedThroughput; this.resourceManagerTags = defaults.resourceManagerTags; this.size = defaults.size; + this.storagePool = defaults.storagePool; this.type = defaults.type; } @@ -200,6 +214,14 @@ public Builder size(Integer size) { return this; } @CustomType.Setter + public Builder storagePool(String storagePool) { + if (storagePool == null) { + throw new MissingRequiredPropertyException("GetInstanceBootDiskInitializeParam", "storagePool"); + } + this.storagePool = storagePool; + return this; + } + @CustomType.Setter public Builder type(String type) { if (type == null) { throw new MissingRequiredPropertyException("GetInstanceBootDiskInitializeParam", "type"); @@ -216,6 +238,7 @@ public GetInstanceBootDiskInitializeParam build() { _resultValue.provisionedThroughput = provisionedThroughput; _resultValue.resourceManagerTags = resourceManagerTags; _resultValue.size = size; + _resultValue.storagePool = storagePool; _resultValue.type = type; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceBootDiskInitializeParams.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceBootDiskInitializeParams.java index 20f1873baa..2d763a1938 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceBootDiskInitializeParams.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceBootDiskInitializeParams.java @@ -73,6 +73,14 @@ public final class InstanceBootDiskInitializeParams { * */ private @Nullable Integer size; + /** + * @return The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + * + */ + private @Nullable String storagePool; /** * @return The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. * @@ -152,6 +160,16 @@ public Map resourceManagerTags() { public Optional size() { return Optional.ofNullable(this.size); } + /** + * @return The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + * + */ + public Optional storagePool() { + return Optional.ofNullable(this.storagePool); + } /** * @return The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. * @@ -176,6 +194,7 @@ public static final class Builder { private @Nullable Integer provisionedThroughput; private @Nullable Map resourceManagerTags; private @Nullable Integer size; + private @Nullable String storagePool; private @Nullable String type; public Builder() {} public Builder(InstanceBootDiskInitializeParams defaults) { @@ -187,6 +206,7 @@ public Builder(InstanceBootDiskInitializeParams defaults) { this.provisionedThroughput = defaults.provisionedThroughput; this.resourceManagerTags = defaults.resourceManagerTags; this.size = defaults.size; + this.storagePool = defaults.storagePool; this.type = defaults.type; } @@ -233,6 +253,12 @@ public Builder size(@Nullable Integer size) { return this; } @CustomType.Setter + public Builder storagePool(@Nullable String storagePool) { + + this.storagePool = storagePool; + return this; + } + @CustomType.Setter public Builder type(@Nullable String type) { this.type = type; @@ -247,6 +273,7 @@ public InstanceBootDiskInitializeParams build() { _resultValue.provisionedThroughput = provisionedThroughput; _resultValue.resourceManagerTags = resourceManagerTags; _resultValue.size = size; + _resultValue.storagePool = storagePool; _resultValue.type = type; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromMachineImageBootDiskInitializeParams.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromMachineImageBootDiskInitializeParams.java index ea285765b6..579a68d601 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromMachineImageBootDiskInitializeParams.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromMachineImageBootDiskInitializeParams.java @@ -50,6 +50,11 @@ public final class InstanceFromMachineImageBootDiskInitializeParams { * */ private @Nullable Integer size; + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + private @Nullable String storagePool; /** * @return The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * @@ -106,6 +111,13 @@ public Map resourceManagerTags() { public Optional size() { return Optional.ofNullable(this.size); } + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + public Optional storagePool() { + return Optional.ofNullable(this.storagePool); + } /** * @return The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * @@ -130,6 +142,7 @@ public static final class Builder { private @Nullable Integer provisionedThroughput; private @Nullable Map resourceManagerTags; private @Nullable Integer size; + private @Nullable String storagePool; private @Nullable String type; public Builder() {} public Builder(InstanceFromMachineImageBootDiskInitializeParams defaults) { @@ -141,6 +154,7 @@ public Builder(InstanceFromMachineImageBootDiskInitializeParams defaults) { this.provisionedThroughput = defaults.provisionedThroughput; this.resourceManagerTags = defaults.resourceManagerTags; this.size = defaults.size; + this.storagePool = defaults.storagePool; this.type = defaults.type; } @@ -187,6 +201,12 @@ public Builder size(@Nullable Integer size) { return this; } @CustomType.Setter + public Builder storagePool(@Nullable String storagePool) { + + this.storagePool = storagePool; + return this; + } + @CustomType.Setter public Builder type(@Nullable String type) { this.type = type; @@ -201,6 +221,7 @@ public InstanceFromMachineImageBootDiskInitializeParams build() { _resultValue.provisionedThroughput = provisionedThroughput; _resultValue.resourceManagerTags = resourceManagerTags; _resultValue.size = size; + _resultValue.storagePool = storagePool; _resultValue.type = type; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromTemplateBootDiskInitializeParams.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromTemplateBootDiskInitializeParams.java index c3b5ed0354..30a98894d4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromTemplateBootDiskInitializeParams.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/InstanceFromTemplateBootDiskInitializeParams.java @@ -50,6 +50,11 @@ public final class InstanceFromTemplateBootDiskInitializeParams { * */ private @Nullable Integer size; + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + private @Nullable String storagePool; /** * @return The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * @@ -106,6 +111,13 @@ public Map resourceManagerTags() { public Optional size() { return Optional.ofNullable(this.size); } + /** + * @return The URL of the storage pool in which the new disk is created + * + */ + public Optional storagePool() { + return Optional.ofNullable(this.storagePool); + } /** * @return The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. * @@ -130,6 +142,7 @@ public static final class Builder { private @Nullable Integer provisionedThroughput; private @Nullable Map resourceManagerTags; private @Nullable Integer size; + private @Nullable String storagePool; private @Nullable String type; public Builder() {} public Builder(InstanceFromTemplateBootDiskInitializeParams defaults) { @@ -141,6 +154,7 @@ public Builder(InstanceFromTemplateBootDiskInitializeParams defaults) { this.provisionedThroughput = defaults.provisionedThroughput; this.resourceManagerTags = defaults.resourceManagerTags; this.size = defaults.size; + this.storagePool = defaults.storagePool; this.type = defaults.type; } @@ -187,6 +201,12 @@ public Builder size(@Nullable Integer size) { return this; } @CustomType.Setter + public Builder storagePool(@Nullable String storagePool) { + + this.storagePool = storagePool; + return this; + } + @CustomType.Setter public Builder type(@Nullable String type) { this.type = type; @@ -201,6 +221,7 @@ public InstanceFromTemplateBootDiskInitializeParams build() { _resultValue.provisionedThroughput = provisionedThroughput; _resultValue.resourceManagerTags = resourceManagerTags; _resultValue.size = size; + _resultValue.storagePool = storagePool; _resultValue.type = type; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestRequestedRunDuration.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestRequestedRunDuration.java new file mode 100644 index 0000000000..b07b28dc90 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestRequestedRunDuration.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestRequestedRunDuration { + /** + * @return 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. + * + */ + private @Nullable Integer nanos; + /** + * @return 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 + * + */ + private String seconds; + + private ResizeRequestRequestedRunDuration() {} + /** + * @return 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. + * + */ + public Optional nanos() { + return Optional.ofNullable(this.nanos); + } + /** + * @return 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 + * + */ + public String seconds() { + return this.seconds; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestRequestedRunDuration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Integer nanos; + private String seconds; + public Builder() {} + public Builder(ResizeRequestRequestedRunDuration defaults) { + Objects.requireNonNull(defaults); + this.nanos = defaults.nanos; + this.seconds = defaults.seconds; + } + + @CustomType.Setter + public Builder nanos(@Nullable Integer nanos) { + + this.nanos = nanos; + return this; + } + @CustomType.Setter + public Builder seconds(String seconds) { + if (seconds == null) { + throw new MissingRequiredPropertyException("ResizeRequestRequestedRunDuration", "seconds"); + } + this.seconds = seconds; + return this; + } + public ResizeRequestRequestedRunDuration build() { + final var _resultValue = new ResizeRequestRequestedRunDuration(); + _resultValue.nanos = nanos; + _resultValue.seconds = seconds; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatus.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatus.java new file mode 100644 index 0000000000..1b8487f4a4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatus.java @@ -0,0 +1,93 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusError; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttempt; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatus { + /** + * @return (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + private @Nullable List errors; + /** + * @return (Output) + * [Output only] Information 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. + * Structure is documented below. + * + */ + private @Nullable List lastAttempts; + + private ResizeRequestStatus() {} + /** + * @return (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + /** + * @return (Output) + * [Output only] Information 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. + * Structure is documented below. + * + */ + public List lastAttempts() { + return this.lastAttempts == null ? List.of() : this.lastAttempts; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatus defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + private @Nullable List lastAttempts; + public Builder() {} + public Builder(ResizeRequestStatus defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + this.lastAttempts = defaults.lastAttempts; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(ResizeRequestStatusError... errors) { + return errors(List.of(errors)); + } + @CustomType.Setter + public Builder lastAttempts(@Nullable List lastAttempts) { + + this.lastAttempts = lastAttempts; + return this; + } + public Builder lastAttempts(ResizeRequestStatusLastAttempt... lastAttempts) { + return lastAttempts(List.of(lastAttempts)); + } + public ResizeRequestStatus build() { + final var _resultValue = new ResizeRequestStatus(); + _resultValue.errors = errors; + _resultValue.lastAttempts = lastAttempts; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusError.java new file mode 100644 index 0000000000..0acba6f307 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusError.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusErrorError; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusError { + /** + * @return (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + private @Nullable List errors; + + private ResizeRequestStatusError() {} + /** + * @return (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + public Builder() {} + public Builder(ResizeRequestStatusError defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(ResizeRequestStatusErrorError... errors) { + return errors(List.of(errors)); + } + public ResizeRequestStatusError build() { + final var _resultValue = new ResizeRequestStatusError(); + _resultValue.errors = errors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorError.java new file mode 100644 index 0000000000..2ed0d5a43f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorError.java @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusErrorErrorErrorDetail; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusErrorError { + /** + * @return (Output) + * [Output Only] The error type identifier for this error. + * + */ + private @Nullable String code; + /** + * @return (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + private @Nullable List errorDetails; + /** + * @return (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + private @Nullable String location; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private ResizeRequestStatusErrorError() {} + /** + * @return (Output) + * [Output Only] The error type identifier for this error. + * + */ + public Optional code() { + return Optional.ofNullable(this.code); + } + /** + * @return (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + public List errorDetails() { + return this.errorDetails == null ? List.of() : this.errorDetails; + } + /** + * @return (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional location() { + return Optional.ofNullable(this.location); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusErrorError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String code; + private @Nullable List errorDetails; + private @Nullable String location; + private @Nullable String message; + public Builder() {} + public Builder(ResizeRequestStatusErrorError defaults) { + Objects.requireNonNull(defaults); + this.code = defaults.code; + this.errorDetails = defaults.errorDetails; + this.location = defaults.location; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder code(@Nullable String code) { + + this.code = code; + return this; + } + @CustomType.Setter + public Builder errorDetails(@Nullable List errorDetails) { + + this.errorDetails = errorDetails; + return this; + } + public Builder errorDetails(ResizeRequestStatusErrorErrorErrorDetail... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + @CustomType.Setter + public Builder location(@Nullable String location) { + + this.location = location; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public ResizeRequestStatusErrorError build() { + final var _resultValue = new ResizeRequestStatusErrorError(); + _resultValue.code = code; + _resultValue.errorDetails = errorDetails; + _resultValue.location = location; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetail.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetail.java new file mode 100644 index 0000000000..222bc8ac1c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetail.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusErrorErrorErrorDetailErrorInfo; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusErrorErrorErrorDetailHelp; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusErrorErrorErrorDetailQuotaInfo; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusErrorErrorErrorDetail { + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List errorInfos; + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List helps; + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List localizedMessages; + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List quotaInfos; + + private ResizeRequestStatusErrorErrorErrorDetail() {} + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List errorInfos() { + return this.errorInfos == null ? List.of() : this.errorInfos; + } + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List helps() { + return this.helps == null ? List.of() : this.helps; + } + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List localizedMessages() { + return this.localizedMessages == null ? List.of() : this.localizedMessages; + } + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List quotaInfos() { + return this.quotaInfos == null ? List.of() : this.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetail defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errorInfos; + private @Nullable List helps; + private @Nullable List localizedMessages; + private @Nullable List quotaInfos; + public Builder() {} + public Builder(ResizeRequestStatusErrorErrorErrorDetail defaults) { + Objects.requireNonNull(defaults); + this.errorInfos = defaults.errorInfos; + this.helps = defaults.helps; + this.localizedMessages = defaults.localizedMessages; + this.quotaInfos = defaults.quotaInfos; + } + + @CustomType.Setter + public Builder errorInfos(@Nullable List errorInfos) { + + this.errorInfos = errorInfos; + return this; + } + public Builder errorInfos(ResizeRequestStatusErrorErrorErrorDetailErrorInfo... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + @CustomType.Setter + public Builder helps(@Nullable List helps) { + + this.helps = helps; + return this; + } + public Builder helps(ResizeRequestStatusErrorErrorErrorDetailHelp... helps) { + return helps(List.of(helps)); + } + @CustomType.Setter + public Builder localizedMessages(@Nullable List localizedMessages) { + + this.localizedMessages = localizedMessages; + return this; + } + public Builder localizedMessages(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + @CustomType.Setter + public Builder quotaInfos(@Nullable List quotaInfos) { + + this.quotaInfos = quotaInfos; + return this; + } + public Builder quotaInfos(ResizeRequestStatusErrorErrorErrorDetailQuotaInfo... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + public ResizeRequestStatusErrorErrorErrorDetail build() { + final var _resultValue = new ResizeRequestStatusErrorErrorErrorDetail(); + _resultValue.errorInfos = errorInfos; + _resultValue.helps = helps; + _resultValue.localizedMessages = localizedMessages; + _resultValue.quotaInfos = quotaInfos; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfo.java new file mode 100644 index 0000000000..4e8d341dfc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailErrorInfo.java @@ -0,0 +1,108 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusErrorErrorErrorDetailErrorInfo { + /** + * @return (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + private @Nullable String domain; + /** + * @return (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + private @Nullable Map metadatas; + /** + * @return (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + private @Nullable String reason; + + private ResizeRequestStatusErrorErrorErrorDetailErrorInfo() {} + /** + * @return (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + public Optional domain() { + return Optional.ofNullable(this.domain); + } + /** + * @return (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + public Map metadatas() { + return this.metadatas == null ? Map.of() : this.metadatas; + } + /** + * @return (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + public Optional reason() { + return Optional.ofNullable(this.reason); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailErrorInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String domain; + private @Nullable Map metadatas; + private @Nullable String reason; + public Builder() {} + public Builder(ResizeRequestStatusErrorErrorErrorDetailErrorInfo defaults) { + Objects.requireNonNull(defaults); + this.domain = defaults.domain; + this.metadatas = defaults.metadatas; + this.reason = defaults.reason; + } + + @CustomType.Setter + public Builder domain(@Nullable String domain) { + + this.domain = domain; + return this; + } + @CustomType.Setter + public Builder metadatas(@Nullable Map metadatas) { + + this.metadatas = metadatas; + return this; + } + @CustomType.Setter + public Builder reason(@Nullable String reason) { + + this.reason = reason; + return this; + } + public ResizeRequestStatusErrorErrorErrorDetailErrorInfo build() { + final var _resultValue = new ResizeRequestStatusErrorErrorErrorDetailErrorInfo(); + _resultValue.domain = domain; + _resultValue.metadatas = metadatas; + _resultValue.reason = reason; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailHelp.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailHelp.java new file mode 100644 index 0000000000..daa7eb6a3b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailHelp.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusErrorErrorErrorDetailHelpLink; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusErrorErrorErrorDetailHelp { + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List links; + + private ResizeRequestStatusErrorErrorErrorDetailHelp() {} + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List links() { + return this.links == null ? List.of() : this.links; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailHelp defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List links; + public Builder() {} + public Builder(ResizeRequestStatusErrorErrorErrorDetailHelp defaults) { + Objects.requireNonNull(defaults); + this.links = defaults.links; + } + + @CustomType.Setter + public Builder links(@Nullable List links) { + + this.links = links; + return this; + } + public Builder links(ResizeRequestStatusErrorErrorErrorDetailHelpLink... links) { + return links(List.of(links)); + } + public ResizeRequestStatusErrorErrorErrorDetailHelp build() { + final var _resultValue = new ResizeRequestStatusErrorErrorErrorDetailHelp(); + _resultValue.links = links; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailHelpLink.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailHelpLink.java new file mode 100644 index 0000000000..47c7c16d50 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailHelpLink.java @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusErrorErrorErrorDetailHelpLink { + /** + * @return An optional description of this resize-request. + * + */ + private @Nullable String description; + /** + * @return (Output) + * The URL of the link. + * + */ + private @Nullable String url; + + private ResizeRequestStatusErrorErrorErrorDetailHelpLink() {} + /** + * @return An optional description of this resize-request. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional url() { + return Optional.ofNullable(this.url); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailHelpLink defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private @Nullable String url; + public Builder() {} + public Builder(ResizeRequestStatusErrorErrorErrorDetailHelpLink defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.url = defaults.url; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder url(@Nullable String url) { + + this.url = url; + return this; + } + public ResizeRequestStatusErrorErrorErrorDetailHelpLink build() { + final var _resultValue = new ResizeRequestStatusErrorErrorErrorDetailHelpLink(); + _resultValue.description = description; + _resultValue.url = url; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.java new file mode 100644 index 0000000000..0302c9a608 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + private @Nullable String locale; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage() {} + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional locale() { + return Optional.ofNullable(this.locale); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String locale; + private @Nullable String message; + public Builder() {} + public Builder(ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage defaults) { + Objects.requireNonNull(defaults); + this.locale = defaults.locale; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder locale(@Nullable String locale) { + + this.locale = locale; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage build() { + final var _resultValue = new ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage(); + _resultValue.locale = locale; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.java new file mode 100644 index 0000000000..e5b5ad8129 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.java @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + private @Nullable Map dimensions; + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer futureLimit; + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer limit; + /** + * @return (Output) + * The name of the quota limit. + * + */ + private @Nullable String limitName; + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + private @Nullable String metricName; + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + private @Nullable String rolloutStatus; + + private ResizeRequestStatusErrorErrorErrorDetailQuotaInfo() {} + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Map dimensions() { + return this.dimensions == null ? Map.of() : this.dimensions; + } + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional limit() { + return Optional.ofNullable(this.limit); + } + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional limitName() { + return Optional.ofNullable(this.limitName); + } + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional metricName() { + return Optional.ofNullable(this.metricName); + } + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusErrorErrorErrorDetailQuotaInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Map dimensions; + private @Nullable Integer futureLimit; + private @Nullable Integer limit; + private @Nullable String limitName; + private @Nullable String metricName; + private @Nullable String rolloutStatus; + public Builder() {} + public Builder(ResizeRequestStatusErrorErrorErrorDetailQuotaInfo defaults) { + Objects.requireNonNull(defaults); + this.dimensions = defaults.dimensions; + this.futureLimit = defaults.futureLimit; + this.limit = defaults.limit; + this.limitName = defaults.limitName; + this.metricName = defaults.metricName; + this.rolloutStatus = defaults.rolloutStatus; + } + + @CustomType.Setter + public Builder dimensions(@Nullable Map dimensions) { + + this.dimensions = dimensions; + return this; + } + @CustomType.Setter + public Builder futureLimit(@Nullable Integer futureLimit) { + + this.futureLimit = futureLimit; + return this; + } + @CustomType.Setter + public Builder limit(@Nullable Integer limit) { + + this.limit = limit; + return this; + } + @CustomType.Setter + public Builder limitName(@Nullable String limitName) { + + this.limitName = limitName; + return this; + } + @CustomType.Setter + public Builder metricName(@Nullable String metricName) { + + this.metricName = metricName; + return this; + } + @CustomType.Setter + public Builder rolloutStatus(@Nullable String rolloutStatus) { + + this.rolloutStatus = rolloutStatus; + return this; + } + public ResizeRequestStatusErrorErrorErrorDetailQuotaInfo build() { + final var _resultValue = new ResizeRequestStatusErrorErrorErrorDetailQuotaInfo(); + _resultValue.dimensions = dimensions; + _resultValue.futureLimit = futureLimit; + _resultValue.limit = limit; + _resultValue.limitName = limitName; + _resultValue.metricName = metricName; + _resultValue.rolloutStatus = rolloutStatus; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttempt.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttempt.java new file mode 100644 index 0000000000..031797ef6b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttempt.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptError; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttempt { + /** + * @return (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + private @Nullable List errors; + + private ResizeRequestStatusLastAttempt() {} + /** + * @return (Output) + * [Output only] Fatal 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. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttempt defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + public Builder() {} + public Builder(ResizeRequestStatusLastAttempt defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(ResizeRequestStatusLastAttemptError... errors) { + return errors(List.of(errors)); + } + public ResizeRequestStatusLastAttempt build() { + final var _resultValue = new ResizeRequestStatusLastAttempt(); + _resultValue.errors = errors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptError.java new file mode 100644 index 0000000000..1f35f18eb3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptError.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptErrorError; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptError { + /** + * @return (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + private @Nullable List errors; + + private ResizeRequestStatusLastAttemptError() {} + /** + * @return (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + * + */ + public List errors() { + return this.errors == null ? List.of() : this.errors; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errors; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptError defaults) { + Objects.requireNonNull(defaults); + this.errors = defaults.errors; + } + + @CustomType.Setter + public Builder errors(@Nullable List errors) { + + this.errors = errors; + return this; + } + public Builder errors(ResizeRequestStatusLastAttemptErrorError... errors) { + return errors(List.of(errors)); + } + public ResizeRequestStatusLastAttemptError build() { + final var _resultValue = new ResizeRequestStatusLastAttemptError(); + _resultValue.errors = errors; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorError.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorError.java new file mode 100644 index 0000000000..f48865b981 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorError.java @@ -0,0 +1,135 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetail; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptErrorError { + /** + * @return (Output) + * [Output Only] The error type identifier for this error. + * + */ + private @Nullable String code; + /** + * @return (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + private @Nullable List errorDetails; + /** + * @return (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + private @Nullable String location; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private ResizeRequestStatusLastAttemptErrorError() {} + /** + * @return (Output) + * [Output Only] The error type identifier for this error. + * + */ + public Optional code() { + return Optional.ofNullable(this.code); + } + /** + * @return (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + * + */ + public List errorDetails() { + return this.errorDetails == null ? List.of() : this.errorDetails; + } + /** + * @return (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + * + */ + public Optional location() { + return Optional.ofNullable(this.location); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptErrorError defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String code; + private @Nullable List errorDetails; + private @Nullable String location; + private @Nullable String message; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptErrorError defaults) { + Objects.requireNonNull(defaults); + this.code = defaults.code; + this.errorDetails = defaults.errorDetails; + this.location = defaults.location; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder code(@Nullable String code) { + + this.code = code; + return this; + } + @CustomType.Setter + public Builder errorDetails(@Nullable List errorDetails) { + + this.errorDetails = errorDetails; + return this; + } + public Builder errorDetails(ResizeRequestStatusLastAttemptErrorErrorErrorDetail... errorDetails) { + return errorDetails(List.of(errorDetails)); + } + @CustomType.Setter + public Builder location(@Nullable String location) { + + this.location = location; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public ResizeRequestStatusLastAttemptErrorError build() { + final var _resultValue = new ResizeRequestStatusLastAttemptErrorError(); + _resultValue.code = code; + _resultValue.errorDetails = errorDetails; + _resultValue.location = location; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetail.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetail.java new file mode 100644 index 0000000000..2737cad156 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetail.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetail { + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List errorInfos; + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List helps; + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List localizedMessages; + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List quotaInfos; + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetail() {} + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List errorInfos() { + return this.errorInfos == null ? List.of() : this.errorInfos; + } + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List helps() { + return this.helps == null ? List.of() : this.helps; + } + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List localizedMessages() { + return this.localizedMessages == null ? List.of() : this.localizedMessages; + } + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List quotaInfos() { + return this.quotaInfos == null ? List.of() : this.quotaInfos; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetail defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List errorInfos; + private @Nullable List helps; + private @Nullable List localizedMessages; + private @Nullable List quotaInfos; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetail defaults) { + Objects.requireNonNull(defaults); + this.errorInfos = defaults.errorInfos; + this.helps = defaults.helps; + this.localizedMessages = defaults.localizedMessages; + this.quotaInfos = defaults.quotaInfos; + } + + @CustomType.Setter + public Builder errorInfos(@Nullable List errorInfos) { + + this.errorInfos = errorInfos; + return this; + } + public Builder errorInfos(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo... errorInfos) { + return errorInfos(List.of(errorInfos)); + } + @CustomType.Setter + public Builder helps(@Nullable List helps) { + + this.helps = helps; + return this; + } + public Builder helps(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp... helps) { + return helps(List.of(helps)); + } + @CustomType.Setter + public Builder localizedMessages(@Nullable List localizedMessages) { + + this.localizedMessages = localizedMessages; + return this; + } + public Builder localizedMessages(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage... localizedMessages) { + return localizedMessages(List.of(localizedMessages)); + } + @CustomType.Setter + public Builder quotaInfos(@Nullable List quotaInfos) { + + this.quotaInfos = quotaInfos; + return this; + } + public Builder quotaInfos(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo... quotaInfos) { + return quotaInfos(List.of(quotaInfos)); + } + public ResizeRequestStatusLastAttemptErrorErrorErrorDetail build() { + final var _resultValue = new ResizeRequestStatusLastAttemptErrorErrorErrorDetail(); + _resultValue.errorInfos = errorInfos; + _resultValue.helps = helps; + _resultValue.localizedMessages = localizedMessages; + _resultValue.quotaInfos = quotaInfos; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.java new file mode 100644 index 0000000000..4e8fcb1c90 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo.java @@ -0,0 +1,108 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + /** + * @return (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + private @Nullable String domain; + /** + * @return (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + private @Nullable Map metadatas; + /** + * @return (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + private @Nullable String reason; + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo() {} + /** + * @return (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + * + */ + public Optional domain() { + return Optional.ofNullable(this.domain); + } + /** + * @return (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + * + */ + public Map metadatas() { + return this.metadatas == null ? Map.of() : this.metadatas; + } + /** + * @return (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + * + */ + public Optional reason() { + return Optional.ofNullable(this.reason); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String domain; + private @Nullable Map metadatas; + private @Nullable String reason; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo defaults) { + Objects.requireNonNull(defaults); + this.domain = defaults.domain; + this.metadatas = defaults.metadatas; + this.reason = defaults.reason; + } + + @CustomType.Setter + public Builder domain(@Nullable String domain) { + + this.domain = domain; + return this; + } + @CustomType.Setter + public Builder metadatas(@Nullable Map metadatas) { + + this.metadatas = metadatas; + return this; + } + @CustomType.Setter + public Builder reason(@Nullable String reason) { + + this.reason = reason; + return this; + } + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo build() { + final var _resultValue = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo(); + _resultValue.domain = domain; + _resultValue.metadatas = metadatas; + _resultValue.reason = reason; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.java new file mode 100644 index 0000000000..6b8b8569e6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp.java @@ -0,0 +1,64 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.compute.outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + private @Nullable List links; + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp() {} + /** + * @return (Output) + * [Output Only] + * Structure is documented below. + * + */ + public List links() { + return this.links == null ? List.of() : this.links; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List links; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp defaults) { + Objects.requireNonNull(defaults); + this.links = defaults.links; + } + + @CustomType.Setter + public Builder links(@Nullable List links) { + + this.links = links; + return this; + } + public Builder links(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink... links) { + return links(List.of(links)); + } + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp build() { + final var _resultValue = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(); + _resultValue.links = links; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.java new file mode 100644 index 0000000000..c162af021b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink.java @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + /** + * @return An optional description of this resize-request. + * + */ + private @Nullable String description; + /** + * @return (Output) + * The URL of the link. + * + */ + private @Nullable String url; + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink() {} + /** + * @return An optional description of this resize-request. + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return (Output) + * The URL of the link. + * + */ + public Optional url() { + return Optional.ofNullable(this.url); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private @Nullable String url; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.url = defaults.url; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder url(@Nullable String url) { + + this.url = url; + return this; + } + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink build() { + final var _resultValue = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink(); + _resultValue.description = description; + _resultValue.url = url; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.java new file mode 100644 index 0000000000..565ba71625 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage.java @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + private @Nullable String locale; + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + private @Nullable String message; + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage() {} + /** + * @return (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + * + */ + public Optional locale() { + return Optional.ofNullable(this.locale); + } + /** + * @return (Output) + * The localized error message in the above locale. + * + */ + public Optional message() { + return Optional.ofNullable(this.message); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String locale; + private @Nullable String message; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage defaults) { + Objects.requireNonNull(defaults); + this.locale = defaults.locale; + this.message = defaults.message; + } + + @CustomType.Setter + public Builder locale(@Nullable String locale) { + + this.locale = locale; + return this; + } + @CustomType.Setter + public Builder message(@Nullable String message) { + + this.message = message; + return this; + } + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage build() { + final var _resultValue = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage(); + _resultValue.locale = locale; + _resultValue.message = message; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.java new file mode 100644 index 0000000000..a426b7796f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.java @@ -0,0 +1,176 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + private @Nullable Map dimensions; + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer futureLimit; + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + private @Nullable Integer limit; + /** + * @return (Output) + * The name of the quota limit. + * + */ + private @Nullable String limitName; + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + private @Nullable String metricName; + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + private @Nullable String rolloutStatus; + + private ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo() {} + /** + * @return (Output) + * The map holding related quota dimensions + * + */ + public Map dimensions() { + return this.dimensions == null ? Map.of() : this.dimensions; + } + /** + * @return (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + * + */ + public Optional futureLimit() { + return Optional.ofNullable(this.futureLimit); + } + /** + * @return (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + * + */ + public Optional limit() { + return Optional.ofNullable(this.limit); + } + /** + * @return (Output) + * The name of the quota limit. + * + */ + public Optional limitName() { + return Optional.ofNullable(this.limitName); + } + /** + * @return (Output) + * The Compute Engine quota metric name. + * + */ + public Optional metricName() { + return Optional.ofNullable(this.metricName); + } + /** + * @return (Output) + * Rollout status of the future quota limit. + * + */ + public Optional rolloutStatus() { + return Optional.ofNullable(this.rolloutStatus); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Map dimensions; + private @Nullable Integer futureLimit; + private @Nullable Integer limit; + private @Nullable String limitName; + private @Nullable String metricName; + private @Nullable String rolloutStatus; + public Builder() {} + public Builder(ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo defaults) { + Objects.requireNonNull(defaults); + this.dimensions = defaults.dimensions; + this.futureLimit = defaults.futureLimit; + this.limit = defaults.limit; + this.limitName = defaults.limitName; + this.metricName = defaults.metricName; + this.rolloutStatus = defaults.rolloutStatus; + } + + @CustomType.Setter + public Builder dimensions(@Nullable Map dimensions) { + + this.dimensions = dimensions; + return this; + } + @CustomType.Setter + public Builder futureLimit(@Nullable Integer futureLimit) { + + this.futureLimit = futureLimit; + return this; + } + @CustomType.Setter + public Builder limit(@Nullable Integer limit) { + + this.limit = limit; + return this; + } + @CustomType.Setter + public Builder limitName(@Nullable String limitName) { + + this.limitName = limitName; + return this; + } + @CustomType.Setter + public Builder metricName(@Nullable String metricName) { + + this.metricName = metricName; + return this; + } + @CustomType.Setter + public Builder rolloutStatus(@Nullable String rolloutStatus) { + + this.rolloutStatus = rolloutStatus; + return this; + } + public ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo build() { + final var _resultValue = new ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo(); + _resultValue.dimensions = dimensions; + _resultValue.futureLimit = futureLimit; + _resultValue.limit = limit; + _resultValue.limitName = limitName; + _resultValue.metricName = metricName; + _resultValue.rolloutStatus = rolloutStatus; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterPeerCustomLearnedIpRange.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterPeerCustomLearnedIpRange.java new file mode 100644 index 0000000000..c33a6fa267 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterPeerCustomLearnedIpRange.java @@ -0,0 +1,60 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class RouterPeerCustomLearnedIpRange { + /** + * @return The IP range to advertise. The value must be a + * CIDR-formatted string. + * + */ + private String range; + + private RouterPeerCustomLearnedIpRange() {} + /** + * @return The IP range to advertise. The value must be a + * CIDR-formatted string. + * + */ + public String range() { + return this.range; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RouterPeerCustomLearnedIpRange defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String range; + public Builder() {} + public Builder(RouterPeerCustomLearnedIpRange defaults) { + Objects.requireNonNull(defaults); + this.range = defaults.range; + } + + @CustomType.Setter + public Builder range(String range) { + if (range == null) { + throw new MissingRequiredPropertyException("RouterPeerCustomLearnedIpRange", "range"); + } + this.range = range; + return this; + } + public RouterPeerCustomLearnedIpRange build() { + final var _resultValue = new RouterPeerCustomLearnedIpRange(); + _resultValue.range = range; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTerm.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTerm.java new file mode 100644 index 0000000000..62fe9d5f98 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTerm.java @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.compute.outputs.RouterRoutePolicyTermAction; +import com.pulumi.gcp.compute.outputs.RouterRoutePolicyTermMatch; +import java.lang.Integer; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RouterRoutePolicyTerm { + /** + * @return 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + * + */ + private @Nullable List actions; + /** + * @return CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + * + */ + private @Nullable RouterRoutePolicyTermMatch match; + /** + * @return The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + * + */ + private Integer priority; + + private RouterRoutePolicyTerm() {} + /** + * @return 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + * + */ + public List actions() { + return this.actions == null ? List.of() : this.actions; + } + /** + * @return CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + * + */ + public Optional match() { + return Optional.ofNullable(this.match); + } + /** + * @return The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + * + */ + public Integer priority() { + return this.priority; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RouterRoutePolicyTerm defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List actions; + private @Nullable RouterRoutePolicyTermMatch match; + private Integer priority; + public Builder() {} + public Builder(RouterRoutePolicyTerm defaults) { + Objects.requireNonNull(defaults); + this.actions = defaults.actions; + this.match = defaults.match; + this.priority = defaults.priority; + } + + @CustomType.Setter + public Builder actions(@Nullable List actions) { + + this.actions = actions; + return this; + } + public Builder actions(RouterRoutePolicyTermAction... actions) { + return actions(List.of(actions)); + } + @CustomType.Setter + public Builder match(@Nullable RouterRoutePolicyTermMatch match) { + + this.match = match; + return this; + } + @CustomType.Setter + public Builder priority(Integer priority) { + if (priority == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyTerm", "priority"); + } + this.priority = priority; + return this; + } + public RouterRoutePolicyTerm build() { + final var _resultValue = new RouterRoutePolicyTerm(); + _resultValue.actions = actions; + _resultValue.match = match; + _resultValue.priority = priority; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTermAction.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTermAction.java new file mode 100644 index 0000000000..1ebaa2705b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTermAction.java @@ -0,0 +1,133 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RouterRoutePolicyTermAction { + /** + * @return Description of the expression + * + */ + private @Nullable String description; + /** + * @return Textual representation of an expression in Common Expression + * Language syntax. + * + */ + private String expression; + /** + * @return String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * *** + * + */ + private @Nullable String location; + /** + * @return Title for the expression, i.e. a short string describing its + * purpose. + * + */ + private @Nullable String title; + + private RouterRoutePolicyTermAction() {} + /** + * @return Description of the expression + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return Textual representation of an expression in Common Expression + * Language syntax. + * + */ + public String expression() { + return this.expression; + } + /** + * @return String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * *** + * + */ + public Optional location() { + return Optional.ofNullable(this.location); + } + /** + * @return Title for the expression, i.e. a short string describing its + * purpose. + * + */ + public Optional title() { + return Optional.ofNullable(this.title); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RouterRoutePolicyTermAction defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private String expression; + private @Nullable String location; + private @Nullable String title; + public Builder() {} + public Builder(RouterRoutePolicyTermAction defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.expression = defaults.expression; + this.location = defaults.location; + this.title = defaults.title; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder expression(String expression) { + if (expression == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyTermAction", "expression"); + } + this.expression = expression; + return this; + } + @CustomType.Setter + public Builder location(@Nullable String location) { + + this.location = location; + return this; + } + @CustomType.Setter + public Builder title(@Nullable String title) { + + this.title = title; + return this; + } + public RouterRoutePolicyTermAction build() { + final var _resultValue = new RouterRoutePolicyTermAction(); + _resultValue.description = description; + _resultValue.expression = expression; + _resultValue.location = location; + _resultValue.title = title; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTermMatch.java b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTermMatch.java new file mode 100644 index 0000000000..262d471756 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/compute/outputs/RouterRoutePolicyTermMatch.java @@ -0,0 +1,123 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.compute.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class RouterRoutePolicyTermMatch { + /** + * @return Description of the expression + * + */ + private @Nullable String description; + /** + * @return Textual representation of an expression in Common Expression Language syntax. + * + */ + private String expression; + /** + * @return String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + * + */ + private @Nullable String location; + /** + * @return Title for the expression, i.e. a short string describing its purpose. + * + */ + private @Nullable String title; + + private RouterRoutePolicyTermMatch() {} + /** + * @return Description of the expression + * + */ + public Optional description() { + return Optional.ofNullable(this.description); + } + /** + * @return Textual representation of an expression in Common Expression Language syntax. + * + */ + public String expression() { + return this.expression; + } + /** + * @return String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + * + */ + public Optional location() { + return Optional.ofNullable(this.location); + } + /** + * @return Title for the expression, i.e. a short string describing its purpose. + * + */ + public Optional title() { + return Optional.ofNullable(this.title); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(RouterRoutePolicyTermMatch defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String description; + private String expression; + private @Nullable String location; + private @Nullable String title; + public Builder() {} + public Builder(RouterRoutePolicyTermMatch defaults) { + Objects.requireNonNull(defaults); + this.description = defaults.description; + this.expression = defaults.expression; + this.location = defaults.location; + this.title = defaults.title; + } + + @CustomType.Setter + public Builder description(@Nullable String description) { + + this.description = description; + return this; + } + @CustomType.Setter + public Builder expression(String expression) { + if (expression == null) { + throw new MissingRequiredPropertyException("RouterRoutePolicyTermMatch", "expression"); + } + this.expression = expression; + return this; + } + @CustomType.Setter + public Builder location(@Nullable String location) { + + this.location = location; + return this; + } + @CustomType.Setter + public Builder title(@Nullable String title) { + + this.title = title; + return this; + } + public RouterRoutePolicyTermMatch build() { + final var _resultValue = new RouterRoutePolicyTermMatch(); + _resultValue.description = description; + _resultValue.expression = expression; + _resultValue.location = location; + _resultValue.title = title; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/AttachedCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/container/AttachedCluster.java index b5b0613670..12da4b2097 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/AttachedCluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/AttachedCluster.java @@ -683,13 +683,20 @@ public AttachedCluster(String name, AttachedClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public AttachedCluster(String name, AttachedClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/attachedCluster:AttachedCluster", name, args == null ? AttachedClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/attachedCluster:AttachedCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AttachedCluster(String name, Output id, @Nullable AttachedClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/attachedCluster:AttachedCluster", name, state, makeResourceOptions(options, id)); } + private static AttachedClusterArgs makeArgs(AttachedClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AttachedClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/AwsCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/container/AwsCluster.java index 23586e8123..5cd5568a45 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/AwsCluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/AwsCluster.java @@ -716,13 +716,20 @@ public AwsCluster(String name, AwsClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public AwsCluster(String name, AwsClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/awsCluster:AwsCluster", name, args == null ? AwsClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/awsCluster:AwsCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AwsCluster(String name, Output id, @Nullable AwsClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/awsCluster:AwsCluster", name, state, makeResourceOptions(options, id)); } + private static AwsClusterArgs makeArgs(AwsClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AwsClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/AwsNodePool.java b/sdk/java/src/main/java/com/pulumi/gcp/container/AwsNodePool.java index 70e440d41d..5119a84439 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/AwsNodePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/AwsNodePool.java @@ -840,13 +840,20 @@ public AwsNodePool(String name, AwsNodePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public AwsNodePool(String name, AwsNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/awsNodePool:AwsNodePool", name, args == null ? AwsNodePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/awsNodePool:AwsNodePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AwsNodePool(String name, Output id, @Nullable AwsNodePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/awsNodePool:AwsNodePool", name, state, makeResourceOptions(options, id)); } + private static AwsNodePoolArgs makeArgs(AwsNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AwsNodePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/AzureClient.java b/sdk/java/src/main/java/com/pulumi/gcp/container/AzureClient.java index f9931bc101..5748f96894 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/AzureClient.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/AzureClient.java @@ -225,13 +225,20 @@ public AzureClient(String name, AzureClientArgs args) { * @param options A bag of options that control this resource's behavior. */ public AzureClient(String name, AzureClientArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/azureClient:AzureClient", name, args == null ? AzureClientArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/azureClient:AzureClient", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AzureClient(String name, Output id, @Nullable AzureClientState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/azureClient:AzureClient", name, state, makeResourceOptions(options, id)); } + private static AzureClientArgs makeArgs(AzureClientArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AzureClientArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/AzureCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/container/AzureCluster.java index 6465894d97..a6c4ce4013 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/AzureCluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/AzureCluster.java @@ -587,13 +587,20 @@ public AzureCluster(String name, AzureClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public AzureCluster(String name, AzureClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/azureCluster:AzureCluster", name, args == null ? AzureClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/azureCluster:AzureCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AzureCluster(String name, Output id, @Nullable AzureClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/azureCluster:AzureCluster", name, state, makeResourceOptions(options, id)); } + private static AzureClusterArgs makeArgs(AzureClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AzureClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/AzureNodePool.java b/sdk/java/src/main/java/com/pulumi/gcp/container/AzureNodePool.java index ba958d3746..0b6a61f2e1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/AzureNodePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/AzureNodePool.java @@ -472,13 +472,20 @@ public AzureNodePool(String name, AzureNodePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public AzureNodePool(String name, AzureNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/azureNodePool:AzureNodePool", name, args == null ? AzureNodePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/azureNodePool:AzureNodePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AzureNodePool(String name, Output id, @Nullable AzureNodePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/azureNodePool:AzureNodePool", name, state, makeResourceOptions(options, id)); } + private static AzureNodePoolArgs makeArgs(AzureNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AzureNodePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java index 10bd5259c7..97f3744f17 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/Cluster.java @@ -1640,13 +1640,20 @@ public Cluster(String name, @Nullable ClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public Cluster(String name, @Nullable ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/cluster:Cluster", name, args == null ? ClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/cluster:Cluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Cluster(String name, Output id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/cluster:Cluster", name, state, makeResourceOptions(options, id)); } + private static ClusterArgs makeArgs(@Nullable ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/NodePool.java b/sdk/java/src/main/java/com/pulumi/gcp/container/NodePool.java index 4d468c3853..fb291006b2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/NodePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/NodePool.java @@ -476,8 +476,6 @@ public Output project() { * Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * */ @Export(name="queuedProvisioning", refs={NodePoolQueuedProvisioning.class}, tree="[0]") private Output queuedProvisioning; @@ -486,8 +484,6 @@ public Output project() { * @return Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * */ public Output> queuedProvisioning() { return Codegen.optional(this.queuedProvisioning); @@ -555,13 +551,20 @@ public NodePool(String name, NodePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public NodePool(String name, NodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:container/nodePool:NodePool", name, args == null ? NodePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:container/nodePool:NodePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NodePool(String name, Output id, @Nullable NodePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/nodePool:NodePool", name, state, makeResourceOptions(options, id)); } + private static NodePoolArgs makeArgs(NodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NodePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/NodePoolArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/NodePoolArgs.java index cf9bcc7c82..831eadd299 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/NodePoolArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/NodePoolArgs.java @@ -301,8 +301,6 @@ public Optional> project() { * Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * */ @Import(name="queuedProvisioning") private @Nullable Output queuedProvisioning; @@ -311,8 +309,6 @@ public Optional> project() { * @return Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * */ public Optional> queuedProvisioning() { return Optional.ofNullable(this.queuedProvisioning); @@ -777,8 +773,6 @@ public Builder project(String project) { * @param queuedProvisioning Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * * @return builder * */ @@ -791,8 +785,6 @@ public Builder queuedProvisioning(@Nullable Output id, @Nullable RegistryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:container/registry:Registry", name, state, makeResourceOptions(options, id)); } + private static RegistryArgs makeArgs(@Nullable RegistryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RegistryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java index 74cb1edffd..5087028261 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigArgs.java @@ -17,7 +17,9 @@ import com.pulumi.gcp.container.inputs.ClusterAddonsConfigIstioConfigArgs; import com.pulumi.gcp.container.inputs.ClusterAddonsConfigKalmConfigArgs; import com.pulumi.gcp.container.inputs.ClusterAddonsConfigNetworkPolicyConfigArgs; +import com.pulumi.gcp.container.inputs.ClusterAddonsConfigRayOperatorConfigArgs; import com.pulumi.gcp.container.inputs.ClusterAddonsConfigStatefulHaConfigArgs; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -265,13 +267,52 @@ public Optional> networkPolic return Optional.ofNullable(this.networkPolicyConfig); } + /** + * . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * This example `addons_config` disables two addons: + * + */ + @Import(name="rayOperatorConfigs") + private @Nullable Output> rayOperatorConfigs; + + /** + * @return . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * This example `addons_config` disables two addons: + * + */ + public Optional>> rayOperatorConfigs() { + return Optional.ofNullable(this.rayOperatorConfigs); + } + /** * . * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. * It is disabled by default for Standard clusters. Set `enabled = true` to enable. * - * This example `addons_config` disables two addons: - * */ @Import(name="statefulHaConfig") private @Nullable Output statefulHaConfig; @@ -281,8 +322,6 @@ public Optional> networkPolic * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. * It is disabled by default for Standard clusters. Set `enabled = true` to enable. * - * This example `addons_config` disables two addons: - * */ public Optional> statefulHaConfig() { return Optional.ofNullable(this.statefulHaConfig); @@ -303,6 +342,7 @@ private ClusterAddonsConfigArgs(ClusterAddonsConfigArgs $) { this.istioConfig = $.istioConfig; this.kalmConfig = $.kalmConfig; this.networkPolicyConfig = $.networkPolicyConfig; + this.rayOperatorConfigs = $.rayOperatorConfigs; this.statefulHaConfig = $.statefulHaConfig; } @@ -634,13 +674,81 @@ public Builder networkPolicyConfig(ClusterAddonsConfigNetworkPolicyConfigArgs ne return networkPolicyConfig(Output.of(networkPolicyConfig)); } + /** + * @param rayOperatorConfigs . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * This example `addons_config` disables two addons: + * + * @return builder + * + */ + public Builder rayOperatorConfigs(@Nullable Output> rayOperatorConfigs) { + $.rayOperatorConfigs = rayOperatorConfigs; + return this; + } + + /** + * @param rayOperatorConfigs . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * This example `addons_config` disables two addons: + * + * @return builder + * + */ + public Builder rayOperatorConfigs(List rayOperatorConfigs) { + return rayOperatorConfigs(Output.of(rayOperatorConfigs)); + } + + /** + * @param rayOperatorConfigs . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * This example `addons_config` disables two addons: + * + * @return builder + * + */ + public Builder rayOperatorConfigs(ClusterAddonsConfigRayOperatorConfigArgs... rayOperatorConfigs) { + return rayOperatorConfigs(List.of(rayOperatorConfigs)); + } + /** * @param statefulHaConfig . * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. * It is disabled by default for Standard clusters. Set `enabled = true` to enable. * - * This example `addons_config` disables two addons: - * * @return builder * */ @@ -654,8 +762,6 @@ public Builder statefulHaConfig(@Nullable Output enabled; + + public Output enabled() { + return this.enabled; + } + + /** + * The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + */ + @Import(name="rayClusterLoggingConfig") + private @Nullable Output rayClusterLoggingConfig; + + /** + * @return The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + */ + public Optional> rayClusterLoggingConfig() { + return Optional.ofNullable(this.rayClusterLoggingConfig); + } + + /** + * The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + */ + @Import(name="rayClusterMonitoringConfig") + private @Nullable Output rayClusterMonitoringConfig; + + /** + * @return The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + */ + public Optional> rayClusterMonitoringConfig() { + return Optional.ofNullable(this.rayClusterMonitoringConfig); + } + + private ClusterAddonsConfigRayOperatorConfigArgs() {} + + private ClusterAddonsConfigRayOperatorConfigArgs(ClusterAddonsConfigRayOperatorConfigArgs $) { + this.enabled = $.enabled; + this.rayClusterLoggingConfig = $.rayClusterLoggingConfig; + this.rayClusterMonitoringConfig = $.rayClusterMonitoringConfig; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterAddonsConfigRayOperatorConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterAddonsConfigRayOperatorConfigArgs $; + + public Builder() { + $ = new ClusterAddonsConfigRayOperatorConfigArgs(); + } + + public Builder(ClusterAddonsConfigRayOperatorConfigArgs defaults) { + $ = new ClusterAddonsConfigRayOperatorConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder enabled(Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param rayClusterLoggingConfig The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + * @return builder + * + */ + public Builder rayClusterLoggingConfig(@Nullable Output rayClusterLoggingConfig) { + $.rayClusterLoggingConfig = rayClusterLoggingConfig; + return this; + } + + /** + * @param rayClusterLoggingConfig The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + * @return builder + * + */ + public Builder rayClusterLoggingConfig(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs rayClusterLoggingConfig) { + return rayClusterLoggingConfig(Output.of(rayClusterLoggingConfig)); + } + + /** + * @param rayClusterMonitoringConfig The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + * @return builder + * + */ + public Builder rayClusterMonitoringConfig(@Nullable Output rayClusterMonitoringConfig) { + $.rayClusterMonitoringConfig = rayClusterMonitoringConfig; + return this; + } + + /** + * @param rayClusterMonitoringConfig The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + * @return builder + * + */ + public Builder rayClusterMonitoringConfig(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs rayClusterMonitoringConfig) { + return rayClusterMonitoringConfig(Output.of(rayClusterMonitoringConfig)); + } + + public ClusterAddonsConfigRayOperatorConfigArgs build() { + if ($.enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigRayOperatorConfigArgs", "enabled"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs.java new file mode 100644 index 0000000000..081ab34c20 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs.java @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + + +public final class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs Empty = new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs(); + + @Import(name="enabled", required=true) + private Output enabled; + + public Output enabled() { + return this.enabled; + } + + private ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs() {} + + private ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs $) { + this.enabled = $.enabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs $; + + public Builder() { + $ = new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs(); + } + + public Builder(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs defaults) { + $ = new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder enabled(Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs build() { + if ($.enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs", "enabled"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs.java new file mode 100644 index 0000000000..53326d14aa --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs.java @@ -0,0 +1,65 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + + +public final class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs Empty = new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs(); + + @Import(name="enabled", required=true) + private Output enabled; + + public Output enabled() { + return this.enabled; + } + + private ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs() {} + + private ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs $) { + this.enabled = $.enabled; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs $; + + public Builder() { + $ = new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs(); + } + + public Builder(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs defaults) { + $ = new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs(Objects.requireNonNull(defaults)); + } + + public Builder enabled(Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs build() { + if ($.enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs", "enabled"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolNodeConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolNodeConfigArgs.java index 3da369c5fd..a0f4ec1a88 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolNodeConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolNodeConfigArgs.java @@ -462,14 +462,20 @@ public Optional> preemptible() { } /** - * The reservation affinity configuration for the node pool. + * The configuration of the desired reservation which instances could take capacity from. + * Structure is documented below. + * + * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): * */ @Import(name="reservationAffinity") private @Nullable Output reservationAffinity; /** - * @return The reservation affinity configuration for the node pool. + * @return The configuration of the desired reservation which instances could take capacity from. + * Structure is documented below. + * + * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): * */ public Optional> reservationAffinity() { @@ -1323,7 +1329,10 @@ public Builder preemptible(Boolean preemptible) { } /** - * @param reservationAffinity The reservation affinity configuration for the node pool. + * @param reservationAffinity The configuration of the desired reservation which instances could take capacity from. + * Structure is documented below. + * + * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): * * @return builder * @@ -1334,7 +1343,10 @@ public Builder reservationAffinity(@Nullable Output consumeReservationType; /** - * @return Corresponds to the type of reservation consumption. + * @return The type of reservation consumption + * Accepted values are: + * + * * `"UNSPECIFIED"`: Default value. This should not be used. + * * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * * `"ANY_RESERVATION"`: Consume any reservation available. + * * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. * */ public Output consumeReservationType() { @@ -33,14 +45,14 @@ public Output consumeReservationType() { } /** - * The label key of a reservation resource. + * 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. * */ @Import(name="key") private @Nullable Output key; /** - * @return The label key of a reservation resource. + * @return 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. * */ public Optional> key() { @@ -48,14 +60,14 @@ public Optional> key() { } /** - * The label values of the reservation resource. + * 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" * */ @Import(name="values") private @Nullable Output> values; /** - * @return The label values of the reservation resource. + * @return 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" * */ public Optional>> values() { @@ -89,7 +101,13 @@ public Builder(NodePoolNodeConfigReservationAffinityArgs defaults) { } /** - * @param consumeReservationType Corresponds to the type of reservation consumption. + * @param consumeReservationType The type of reservation consumption + * Accepted values are: + * + * * `"UNSPECIFIED"`: Default value. This should not be used. + * * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * * `"ANY_RESERVATION"`: Consume any reservation available. + * * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. * * @return builder * @@ -100,7 +118,13 @@ public Builder consumeReservationType(Output consumeReservationType) { } /** - * @param consumeReservationType Corresponds to the type of reservation consumption. + * @param consumeReservationType The type of reservation consumption + * Accepted values are: + * + * * `"UNSPECIFIED"`: Default value. This should not be used. + * * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * * `"ANY_RESERVATION"`: Consume any reservation available. + * * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. * * @return builder * @@ -110,7 +134,7 @@ public Builder consumeReservationType(String consumeReservationType) { } /** - * @param key The label key of a reservation resource. + * @param key 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. * * @return builder * @@ -121,7 +145,7 @@ public Builder key(@Nullable Output key) { } /** - * @param key The label key of a reservation resource. + * @param key 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. * * @return builder * @@ -131,7 +155,7 @@ public Builder key(String key) { } /** - * @param values The label values of the reservation resource. + * @param values 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" * * @return builder * @@ -142,7 +166,7 @@ public Builder values(@Nullable Output> values) { } /** - * @param values The label values of the reservation resource. + * @param values 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" * * @return builder * @@ -152,7 +176,7 @@ public Builder values(List values) { } /** - * @param values The label values of the reservation resource. + * @param values 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" * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolState.java b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolState.java index 1007b9cb58..1224fcb838 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/inputs/NodePoolState.java @@ -337,8 +337,6 @@ public Optional> project() { * Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * */ @Import(name="queuedProvisioning") private @Nullable Output queuedProvisioning; @@ -347,8 +345,6 @@ public Optional> project() { * @return Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * */ public Optional> queuedProvisioning() { return Optional.ofNullable(this.queuedProvisioning); @@ -887,8 +883,6 @@ public Builder project(String project) { * @param queuedProvisioning Specifies node pool-level settings of queued provisioning. * Structure is documented below. * - * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): - * * @return builder * */ @@ -901,8 +895,6 @@ public Builder queuedProvisioning(@Nullable Output rayOperatorConfigs; /** * @return . * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. * It is disabled by default for Standard clusters. Set `enabled = true` to enable. * - * This example `addons_config` disables two addons: - * */ private @Nullable ClusterAddonsConfigStatefulHaConfig statefulHaConfig; @@ -236,13 +254,31 @@ public Optional kalmConfig() { public Optional networkPolicyConfig() { return Optional.ofNullable(this.networkPolicyConfig); } + /** + * @return . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * This example `addons_config` disables two addons: + * + */ + public List rayOperatorConfigs() { + return this.rayOperatorConfigs == null ? List.of() : this.rayOperatorConfigs; + } /** * @return . * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. * It is disabled by default for Standard clusters. Set `enabled = true` to enable. * - * This example `addons_config` disables two addons: - * */ public Optional statefulHaConfig() { return Optional.ofNullable(this.statefulHaConfig); @@ -269,6 +305,7 @@ public static final class Builder { private @Nullable ClusterAddonsConfigIstioConfig istioConfig; private @Nullable ClusterAddonsConfigKalmConfig kalmConfig; private @Nullable ClusterAddonsConfigNetworkPolicyConfig networkPolicyConfig; + private @Nullable List rayOperatorConfigs; private @Nullable ClusterAddonsConfigStatefulHaConfig statefulHaConfig; public Builder() {} public Builder(ClusterAddonsConfig defaults) { @@ -285,6 +322,7 @@ public Builder(ClusterAddonsConfig defaults) { this.istioConfig = defaults.istioConfig; this.kalmConfig = defaults.kalmConfig; this.networkPolicyConfig = defaults.networkPolicyConfig; + this.rayOperatorConfigs = defaults.rayOperatorConfigs; this.statefulHaConfig = defaults.statefulHaConfig; } @@ -361,6 +399,15 @@ public Builder networkPolicyConfig(@Nullable ClusterAddonsConfigNetworkPolicyCon return this; } @CustomType.Setter + public Builder rayOperatorConfigs(@Nullable List rayOperatorConfigs) { + + this.rayOperatorConfigs = rayOperatorConfigs; + return this; + } + public Builder rayOperatorConfigs(ClusterAddonsConfigRayOperatorConfig... rayOperatorConfigs) { + return rayOperatorConfigs(List.of(rayOperatorConfigs)); + } + @CustomType.Setter public Builder statefulHaConfig(@Nullable ClusterAddonsConfigStatefulHaConfig statefulHaConfig) { this.statefulHaConfig = statefulHaConfig; @@ -380,6 +427,7 @@ public ClusterAddonsConfig build() { _resultValue.istioConfig = istioConfig; _resultValue.kalmConfig = kalmConfig; _resultValue.networkPolicyConfig = networkPolicyConfig; + _resultValue.rayOperatorConfigs = rayOperatorConfigs; _resultValue.statefulHaConfig = statefulHaConfig; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfig.java new file mode 100644 index 0000000000..2ab03f61fe --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfig.java @@ -0,0 +1,96 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.container.outputs.ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig; +import com.pulumi.gcp.container.outputs.ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class ClusterAddonsConfigRayOperatorConfig { + private Boolean enabled; + /** + * @return The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + */ + private @Nullable ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig rayClusterLoggingConfig; + /** + * @return The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + */ + private @Nullable ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig rayClusterMonitoringConfig; + + private ClusterAddonsConfigRayOperatorConfig() {} + public Boolean enabled() { + return this.enabled; + } + /** + * @return The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + */ + public Optional rayClusterLoggingConfig() { + return Optional.ofNullable(this.rayClusterLoggingConfig); + } + /** + * @return The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + */ + public Optional rayClusterMonitoringConfig() { + return Optional.ofNullable(this.rayClusterMonitoringConfig); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterAddonsConfigRayOperatorConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + private @Nullable ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig rayClusterLoggingConfig; + private @Nullable ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig rayClusterMonitoringConfig; + public Builder() {} + public Builder(ClusterAddonsConfigRayOperatorConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.rayClusterLoggingConfig = defaults.rayClusterLoggingConfig; + this.rayClusterMonitoringConfig = defaults.rayClusterMonitoringConfig; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigRayOperatorConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder rayClusterLoggingConfig(@Nullable ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig rayClusterLoggingConfig) { + + this.rayClusterLoggingConfig = rayClusterLoggingConfig; + return this; + } + @CustomType.Setter + public Builder rayClusterMonitoringConfig(@Nullable ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig rayClusterMonitoringConfig) { + + this.rayClusterMonitoringConfig = rayClusterMonitoringConfig; + return this; + } + public ClusterAddonsConfigRayOperatorConfig build() { + final var _resultValue = new ClusterAddonsConfigRayOperatorConfig(); + _resultValue.enabled = enabled; + _resultValue.rayClusterLoggingConfig = rayClusterLoggingConfig; + _resultValue.rayClusterMonitoringConfig = rayClusterMonitoringConfig; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.java new file mode 100644 index 0000000000..6d25f48311 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.java @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + private Boolean enabled; + + private ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig() {} + public Boolean enabled() { + return this.enabled; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + public Builder() {} + public Builder(ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + public ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig build() { + final var _resultValue = new ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig(); + _resultValue.enabled = enabled; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.java new file mode 100644 index 0000000000..005c7889f2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.java @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + private Boolean enabled; + + private ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig() {} + public Boolean enabled() { + return this.enabled; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + public Builder() {} + public Builder(ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + public ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig build() { + final var _resultValue = new ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig(); + _resultValue.enabled = enabled; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java index 4f259fd458..987c947068 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfig.java @@ -17,6 +17,7 @@ import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigIstioConfig; import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigKalmConfig; import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigNetworkPolicyConfig; +import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigRayOperatorConfig; import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigStatefulHaConfig; import java.util.List; import java.util.Objects; @@ -83,6 +84,11 @@ public final class GetClusterAddonsConfig { * */ private List networkPolicyConfigs; + /** + * @return 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. + * + */ + private List rayOperatorConfigs; /** * @return The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. * @@ -174,6 +180,13 @@ public List kalmConfigs() { public List networkPolicyConfigs() { return this.networkPolicyConfigs; } + /** + * @return 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. + * + */ + public List rayOperatorConfigs() { + return this.rayOperatorConfigs; + } /** * @return The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. * @@ -203,6 +216,7 @@ public static final class Builder { private List istioConfigs; private List kalmConfigs; private List networkPolicyConfigs; + private List rayOperatorConfigs; private List statefulHaConfigs; public Builder() {} public Builder(GetClusterAddonsConfig defaults) { @@ -219,6 +233,7 @@ public Builder(GetClusterAddonsConfig defaults) { this.istioConfigs = defaults.istioConfigs; this.kalmConfigs = defaults.kalmConfigs; this.networkPolicyConfigs = defaults.networkPolicyConfigs; + this.rayOperatorConfigs = defaults.rayOperatorConfigs; this.statefulHaConfigs = defaults.statefulHaConfigs; } @@ -355,6 +370,17 @@ public Builder networkPolicyConfigs(GetClusterAddonsConfigNetworkPolicyConfig... return networkPolicyConfigs(List.of(networkPolicyConfigs)); } @CustomType.Setter + public Builder rayOperatorConfigs(List rayOperatorConfigs) { + if (rayOperatorConfigs == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfig", "rayOperatorConfigs"); + } + this.rayOperatorConfigs = rayOperatorConfigs; + return this; + } + public Builder rayOperatorConfigs(GetClusterAddonsConfigRayOperatorConfig... rayOperatorConfigs) { + return rayOperatorConfigs(List.of(rayOperatorConfigs)); + } + @CustomType.Setter public Builder statefulHaConfigs(List statefulHaConfigs) { if (statefulHaConfigs == null) { throw new MissingRequiredPropertyException("GetClusterAddonsConfig", "statefulHaConfigs"); @@ -379,6 +405,7 @@ public GetClusterAddonsConfig build() { _resultValue.istioConfigs = istioConfigs; _resultValue.kalmConfigs = kalmConfigs; _resultValue.networkPolicyConfigs = networkPolicyConfigs; + _resultValue.rayOperatorConfigs = rayOperatorConfigs; _resultValue.statefulHaConfigs = statefulHaConfigs; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfig.java new file mode 100644 index 0000000000..a6c3344fb9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfig.java @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig; +import com.pulumi.gcp.container.outputs.GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig; +import java.lang.Boolean; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetClusterAddonsConfigRayOperatorConfig { + private Boolean enabled; + /** + * @return The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + */ + private List rayClusterLoggingConfigs; + /** + * @return The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + */ + private List rayClusterMonitoringConfigs; + + private GetClusterAddonsConfigRayOperatorConfig() {} + public Boolean enabled() { + return this.enabled; + } + /** + * @return The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + * + */ + public List rayClusterLoggingConfigs() { + return this.rayClusterLoggingConfigs; + } + /** + * @return The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + * + */ + public List rayClusterMonitoringConfigs() { + return this.rayClusterMonitoringConfigs; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterAddonsConfigRayOperatorConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + private List rayClusterLoggingConfigs; + private List rayClusterMonitoringConfigs; + public Builder() {} + public Builder(GetClusterAddonsConfigRayOperatorConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + this.rayClusterLoggingConfigs = defaults.rayClusterLoggingConfigs; + this.rayClusterMonitoringConfigs = defaults.rayClusterMonitoringConfigs; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfigRayOperatorConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + @CustomType.Setter + public Builder rayClusterLoggingConfigs(List rayClusterLoggingConfigs) { + if (rayClusterLoggingConfigs == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfigRayOperatorConfig", "rayClusterLoggingConfigs"); + } + this.rayClusterLoggingConfigs = rayClusterLoggingConfigs; + return this; + } + public Builder rayClusterLoggingConfigs(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig... rayClusterLoggingConfigs) { + return rayClusterLoggingConfigs(List.of(rayClusterLoggingConfigs)); + } + @CustomType.Setter + public Builder rayClusterMonitoringConfigs(List rayClusterMonitoringConfigs) { + if (rayClusterMonitoringConfigs == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfigRayOperatorConfig", "rayClusterMonitoringConfigs"); + } + this.rayClusterMonitoringConfigs = rayClusterMonitoringConfigs; + return this; + } + public Builder rayClusterMonitoringConfigs(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig... rayClusterMonitoringConfigs) { + return rayClusterMonitoringConfigs(List.of(rayClusterMonitoringConfigs)); + } + public GetClusterAddonsConfigRayOperatorConfig build() { + final var _resultValue = new GetClusterAddonsConfigRayOperatorConfig(); + _resultValue.enabled = enabled; + _resultValue.rayClusterLoggingConfigs = rayClusterLoggingConfigs; + _resultValue.rayClusterMonitoringConfigs = rayClusterMonitoringConfigs; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.java new file mode 100644 index 0000000000..2c66c87680 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig.java @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + private Boolean enabled; + + private GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig() {} + public Boolean enabled() { + return this.enabled; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + public Builder() {} + public Builder(GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + public GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig build() { + final var _resultValue = new GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig(); + _resultValue.enabled = enabled; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.java new file mode 100644 index 0000000000..b67623b3bc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig.java @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.container.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.util.Objects; + +@CustomType +public final class GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + private Boolean enabled; + + private GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig() {} + public Boolean enabled() { + return this.enabled; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private Boolean enabled; + public Builder() {} + public Builder(GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig defaults) { + Objects.requireNonNull(defaults); + this.enabled = defaults.enabled; + } + + @CustomType.Setter + public Builder enabled(Boolean enabled) { + if (enabled == null) { + throw new MissingRequiredPropertyException("GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig", "enabled"); + } + this.enabled = enabled; + return this; + } + public GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig build() { + final var _resultValue = new GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig(); + _resultValue.enabled = enabled; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfig.java index b50ed42e89..32a12b4456 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfig.java @@ -178,7 +178,10 @@ public final class NodePoolNodeConfig { */ private @Nullable Boolean preemptible; /** - * @return The reservation affinity configuration for the node pool. + * @return The configuration of the desired reservation which instances could take capacity from. + * Structure is documented below. + * + * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): * */ private @Nullable NodePoolNodeConfigReservationAffinity reservationAffinity; @@ -436,7 +439,10 @@ public Optional preemptible() { return Optional.ofNullable(this.preemptible); } /** - * @return The reservation affinity configuration for the node pool. + * @return The configuration of the desired reservation which instances could take capacity from. + * Structure is documented below. + * + * <a name="nested_autoscaling"></a>The `autoscaling` block supports (either total or per zone limits are required): * */ public Optional reservationAffinity() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfigReservationAffinity.java b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfigReservationAffinity.java index e566dfe128..9295e5922f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfigReservationAffinity.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/container/outputs/NodePoolNodeConfigReservationAffinity.java @@ -14,38 +14,50 @@ @CustomType public final class NodePoolNodeConfigReservationAffinity { /** - * @return Corresponds to the type of reservation consumption. + * @return The type of reservation consumption + * Accepted values are: + * + * * `"UNSPECIFIED"`: Default value. This should not be used. + * * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * * `"ANY_RESERVATION"`: Consume any reservation available. + * * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. * */ private String consumeReservationType; /** - * @return The label key of a reservation resource. + * @return 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. * */ private @Nullable String key; /** - * @return The label values of the reservation resource. + * @return 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" * */ private @Nullable List values; private NodePoolNodeConfigReservationAffinity() {} /** - * @return Corresponds to the type of reservation consumption. + * @return The type of reservation consumption + * Accepted values are: + * + * * `"UNSPECIFIED"`: Default value. This should not be used. + * * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * * `"ANY_RESERVATION"`: Consume any reservation available. + * * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. * */ public String consumeReservationType() { return this.consumeReservationType; } /** - * @return The label key of a reservation resource. + * @return 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. * */ public Optional key() { return Optional.ofNullable(this.key); } /** - * @return The label values of the reservation resource. + * @return 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" * */ public List values() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Note.java b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Note.java index 07b935d338..be7ea29591 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Note.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Note.java @@ -339,13 +339,20 @@ public Note(String name, NoteArgs args) { * @param options A bag of options that control this resource's behavior. */ public Note(String name, NoteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:containeranalysis/note:Note", name, args == null ? NoteArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:containeranalysis/note:Note", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Note(String name, Output id, @Nullable NoteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:containeranalysis/note:Note", name, state, makeResourceOptions(options, id)); } + private static NoteArgs makeArgs(NoteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NoteArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamBinding.java index c9245b66fe..c408ce4e6b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamBinding.java @@ -439,13 +439,20 @@ public NoteIamBinding(String name, NoteIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public NoteIamBinding(String name, NoteIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:containeranalysis/noteIamBinding:NoteIamBinding", name, args == null ? NoteIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:containeranalysis/noteIamBinding:NoteIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NoteIamBinding(String name, Output id, @Nullable NoteIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:containeranalysis/noteIamBinding:NoteIamBinding", name, state, makeResourceOptions(options, id)); } + private static NoteIamBindingArgs makeArgs(NoteIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NoteIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamMember.java index 9b5b6553ec..c356843d9b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamMember.java @@ -438,13 +438,20 @@ public NoteIamMember(String name, NoteIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public NoteIamMember(String name, NoteIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:containeranalysis/noteIamMember:NoteIamMember", name, args == null ? NoteIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:containeranalysis/noteIamMember:NoteIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NoteIamMember(String name, Output id, @Nullable NoteIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:containeranalysis/noteIamMember:NoteIamMember", name, state, makeResourceOptions(options, id)); } + private static NoteIamMemberArgs makeArgs(NoteIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NoteIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamPolicy.java index 8056d0330e..826d98507e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/NoteIamPolicy.java @@ -394,13 +394,20 @@ public NoteIamPolicy(String name, NoteIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public NoteIamPolicy(String name, NoteIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:containeranalysis/noteIamPolicy:NoteIamPolicy", name, args == null ? NoteIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:containeranalysis/noteIamPolicy:NoteIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NoteIamPolicy(String name, Output id, @Nullable NoteIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:containeranalysis/noteIamPolicy:NoteIamPolicy", name, state, makeResourceOptions(options, id)); } + private static NoteIamPolicyArgs makeArgs(NoteIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NoteIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Occurence.java b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Occurence.java index ac63f6395d..1608ff299a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Occurence.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/containeranalysis/Occurence.java @@ -319,13 +319,20 @@ public Occurence(String name, OccurenceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Occurence(String name, OccurenceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:containeranalysis/occurence:Occurence", name, args == null ? OccurenceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:containeranalysis/occurence:Occurence", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Occurence(String name, Output id, @Nullable OccurenceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:containeranalysis/occurence:Occurence", name, state, makeResourceOptions(options, id)); } + private static OccurenceArgs makeArgs(OccurenceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OccurenceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/ConnectionProfile.java b/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/ConnectionProfile.java index e36bd786bf..e1c607dcf4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/ConnectionProfile.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/ConnectionProfile.java @@ -694,13 +694,20 @@ public ConnectionProfile(String name, ConnectionProfileArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionProfile(String name, ConnectionProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:databasemigrationservice/connectionProfile:ConnectionProfile", name, args == null ? ConnectionProfileArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:databasemigrationservice/connectionProfile:ConnectionProfile", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionProfile(String name, Output id, @Nullable ConnectionProfileState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:databasemigrationservice/connectionProfile:ConnectionProfile", name, state, makeResourceOptions(options, id)); } + private static ConnectionProfileArgs makeArgs(ConnectionProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionProfileArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/PrivateConnection.java b/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/PrivateConnection.java index db9a383a58..a7d354694e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/PrivateConnection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/databasemigrationservice/PrivateConnection.java @@ -39,11 +39,11 @@ * import com.pulumi.Context; * import com.pulumi.Pulumi; * import com.pulumi.core.Output; - * import com.pulumi.gcp.compute.ComputeFunctions; - * import com.pulumi.gcp.compute.inputs.GetNetworkArgs; * import com.pulumi.gcp.databasemigrationservice.PrivateConnection; * import com.pulumi.gcp.databasemigrationservice.PrivateConnectionArgs; * import com.pulumi.gcp.databasemigrationservice.inputs.PrivateConnectionVpcPeeringConfigArgs; + * import com.pulumi.gcp.compute.Network; + * import com.pulumi.gcp.compute.NetworkArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -57,21 +57,22 @@ * } * * public static void stack(Context ctx) { - * final var default = ComputeFunctions.getNetwork(GetNetworkArgs.builder() - * .name("my-network") - * .build()); - * - * var defaultPrivateConnection = new PrivateConnection("defaultPrivateConnection", PrivateConnectionArgs.builder() + * var default_ = new PrivateConnection("default", PrivateConnectionArgs.builder() * .displayName("dbms_pc") * .location("us-central1") * .privateConnectionId("my-connection") * .labels(Map.of("key", "value")) * .vpcPeeringConfig(PrivateConnectionVpcPeeringConfigArgs.builder() - * .vpcName(default_.id()) + * .vpcName(googleComputeNetwork.default().id()) * .subnet("10.0.0.0/29") * .build()) * .build()); * + * var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder() + * .name("my-network") + * .autoCreateSubnetworks(false) + * .build()); + * * } * } * } @@ -284,13 +285,20 @@ public PrivateConnection(String name, PrivateConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public PrivateConnection(String name, PrivateConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:databasemigrationservice/privateConnection:PrivateConnection", name, args == null ? PrivateConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:databasemigrationservice/privateConnection:PrivateConnection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PrivateConnection(String name, Output id, @Nullable PrivateConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:databasemigrationservice/privateConnection:PrivateConnection", name, state, makeResourceOptions(options, id)); } + private static PrivateConnectionArgs makeArgs(PrivateConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PrivateConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Entry.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Entry.java index 6ae550427e..755d111d6e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Entry.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Entry.java @@ -492,13 +492,20 @@ public Entry(String name, EntryArgs args) { * @param options A bag of options that control this resource's behavior. */ public Entry(String name, EntryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/entry:Entry", name, args == null ? EntryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/entry:Entry", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Entry(String name, Output id, @Nullable EntryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/entry:Entry", name, state, makeResourceOptions(options, id)); } + private static EntryArgs makeArgs(EntryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroup.java index 5249677ef4..82acf6b812 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroup.java @@ -226,13 +226,20 @@ public EntryGroup(String name, EntryGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroup(String name, EntryGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/entryGroup:EntryGroup", name, args == null ? EntryGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/entryGroup:EntryGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroup(String name, Output id, @Nullable EntryGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/entryGroup:EntryGroup", name, state, makeResourceOptions(options, id)); } + private static EntryGroupArgs makeArgs(EntryGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamBinding.java index d3dac0d0b4..f97da2f8c8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamBinding.java @@ -441,13 +441,20 @@ public EntryGroupIamBinding(String name, EntryGroupIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroupIamBinding(String name, EntryGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/entryGroupIamBinding:EntryGroupIamBinding", name, args == null ? EntryGroupIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/entryGroupIamBinding:EntryGroupIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroupIamBinding(String name, Output id, @Nullable EntryGroupIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/entryGroupIamBinding:EntryGroupIamBinding", name, state, makeResourceOptions(options, id)); } + private static EntryGroupIamBindingArgs makeArgs(EntryGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamMember.java index b0706d22d7..93d1e0f1a3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamMember.java @@ -440,13 +440,20 @@ public EntryGroupIamMember(String name, EntryGroupIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroupIamMember(String name, EntryGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/entryGroupIamMember:EntryGroupIamMember", name, args == null ? EntryGroupIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/entryGroupIamMember:EntryGroupIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroupIamMember(String name, Output id, @Nullable EntryGroupIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/entryGroupIamMember:EntryGroupIamMember", name, state, makeResourceOptions(options, id)); } + private static EntryGroupIamMemberArgs makeArgs(EntryGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamPolicy.java index e395e67ee1..3df192b87b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/EntryGroupIamPolicy.java @@ -396,13 +396,20 @@ public EntryGroupIamPolicy(String name, EntryGroupIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroupIamPolicy(String name, EntryGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/entryGroupIamPolicy:EntryGroupIamPolicy", name, args == null ? EntryGroupIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/entryGroupIamPolicy:EntryGroupIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroupIamPolicy(String name, Output id, @Nullable EntryGroupIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/entryGroupIamPolicy:EntryGroupIamPolicy", name, state, makeResourceOptions(options, id)); } + private static EntryGroupIamPolicyArgs makeArgs(EntryGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTag.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTag.java index 978047965c..a20032d91f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTag.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTag.java @@ -274,13 +274,20 @@ public PolicyTag(String name, PolicyTagArgs args) { * @param options A bag of options that control this resource's behavior. */ public PolicyTag(String name, PolicyTagArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/policyTag:PolicyTag", name, args == null ? PolicyTagArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/policyTag:PolicyTag", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PolicyTag(String name, Output id, @Nullable PolicyTagState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/policyTag:PolicyTag", name, state, makeResourceOptions(options, id)); } + private static PolicyTagArgs makeArgs(PolicyTagArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PolicyTagArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamBinding.java index 6cbc5c5afa..511ae813be 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamBinding.java @@ -413,13 +413,20 @@ public PolicyTagIamBinding(String name, PolicyTagIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public PolicyTagIamBinding(String name, PolicyTagIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/policyTagIamBinding:PolicyTagIamBinding", name, args == null ? PolicyTagIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/policyTagIamBinding:PolicyTagIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PolicyTagIamBinding(String name, Output id, @Nullable PolicyTagIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/policyTagIamBinding:PolicyTagIamBinding", name, state, makeResourceOptions(options, id)); } + private static PolicyTagIamBindingArgs makeArgs(PolicyTagIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PolicyTagIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamMember.java index 2d2a89b066..83f1b9af76 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamMember.java @@ -412,13 +412,20 @@ public PolicyTagIamMember(String name, PolicyTagIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public PolicyTagIamMember(String name, PolicyTagIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/policyTagIamMember:PolicyTagIamMember", name, args == null ? PolicyTagIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/policyTagIamMember:PolicyTagIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PolicyTagIamMember(String name, Output id, @Nullable PolicyTagIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/policyTagIamMember:PolicyTagIamMember", name, state, makeResourceOptions(options, id)); } + private static PolicyTagIamMemberArgs makeArgs(PolicyTagIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PolicyTagIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamPolicy.java index 426eac5f4d..85f6ccb83a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/PolicyTagIamPolicy.java @@ -368,13 +368,20 @@ public PolicyTagIamPolicy(String name, PolicyTagIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public PolicyTagIamPolicy(String name, PolicyTagIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/policyTagIamPolicy:PolicyTagIamPolicy", name, args == null ? PolicyTagIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/policyTagIamPolicy:PolicyTagIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PolicyTagIamPolicy(String name, Output id, @Nullable PolicyTagIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/policyTagIamPolicy:PolicyTagIamPolicy", name, state, makeResourceOptions(options, id)); } + private static PolicyTagIamPolicyArgs makeArgs(PolicyTagIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PolicyTagIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Tag.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Tag.java index c20744d753..d03f15d490 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Tag.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Tag.java @@ -545,13 +545,20 @@ public Tag(String name, TagArgs args) { * @param options A bag of options that control this resource's behavior. */ public Tag(String name, TagArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/tag:Tag", name, args == null ? TagArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/tag:Tag", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Tag(String name, Output id, @Nullable TagState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/tag:Tag", name, state, makeResourceOptions(options, id)); } + private static TagArgs makeArgs(TagArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplate.java index cf26d562e4..673fbf55b0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplate.java @@ -236,13 +236,20 @@ public TagTemplate(String name, TagTemplateArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagTemplate(String name, TagTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/tagTemplate:TagTemplate", name, args == null ? TagTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/tagTemplate:TagTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagTemplate(String name, Output id, @Nullable TagTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/tagTemplate:TagTemplate", name, state, makeResourceOptions(options, id)); } + private static TagTemplateArgs makeArgs(TagTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamBinding.java index 26c3ac0b3c..8da3944418 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamBinding.java @@ -441,13 +441,20 @@ public TagTemplateIamBinding(String name, TagTemplateIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagTemplateIamBinding(String name, TagTemplateIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/tagTemplateIamBinding:TagTemplateIamBinding", name, args == null ? TagTemplateIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/tagTemplateIamBinding:TagTemplateIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagTemplateIamBinding(String name, Output id, @Nullable TagTemplateIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/tagTemplateIamBinding:TagTemplateIamBinding", name, state, makeResourceOptions(options, id)); } + private static TagTemplateIamBindingArgs makeArgs(TagTemplateIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagTemplateIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamMember.java index 1cac51aac3..abb3618a81 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamMember.java @@ -440,13 +440,20 @@ public TagTemplateIamMember(String name, TagTemplateIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagTemplateIamMember(String name, TagTemplateIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/tagTemplateIamMember:TagTemplateIamMember", name, args == null ? TagTemplateIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/tagTemplateIamMember:TagTemplateIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagTemplateIamMember(String name, Output id, @Nullable TagTemplateIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/tagTemplateIamMember:TagTemplateIamMember", name, state, makeResourceOptions(options, id)); } + private static TagTemplateIamMemberArgs makeArgs(TagTemplateIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagTemplateIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamPolicy.java index d635eeca97..8c90fbd0c3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TagTemplateIamPolicy.java @@ -396,13 +396,20 @@ public TagTemplateIamPolicy(String name, TagTemplateIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagTemplateIamPolicy(String name, TagTemplateIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/tagTemplateIamPolicy:TagTemplateIamPolicy", name, args == null ? TagTemplateIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/tagTemplateIamPolicy:TagTemplateIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagTemplateIamPolicy(String name, Output id, @Nullable TagTemplateIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/tagTemplateIamPolicy:TagTemplateIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TagTemplateIamPolicyArgs makeArgs(TagTemplateIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagTemplateIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Taxonomy.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Taxonomy.java index c3b91bbb35..81e3ff3f56 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Taxonomy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/Taxonomy.java @@ -209,13 +209,20 @@ public Taxonomy(String name, TaxonomyArgs args) { * @param options A bag of options that control this resource's behavior. */ public Taxonomy(String name, TaxonomyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/taxonomy:Taxonomy", name, args == null ? TaxonomyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/taxonomy:Taxonomy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Taxonomy(String name, Output id, @Nullable TaxonomyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/taxonomy:Taxonomy", name, state, makeResourceOptions(options, id)); } + private static TaxonomyArgs makeArgs(TaxonomyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaxonomyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamBinding.java index 7532d7b1a4..d685603930 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamBinding.java @@ -441,13 +441,20 @@ public TaxonomyIamBinding(String name, TaxonomyIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TaxonomyIamBinding(String name, TaxonomyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/taxonomyIamBinding:TaxonomyIamBinding", name, args == null ? TaxonomyIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/taxonomyIamBinding:TaxonomyIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TaxonomyIamBinding(String name, Output id, @Nullable TaxonomyIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/taxonomyIamBinding:TaxonomyIamBinding", name, state, makeResourceOptions(options, id)); } + private static TaxonomyIamBindingArgs makeArgs(TaxonomyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaxonomyIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamMember.java index 2dfdedc64c..5942fb1c52 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamMember.java @@ -440,13 +440,20 @@ public TaxonomyIamMember(String name, TaxonomyIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TaxonomyIamMember(String name, TaxonomyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/taxonomyIamMember:TaxonomyIamMember", name, args == null ? TaxonomyIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/taxonomyIamMember:TaxonomyIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TaxonomyIamMember(String name, Output id, @Nullable TaxonomyIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/taxonomyIamMember:TaxonomyIamMember", name, state, makeResourceOptions(options, id)); } + private static TaxonomyIamMemberArgs makeArgs(TaxonomyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaxonomyIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamPolicy.java index 760f352313..2885aac235 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datacatalog/TaxonomyIamPolicy.java @@ -396,13 +396,20 @@ public TaxonomyIamPolicy(String name, TaxonomyIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TaxonomyIamPolicy(String name, TaxonomyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datacatalog/taxonomyIamPolicy:TaxonomyIamPolicy", name, args == null ? TaxonomyIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datacatalog/taxonomyIamPolicy:TaxonomyIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TaxonomyIamPolicy(String name, Output id, @Nullable TaxonomyIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datacatalog/taxonomyIamPolicy:TaxonomyIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TaxonomyIamPolicyArgs makeArgs(TaxonomyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaxonomyIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataflow/FlexTemplateJob.java b/sdk/java/src/main/java/com/pulumi/gcp/dataflow/FlexTemplateJob.java index 138c37e693..0ef638ec98 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataflow/FlexTemplateJob.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataflow/FlexTemplateJob.java @@ -581,13 +581,20 @@ public FlexTemplateJob(String name, FlexTemplateJobArgs args) { * @param options A bag of options that control this resource's behavior. */ public FlexTemplateJob(String name, FlexTemplateJobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataflow/flexTemplateJob:FlexTemplateJob", name, args == null ? FlexTemplateJobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataflow/flexTemplateJob:FlexTemplateJob", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FlexTemplateJob(String name, Output id, @Nullable FlexTemplateJobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataflow/flexTemplateJob:FlexTemplateJob", name, state, makeResourceOptions(options, id)); } + private static FlexTemplateJobArgs makeArgs(FlexTemplateJobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FlexTemplateJobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Job.java b/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Job.java index fb2e93105d..2388ad7a4d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Job.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Job.java @@ -591,13 +591,20 @@ public Job(String name, JobArgs args) { * @param options A bag of options that control this resource's behavior. */ public Job(String name, JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataflow/job:Job", name, args == null ? JobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataflow/job:Job", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Job(String name, Output id, @Nullable JobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataflow/job:Job", name, state, makeResourceOptions(options, id)); } + private static JobArgs makeArgs(JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Pipeline.java b/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Pipeline.java index 15b091678c..0377b273e0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Pipeline.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataflow/Pipeline.java @@ -382,13 +382,20 @@ public Pipeline(String name, PipelineArgs args) { * @param options A bag of options that control this resource's behavior. */ public Pipeline(String name, PipelineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataflow/pipeline:Pipeline", name, args == null ? PipelineArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataflow/pipeline:Pipeline", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Pipeline(String name, Output id, @Nullable PipelineState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataflow/pipeline:Pipeline", name, state, makeResourceOptions(options, id)); } + private static PipelineArgs makeArgs(PipelineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PipelineArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataform/Repository.java b/sdk/java/src/main/java/com/pulumi/gcp/dataform/Repository.java index 4581ca6c80..d33b435d3e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataform/Repository.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataform/Repository.java @@ -319,13 +319,20 @@ public Repository(String name, @Nullable RepositoryArgs args) { * @param options A bag of options that control this resource's behavior. */ public Repository(String name, @Nullable RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataform/repository:Repository", name, args == null ? RepositoryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataform/repository:Repository", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Repository(String name, Output id, @Nullable RepositoryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataform/repository:Repository", name, state, makeResourceOptions(options, id)); } + private static RepositoryArgs makeArgs(@Nullable RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamBinding.java index 91f22cff54..891f889a1e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamBinding.java @@ -83,13 +83,20 @@ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataform/repositoryIamBinding:RepositoryIamBinding", name, args == null ? RepositoryIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataform/repositoryIamBinding:RepositoryIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamBinding(String name, Output id, @Nullable RepositoryIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataform/repositoryIamBinding:RepositoryIamBinding", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamBindingArgs makeArgs(RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamMember.java index def370855b..426a2b7c0f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamMember.java @@ -82,13 +82,20 @@ public RepositoryIamMember(String name, RepositoryIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamMember(String name, RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataform/repositoryIamMember:RepositoryIamMember", name, args == null ? RepositoryIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataform/repositoryIamMember:RepositoryIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamMember(String name, Output id, @Nullable RepositoryIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataform/repositoryIamMember:RepositoryIamMember", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamMemberArgs makeArgs(RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamPolicy.java index 7fc614ebc8..85d7c5d045 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryIamPolicy.java @@ -68,13 +68,20 @@ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataform/repositoryIamPolicy:RepositoryIamPolicy", name, args == null ? RepositoryIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataform/repositoryIamPolicy:RepositoryIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamPolicy(String name, Output id, @Nullable RepositoryIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataform/repositoryIamPolicy:RepositoryIamPolicy", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamPolicyArgs makeArgs(RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryReleaseConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryReleaseConfig.java index bd13d90dce..4dcc68c5d6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryReleaseConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryReleaseConfig.java @@ -307,13 +307,20 @@ public RepositoryReleaseConfig(String name, RepositoryReleaseConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryReleaseConfig(String name, RepositoryReleaseConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataform/repositoryReleaseConfig:RepositoryReleaseConfig", name, args == null ? RepositoryReleaseConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataform/repositoryReleaseConfig:RepositoryReleaseConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryReleaseConfig(String name, Output id, @Nullable RepositoryReleaseConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataform/repositoryReleaseConfig:RepositoryReleaseConfig", name, state, makeResourceOptions(options, id)); } + private static RepositoryReleaseConfigArgs makeArgs(RepositoryReleaseConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryReleaseConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryWorkflowConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryWorkflowConfig.java index 68c69486c7..38ed89af80 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryWorkflowConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataform/RepositoryWorkflowConfig.java @@ -345,13 +345,20 @@ public RepositoryWorkflowConfig(String name, RepositoryWorkflowConfigArgs args) * @param options A bag of options that control this resource's behavior. */ public RepositoryWorkflowConfig(String name, RepositoryWorkflowConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataform/repositoryWorkflowConfig:RepositoryWorkflowConfig", name, args == null ? RepositoryWorkflowConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataform/repositoryWorkflowConfig:RepositoryWorkflowConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryWorkflowConfig(String name, Output id, @Nullable RepositoryWorkflowConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataform/repositoryWorkflowConfig:RepositoryWorkflowConfig", name, state, makeResourceOptions(options, id)); } + private static RepositoryWorkflowConfigArgs makeArgs(RepositoryWorkflowConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryWorkflowConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java index 25a3800e09..865804af6b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datafusion/Instance.java @@ -965,13 +965,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datafusion/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datafusion/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datafusion/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDeidentifyTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDeidentifyTemplate.java index 20ed280c08..43ed86618b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDeidentifyTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDeidentifyTemplate.java @@ -379,13 +379,20 @@ public PreventionDeidentifyTemplate(String name, PreventionDeidentifyTemplateArg * @param options A bag of options that control this resource's behavior. */ public PreventionDeidentifyTemplate(String name, PreventionDeidentifyTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataloss/preventionDeidentifyTemplate:PreventionDeidentifyTemplate", name, args == null ? PreventionDeidentifyTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataloss/preventionDeidentifyTemplate:PreventionDeidentifyTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PreventionDeidentifyTemplate(String name, Output id, @Nullable PreventionDeidentifyTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataloss/preventionDeidentifyTemplate:PreventionDeidentifyTemplate", name, state, makeResourceOptions(options, id)); } + private static PreventionDeidentifyTemplateArgs makeArgs(PreventionDeidentifyTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PreventionDeidentifyTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java index 71f501a089..e25d7d1453 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionDiscoveryConfig.java @@ -274,13 +274,20 @@ public PreventionDiscoveryConfig(String name, PreventionDiscoveryConfigArgs args * @param options A bag of options that control this resource's behavior. */ public PreventionDiscoveryConfig(String name, PreventionDiscoveryConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataloss/preventionDiscoveryConfig:PreventionDiscoveryConfig", name, args == null ? PreventionDiscoveryConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataloss/preventionDiscoveryConfig:PreventionDiscoveryConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PreventionDiscoveryConfig(String name, Output id, @Nullable PreventionDiscoveryConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataloss/preventionDiscoveryConfig:PreventionDiscoveryConfig", name, state, makeResourceOptions(options, id)); } + private static PreventionDiscoveryConfigArgs makeArgs(PreventionDiscoveryConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PreventionDiscoveryConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionInspectTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionInspectTemplate.java index 28fca3e5a0..ff9dbc4232 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionInspectTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionInspectTemplate.java @@ -539,13 +539,20 @@ public PreventionInspectTemplate(String name, PreventionInspectTemplateArgs args * @param options A bag of options that control this resource's behavior. */ public PreventionInspectTemplate(String name, PreventionInspectTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataloss/preventionInspectTemplate:PreventionInspectTemplate", name, args == null ? PreventionInspectTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataloss/preventionInspectTemplate:PreventionInspectTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PreventionInspectTemplate(String name, Output id, @Nullable PreventionInspectTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataloss/preventionInspectTemplate:PreventionInspectTemplate", name, state, makeResourceOptions(options, id)); } + private static PreventionInspectTemplateArgs makeArgs(PreventionInspectTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PreventionInspectTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionJobTrigger.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionJobTrigger.java index ac578f3591..3f8ba5a64b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionJobTrigger.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionJobTrigger.java @@ -1157,13 +1157,20 @@ public PreventionJobTrigger(String name, PreventionJobTriggerArgs args) { * @param options A bag of options that control this resource's behavior. */ public PreventionJobTrigger(String name, PreventionJobTriggerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataloss/preventionJobTrigger:PreventionJobTrigger", name, args == null ? PreventionJobTriggerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataloss/preventionJobTrigger:PreventionJobTrigger", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PreventionJobTrigger(String name, Output id, @Nullable PreventionJobTriggerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataloss/preventionJobTrigger:PreventionJobTrigger", name, state, makeResourceOptions(options, id)); } + private static PreventionJobTriggerArgs makeArgs(PreventionJobTriggerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PreventionJobTriggerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionStoredInfoType.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionStoredInfoType.java index 0ab6228baa..4d80d87137 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionStoredInfoType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/PreventionStoredInfoType.java @@ -403,13 +403,20 @@ public PreventionStoredInfoType(String name, PreventionStoredInfoTypeArgs args) * @param options A bag of options that control this resource's behavior. */ public PreventionStoredInfoType(String name, PreventionStoredInfoTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataloss/preventionStoredInfoType:PreventionStoredInfoType", name, args == null ? PreventionStoredInfoTypeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataloss/preventionStoredInfoType:PreventionStoredInfoType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PreventionStoredInfoType(String name, Output id, @Nullable PreventionStoredInfoTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataloss/preventionStoredInfoType:PreventionStoredInfoType", name, state, makeResourceOptions(options, id)); } + private static PreventionStoredInfoTypeArgs makeArgs(PreventionStoredInfoTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PreventionStoredInfoTypeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetArgs.java index fa165a5cb6..225d2d999b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetArgs.java @@ -7,6 +7,7 @@ import com.pulumi.core.annotations.Import; import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetBigQueryTargetArgs; import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudSqlTargetArgs; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetArgs; import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetSecretsTargetArgs; import java.util.Objects; import java.util.Optional; @@ -51,6 +52,23 @@ public Optional> cloud return Optional.ofNullable(this.cloudSqlTarget); } + /** + * Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + * + */ + @Import(name="cloudStorageTarget") + private @Nullable Output cloudStorageTarget; + + /** + * @return Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + * + */ + public Optional> cloudStorageTarget() { + return Optional.ofNullable(this.cloudStorageTarget); + } + /** * 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. * @@ -71,6 +89,7 @@ private PreventionDiscoveryConfigTargetArgs() {} private PreventionDiscoveryConfigTargetArgs(PreventionDiscoveryConfigTargetArgs $) { this.bigQueryTarget = $.bigQueryTarget; this.cloudSqlTarget = $.cloudSqlTarget; + this.cloudStorageTarget = $.cloudStorageTarget; this.secretsTarget = $.secretsTarget; } @@ -138,6 +157,29 @@ public Builder cloudSqlTarget(PreventionDiscoveryConfigTargetCloudSqlTargetArgs return cloudSqlTarget(Output.of(cloudSqlTarget)); } + /** + * @param cloudStorageTarget Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageTarget(@Nullable Output cloudStorageTarget) { + $.cloudStorageTarget = cloudStorageTarget; + return this; + } + + /** + * @param cloudStorageTarget Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageTarget(PreventionDiscoveryConfigTargetCloudStorageTargetArgs cloudStorageTarget) { + return cloudStorageTarget(Output.of(cloudStorageTarget)); + } + /** * @param secretsTarget 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. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.java index 80330f6015..b567b18f0c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs.java @@ -18,14 +18,14 @@ public final class PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs e public static final PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs Empty = new PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs(); /** - * A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * 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. * */ @Import(name="createdAfter") private @Nullable Output createdAfter; /** - * @return A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * @return 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. * */ public Optional> createdAfter() { @@ -111,7 +111,7 @@ public Builder(PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgs defau } /** - * @param createdAfter A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * @param createdAfter 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. * * @return builder * @@ -122,7 +122,7 @@ public Builder createdAfter(@Nullable Output createdAfter) { } /** - * @param createdAfter A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * @param createdAfter 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. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.java index efa76b7b55..e3436ebf4b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs.java @@ -17,7 +17,7 @@ public final class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncl public static final PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs Empty = new PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgs(); /** - * A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * */ @@ -25,7 +25,7 @@ public final class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncl private @Nullable Output> patterns; /** - * @return A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * */ @@ -58,7 +58,7 @@ public Builder(PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeR } /** - * @param patterns A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @param patterns The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * * @return builder @@ -70,7 +70,7 @@ public Builder patterns(@Nullable Output collection; /** - * @return A specific set of database resources for this filter to apply to. + * @return A specific set of buckets for this filter to apply to. * Structure is documented below. * */ @@ -52,14 +52,14 @@ public Optional others; /** - * @return Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + * @return Match discovery resources not covered by any other filter. * */ public Optional> others() { @@ -93,7 +93,7 @@ public Builder(PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgs defaults) } /** - * @param collection A specific set of database resources for this filter to apply to. + * @param collection A specific set of buckets for this filter to apply to. * Structure is documented below. * * @return builder @@ -105,7 +105,7 @@ public Builder collection(@Nullable Output includeRegexes; /** - * @return A collection of regular expressions to match a database resource against. + * @return A collection of regular expressions to match a file store against. * Structure is documented below. * */ @@ -57,7 +57,7 @@ public Builder(PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs } /** - * @param includeRegexes A collection of regular expressions to match a database resource against. + * @param includeRegexes A collection of regular expressions to match a file store against. * Structure is documented below. * * @return builder @@ -69,7 +69,7 @@ public Builder includeRegexes(@Nullable Output> patterns; /** - * @return A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * */ @@ -58,7 +58,7 @@ public Builder(PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncl } /** - * @param patterns A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @param patterns The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * * @return builder @@ -70,7 +70,7 @@ public Builder patterns(@Nullable Output refreshFrequency; /** - * @return Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + * @return Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. * */ @@ -76,7 +76,7 @@ public Builder(PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArg } /** - * @param refreshFrequency Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + * @param refreshFrequency Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. * * @return builder @@ -88,7 +88,7 @@ public Builder refreshFrequency(@Nullable Output refreshFrequency) { } /** - * @param refreshFrequency Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + * @param refreshFrequency Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetArgs.java new file mode 100644 index 0000000000..a73f95e6fd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetArgs.java @@ -0,0 +1,213 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetArgs(); + + /** + * In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + * + */ + @Import(name="conditions") + private @Nullable Output conditions; + + /** + * @return In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + * + */ + public Optional> conditions() { + return Optional.ofNullable(this.conditions); + } + + /** + * Disable profiling for buckets that match this filter. + * + */ + @Import(name="disabled") + private @Nullable Output disabled; + + /** + * @return Disable profiling for buckets that match this filter. + * + */ + public Optional> disabled() { + return Optional.ofNullable(this.disabled); + } + + /** + * The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + * + */ + @Import(name="filter", required=true) + private Output filter; + + /** + * @return The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + * + */ + public Output filter() { + return this.filter; + } + + /** + * 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. + * Structure is documented below. + * + */ + @Import(name="generationCadence") + private @Nullable Output generationCadence; + + /** + * @return 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. + * Structure is documented below. + * + */ + public Optional> generationCadence() { + return Optional.ofNullable(this.generationCadence); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetArgs(PreventionDiscoveryConfigTargetCloudStorageTargetArgs $) { + this.conditions = $.conditions; + this.disabled = $.disabled; + this.filter = $.filter; + this.generationCadence = $.generationCadence; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param conditions In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + * + * @return builder + * + */ + public Builder conditions(@Nullable Output conditions) { + $.conditions = conditions; + return this; + } + + /** + * @param conditions In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + * + * @return builder + * + */ + public Builder conditions(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs conditions) { + return conditions(Output.of(conditions)); + } + + /** + * @param disabled Disable profiling for buckets that match this filter. + * + * @return builder + * + */ + public Builder disabled(@Nullable Output disabled) { + $.disabled = disabled; + return this; + } + + /** + * @param disabled Disable profiling for buckets that match this filter. + * + * @return builder + * + */ + public Builder disabled(PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs disabled) { + return disabled(Output.of(disabled)); + } + + /** + * @param filter The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + * + * @return builder + * + */ + public Builder filter(Output filter) { + $.filter = filter; + return this; + } + + /** + * @param filter The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + * + * @return builder + * + */ + public Builder filter(PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs filter) { + return filter(Output.of(filter)); + } + + /** + * @param generationCadence 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder generationCadence(@Nullable Output generationCadence) { + $.generationCadence = generationCadence; + return this; + } + + /** + * @param generationCadence 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder generationCadence(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs generationCadence) { + return generationCadence(Output.of(generationCadence)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetArgs build() { + if ($.filter == null) { + throw new MissingRequiredPropertyException("PreventionDiscoveryConfigTargetCloudStorageTargetArgs", "filter"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs.java new file mode 100644 index 0000000000..72f2250f4e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs.java @@ -0,0 +1,162 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs(); + + /** + * Cloud Storage conditions. + * Structure is documented below. + * + */ + @Import(name="cloudStorageConditions") + private @Nullable Output cloudStorageConditions; + + /** + * @return Cloud Storage conditions. + * Structure is documented below. + * + */ + public Optional> cloudStorageConditions() { + return Optional.ofNullable(this.cloudStorageConditions); + } + + /** + * 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. + * + */ + @Import(name="createdAfter") + private @Nullable Output createdAfter; + + /** + * @return 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. + * + */ + public Optional> createdAfter() { + return Optional.ofNullable(this.createdAfter); + } + + /** + * Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + * + */ + @Import(name="minAge") + private @Nullable Output minAge; + + /** + * @return Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + * + */ + public Optional> minAge() { + return Optional.ofNullable(this.minAge); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs $) { + this.cloudStorageConditions = $.cloudStorageConditions; + this.createdAfter = $.createdAfter; + this.minAge = $.minAge; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudStorageConditions Cloud Storage conditions. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageConditions(@Nullable Output cloudStorageConditions) { + $.cloudStorageConditions = cloudStorageConditions; + return this; + } + + /** + * @param cloudStorageConditions Cloud Storage conditions. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageConditions(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs cloudStorageConditions) { + return cloudStorageConditions(Output.of(cloudStorageConditions)); + } + + /** + * @param createdAfter 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. + * + * @return builder + * + */ + public Builder createdAfter(@Nullable Output createdAfter) { + $.createdAfter = createdAfter; + return this; + } + + /** + * @param createdAfter 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. + * + * @return builder + * + */ + public Builder createdAfter(String createdAfter) { + return createdAfter(Output.of(createdAfter)); + } + + /** + * @param minAge Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + * + * @return builder + * + */ + public Builder minAge(@Nullable Output minAge) { + $.minAge = minAge; + return this; + } + + /** + * @param minAge Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + * + * @return builder + * + */ + public Builder minAge(String minAge) { + return minAge(Output.of(minAge)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs.java new file mode 100644 index 0000000000..7c50ce4d95 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs.java @@ -0,0 +1,151 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs(); + + /** + * Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + * + */ + @Import(name="includedBucketAttributes") + private @Nullable Output> includedBucketAttributes; + + /** + * @return Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + * + */ + public Optional>> includedBucketAttributes() { + return Optional.ofNullable(this.includedBucketAttributes); + } + + /** + * 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + * + */ + @Import(name="includedObjectAttributes") + private @Nullable Output> includedObjectAttributes; + + /** + * @return 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + * + */ + public Optional>> includedObjectAttributes() { + return Optional.ofNullable(this.includedObjectAttributes); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs $) { + this.includedBucketAttributes = $.includedBucketAttributes; + this.includedObjectAttributes = $.includedObjectAttributes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param includedBucketAttributes Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + * + * @return builder + * + */ + public Builder includedBucketAttributes(@Nullable Output> includedBucketAttributes) { + $.includedBucketAttributes = includedBucketAttributes; + return this; + } + + /** + * @param includedBucketAttributes Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + * + * @return builder + * + */ + public Builder includedBucketAttributes(List includedBucketAttributes) { + return includedBucketAttributes(Output.of(includedBucketAttributes)); + } + + /** + * @param includedBucketAttributes Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + * + * @return builder + * + */ + public Builder includedBucketAttributes(String... includedBucketAttributes) { + return includedBucketAttributes(List.of(includedBucketAttributes)); + } + + /** + * @param includedObjectAttributes 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + * + * @return builder + * + */ + public Builder includedObjectAttributes(@Nullable Output> includedObjectAttributes) { + $.includedObjectAttributes = includedObjectAttributes; + return this; + } + + /** + * @param includedObjectAttributes 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + * + * @return builder + * + */ + public Builder includedObjectAttributes(List includedObjectAttributes) { + return includedObjectAttributes(Output.of(includedObjectAttributes)); + } + + /** + * @param includedObjectAttributes 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + * + * @return builder + * + */ + public Builder includedObjectAttributes(String... includedObjectAttributes) { + return includedObjectAttributes(List.of(includedObjectAttributes)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs.java new file mode 100644 index 0000000000..fd66910275 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs.java @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + + + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs(); + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs(); + } + public PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs.java new file mode 100644 index 0000000000..3236677a8f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs.java @@ -0,0 +1,167 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs(); + + /** + * 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. + * Structure is documented below. + * + */ + @Import(name="cloudStorageResourceReference") + private @Nullable Output cloudStorageResourceReference; + + /** + * @return 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. + * Structure is documented below. + * + */ + public Optional> cloudStorageResourceReference() { + return Optional.ofNullable(this.cloudStorageResourceReference); + } + + /** + * A specific set of buckets for this filter to apply to. + * Structure is documented below. + * + */ + @Import(name="collection") + private @Nullable Output collection; + + /** + * @return A specific set of buckets for this filter to apply to. + * Structure is documented below. + * + */ + public Optional> collection() { + return Optional.ofNullable(this.collection); + } + + /** + * Match discovery resources not covered by any other filter. + * + */ + @Import(name="others") + private @Nullable Output others; + + /** + * @return Match discovery resources not covered by any other filter. + * + */ + public Optional> others() { + return Optional.ofNullable(this.others); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs(PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs $) { + this.cloudStorageResourceReference = $.cloudStorageResourceReference; + this.collection = $.collection; + this.others = $.others; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudStorageResourceReference 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageResourceReference(@Nullable Output cloudStorageResourceReference) { + $.cloudStorageResourceReference = cloudStorageResourceReference; + return this; + } + + /** + * @param cloudStorageResourceReference 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageResourceReference(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs cloudStorageResourceReference) { + return cloudStorageResourceReference(Output.of(cloudStorageResourceReference)); + } + + /** + * @param collection A specific set of buckets for this filter to apply to. + * Structure is documented below. + * + * @return builder + * + */ + public Builder collection(@Nullable Output collection) { + $.collection = collection; + return this; + } + + /** + * @param collection A specific set of buckets for this filter to apply to. + * Structure is documented below. + * + * @return builder + * + */ + public Builder collection(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs collection) { + return collection(Output.of(collection)); + } + + /** + * @param others Match discovery resources not covered by any other filter. + * + * @return builder + * + */ + public Builder others(@Nullable Output others) { + $.others = others; + return this; + } + + /** + * @param others Match discovery resources not covered by any other filter. + * + * @return builder + * + */ + public Builder others(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs others) { + return others(Output.of(others)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs.java new file mode 100644 index 0000000000..eb01529f7f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs(); + + /** + * The bucket to scan. + * + */ + @Import(name="bucketName") + private @Nullable Output bucketName; + + /** + * @return The bucket to scan. + * + */ + public Optional> bucketName() { + return Optional.ofNullable(this.bucketName); + } + + /** + * If within a project-level config, then this must match the config's project id. + * + */ + @Import(name="projectId") + private @Nullable Output projectId; + + /** + * @return If within a project-level config, then this must match the config's project id. + * + */ + public Optional> projectId() { + return Optional.ofNullable(this.projectId); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs $) { + this.bucketName = $.bucketName; + this.projectId = $.projectId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bucketName The bucket to scan. + * + * @return builder + * + */ + public Builder bucketName(@Nullable Output bucketName) { + $.bucketName = bucketName; + return this; + } + + /** + * @param bucketName The bucket to scan. + * + * @return builder + * + */ + public Builder bucketName(String bucketName) { + return bucketName(Output.of(bucketName)); + } + + /** + * @param projectId If within a project-level config, then this must match the config's project id. + * + * @return builder + * + */ + public Builder projectId(@Nullable Output projectId) { + $.projectId = projectId; + return this; + } + + /** + * @param projectId If within a project-level config, then this must match the config's project id. + * + * @return builder + * + */ + public Builder projectId(String projectId) { + return projectId(Output.of(projectId)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs.java new file mode 100644 index 0000000000..8c80e2c4ea --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs(); + + /** + * A collection of regular expressions to match a file store against. + * Structure is documented below. + * + */ + @Import(name="includeRegexes") + private @Nullable Output includeRegexes; + + /** + * @return A collection of regular expressions to match a file store against. + * Structure is documented below. + * + */ + public Optional> includeRegexes() { + return Optional.ofNullable(this.includeRegexes); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs $) { + this.includeRegexes = $.includeRegexes; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param includeRegexes A collection of regular expressions to match a file store against. + * Structure is documented below. + * + * @return builder + * + */ + public Builder includeRegexes(@Nullable Output includeRegexes) { + $.includeRegexes = includeRegexes; + return this; + } + + /** + * @param includeRegexes A collection of regular expressions to match a file store against. + * Structure is documented below. + * + * @return builder + * + */ + public Builder includeRegexes(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs includeRegexes) { + return includeRegexes(Output.of(includeRegexes)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs.java new file mode 100644 index 0000000000..143308cce2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs.java @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs(); + + /** + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + * + */ + @Import(name="patterns") + private @Nullable Output> patterns; + + /** + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + * + */ + public Optional>> patterns() { + return Optional.ofNullable(this.patterns); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs $) { + this.patterns = $.patterns; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param patterns The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + * + * @return builder + * + */ + public Builder patterns(@Nullable Output> patterns) { + $.patterns = patterns; + return this; + } + + /** + * @param patterns The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + * + * @return builder + * + */ + public Builder patterns(List patterns) { + return patterns(Output.of(patterns)); + } + + /** + * @param patterns The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + * + * @return builder + * + */ + public Builder patterns(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs... patterns) { + return patterns(List.of(patterns)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs.java new file mode 100644 index 0000000000..3993b8283e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs(); + + /** + * Regex for Cloud Storage. + * Structure is documented below. + * + */ + @Import(name="cloudStorageRegex") + private @Nullable Output cloudStorageRegex; + + /** + * @return Regex for Cloud Storage. + * Structure is documented below. + * + */ + public Optional> cloudStorageRegex() { + return Optional.ofNullable(this.cloudStorageRegex); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs $) { + this.cloudStorageRegex = $.cloudStorageRegex; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param cloudStorageRegex Regex for Cloud Storage. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageRegex(@Nullable Output cloudStorageRegex) { + $.cloudStorageRegex = cloudStorageRegex; + return this; + } + + /** + * @param cloudStorageRegex Regex for Cloud Storage. + * Structure is documented below. + * + * @return builder + * + */ + public Builder cloudStorageRegex(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs cloudStorageRegex) { + return cloudStorageRegex(Output.of(cloudStorageRegex)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs.java new file mode 100644 index 0000000000..7a9aa388c0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs.java @@ -0,0 +1,120 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs(); + + /** + * 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 + * + */ + @Import(name="bucketNameRegex") + private @Nullable Output bucketNameRegex; + + /** + * @return 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 + * + */ + public Optional> bucketNameRegex() { + return Optional.ofNullable(this.bucketNameRegex); + } + + /** + * For organizations, if unset, will match all projects. + * + */ + @Import(name="projectIdRegex") + private @Nullable Output projectIdRegex; + + /** + * @return For organizations, if unset, will match all projects. + * + */ + public Optional> projectIdRegex() { + return Optional.ofNullable(this.projectIdRegex); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs $) { + this.bucketNameRegex = $.bucketNameRegex; + this.projectIdRegex = $.projectIdRegex; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param bucketNameRegex 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 + * + * @return builder + * + */ + public Builder bucketNameRegex(@Nullable Output bucketNameRegex) { + $.bucketNameRegex = bucketNameRegex; + return this; + } + + /** + * @param bucketNameRegex 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 + * + * @return builder + * + */ + public Builder bucketNameRegex(String bucketNameRegex) { + return bucketNameRegex(Output.of(bucketNameRegex)); + } + + /** + * @param projectIdRegex For organizations, if unset, will match all projects. + * + * @return builder + * + */ + public Builder projectIdRegex(@Nullable Output projectIdRegex) { + $.projectIdRegex = projectIdRegex; + return this; + } + + /** + * @param projectIdRegex For organizations, if unset, will match all projects. + * + * @return builder + * + */ + public Builder projectIdRegex(String projectIdRegex) { + return projectIdRegex(Output.of(projectIdRegex)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs.java new file mode 100644 index 0000000000..4cc35bb983 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs.java @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + + + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs(); + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs(); + } + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs.java new file mode 100644 index 0000000000..bfdacfddd2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs.java @@ -0,0 +1,129 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.dataloss.inputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs(); + + /** + * 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. + * Structure is documented below. + * + */ + @Import(name="inspectTemplateModifiedCadence") + private @Nullable Output inspectTemplateModifiedCadence; + + /** + * @return 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. + * Structure is documented below. + * + */ + public Optional> inspectTemplateModifiedCadence() { + return Optional.ofNullable(this.inspectTemplateModifiedCadence); + } + + /** + * Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + @Import(name="refreshFrequency") + private @Nullable Output refreshFrequency; + + /** + * @return Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + public Optional> refreshFrequency() { + return Optional.ofNullable(this.refreshFrequency); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs $) { + this.inspectTemplateModifiedCadence = $.inspectTemplateModifiedCadence; + this.refreshFrequency = $.refreshFrequency; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param inspectTemplateModifiedCadence 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder inspectTemplateModifiedCadence(@Nullable Output inspectTemplateModifiedCadence) { + $.inspectTemplateModifiedCadence = inspectTemplateModifiedCadence; + return this; + } + + /** + * @param inspectTemplateModifiedCadence 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. + * Structure is documented below. + * + * @return builder + * + */ + public Builder inspectTemplateModifiedCadence(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs inspectTemplateModifiedCadence) { + return inspectTemplateModifiedCadence(Output.of(inspectTemplateModifiedCadence)); + } + + /** + * @param refreshFrequency Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + * @return builder + * + */ + public Builder refreshFrequency(@Nullable Output refreshFrequency) { + $.refreshFrequency = refreshFrequency; + return this; + } + + /** + * @param refreshFrequency Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + * @return builder + * + */ + public Builder refreshFrequency(String refreshFrequency) { + return refreshFrequency(Output.of(refreshFrequency)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs.java new file mode 100644 index 0000000000..047e4af1f0 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/inputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs.java @@ -0,0 +1,87 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs extends com.pulumi.resources.ResourceArgs { + + public static final PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs Empty = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs(); + + /** + * How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + @Import(name="frequency") + private @Nullable Output frequency; + + /** + * @return How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + public Optional> frequency() { + return Optional.ofNullable(this.frequency); + } + + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs() {} + + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs $) { + this.frequency = $.frequency; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs $; + + public Builder() { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs(); + } + + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs defaults) { + $ = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param frequency How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + * @return builder + * + */ + public Builder frequency(@Nullable Output frequency) { + $.frequency = frequency; + return this; + } + + /** + * @param frequency How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + * @return builder + * + */ + public Builder frequency(String frequency) { + return frequency(Output.of(frequency)); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTarget.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTarget.java index 8acfdb7a87..c001c519fc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTarget.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTarget.java @@ -6,6 +6,7 @@ import com.pulumi.core.annotations.CustomType; import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetBigQueryTarget; import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudSqlTarget; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTarget; import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetSecretsTarget; import java.util.Objects; import java.util.Optional; @@ -25,6 +26,12 @@ public final class PreventionDiscoveryConfigTarget { * */ private @Nullable PreventionDiscoveryConfigTargetCloudSqlTarget cloudSqlTarget; + /** + * @return Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTarget cloudStorageTarget; /** * @return 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. * @@ -48,6 +55,14 @@ public Optional bigQueryTarget() public Optional cloudSqlTarget() { return Optional.ofNullable(this.cloudSqlTarget); } + /** + * @return Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + * + */ + public Optional cloudStorageTarget() { + return Optional.ofNullable(this.cloudStorageTarget); + } /** * @return 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. * @@ -67,12 +82,14 @@ public static Builder builder(PreventionDiscoveryConfigTarget defaults) { public static final class Builder { private @Nullable PreventionDiscoveryConfigTargetBigQueryTarget bigQueryTarget; private @Nullable PreventionDiscoveryConfigTargetCloudSqlTarget cloudSqlTarget; + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTarget cloudStorageTarget; private @Nullable PreventionDiscoveryConfigTargetSecretsTarget secretsTarget; public Builder() {} public Builder(PreventionDiscoveryConfigTarget defaults) { Objects.requireNonNull(defaults); this.bigQueryTarget = defaults.bigQueryTarget; this.cloudSqlTarget = defaults.cloudSqlTarget; + this.cloudStorageTarget = defaults.cloudStorageTarget; this.secretsTarget = defaults.secretsTarget; } @@ -89,6 +106,12 @@ public Builder cloudSqlTarget(@Nullable PreventionDiscoveryConfigTargetCloudSqlT return this; } @CustomType.Setter + public Builder cloudStorageTarget(@Nullable PreventionDiscoveryConfigTargetCloudStorageTarget cloudStorageTarget) { + + this.cloudStorageTarget = cloudStorageTarget; + return this; + } + @CustomType.Setter public Builder secretsTarget(@Nullable PreventionDiscoveryConfigTargetSecretsTarget secretsTarget) { this.secretsTarget = secretsTarget; @@ -98,6 +121,7 @@ public PreventionDiscoveryConfigTarget build() { final var _resultValue = new PreventionDiscoveryConfigTarget(); _resultValue.bigQueryTarget = bigQueryTarget; _resultValue.cloudSqlTarget = cloudSqlTarget; + _resultValue.cloudStorageTarget = cloudStorageTarget; _resultValue.secretsTarget = secretsTarget; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.java index 96b9820938..127eaa86de 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetConditions.java @@ -14,7 +14,7 @@ @CustomType public final class PreventionDiscoveryConfigTargetBigQueryTargetConditions { /** - * @return A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * @return 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. * */ private @Nullable String createdAfter; @@ -39,7 +39,7 @@ public final class PreventionDiscoveryConfigTargetBigQueryTargetConditions { private PreventionDiscoveryConfigTargetBigQueryTargetConditions() {} /** - * @return A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * @return 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. * */ public Optional createdAfter() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.java index 7582cbaa95..7e62bc03e6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes.java @@ -12,7 +12,7 @@ @CustomType public final class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes { /** - * @return A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * */ @@ -20,7 +20,7 @@ public final class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncl private PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes() {} /** - * @return A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.java index 1af5905bce..763d891af5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilter.java @@ -14,7 +14,7 @@ @CustomType public final class PreventionDiscoveryConfigTargetCloudSqlTargetFilter { /** - * @return A specific set of database resources for this filter to apply to. + * @return A specific set of buckets for this filter to apply to. * Structure is documented below. * */ @@ -26,14 +26,14 @@ public final class PreventionDiscoveryConfigTargetCloudSqlTargetFilter { */ private @Nullable PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference databaseResourceReference; /** - * @return Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + * @return Match discovery resources not covered by any other filter. * */ private @Nullable PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers others; private PreventionDiscoveryConfigTargetCloudSqlTargetFilter() {} /** - * @return A specific set of database resources for this filter to apply to. + * @return A specific set of buckets for this filter to apply to. * Structure is documented below. * */ @@ -49,7 +49,7 @@ public Optional others() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.java index 454824f5a2..c46a889b49 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection.java @@ -12,7 +12,7 @@ @CustomType public final class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection { /** - * @return A collection of regular expressions to match a database resource against. + * @return A collection of regular expressions to match a file store against. * Structure is documented below. * */ @@ -20,7 +20,7 @@ public final class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection private PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection() {} /** - * @return A collection of regular expressions to match a database resource against. + * @return A collection of regular expressions to match a file store against. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.java index f3370909f5..356db94dc4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes.java @@ -12,7 +12,7 @@ @CustomType public final class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes { /** - * @return A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * */ @@ -20,7 +20,7 @@ public final class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection private PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes() {} /** - * @return A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.java index 65751d673b..ba0bbfc2fb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence.java @@ -13,7 +13,7 @@ @CustomType public final class PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence { /** - * @return Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + * @return Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. * */ @@ -27,7 +27,7 @@ public final class PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenc private PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence() {} /** - * @return Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + * @return Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTarget.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTarget.java new file mode 100644 index 0000000000..49ca95a25e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTarget.java @@ -0,0 +1,132 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditions; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetDisabled; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilter; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTarget { + /** + * @return In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetConditions conditions; + /** + * @return Disable profiling for buckets that match this filter. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetDisabled disabled; + /** + * @return The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + * + */ + private PreventionDiscoveryConfigTargetCloudStorageTargetFilter filter; + /** + * @return 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. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence generationCadence; + + private PreventionDiscoveryConfigTargetCloudStorageTarget() {} + /** + * @return In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + * + */ + public Optional conditions() { + return Optional.ofNullable(this.conditions); + } + /** + * @return Disable profiling for buckets that match this filter. + * + */ + public Optional disabled() { + return Optional.ofNullable(this.disabled); + } + /** + * @return The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + * + */ + public PreventionDiscoveryConfigTargetCloudStorageTargetFilter filter() { + return this.filter; + } + /** + * @return 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. + * Structure is documented below. + * + */ + public Optional generationCadence() { + return Optional.ofNullable(this.generationCadence); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTarget defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetConditions conditions; + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetDisabled disabled; + private PreventionDiscoveryConfigTargetCloudStorageTargetFilter filter; + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence generationCadence; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTarget defaults) { + Objects.requireNonNull(defaults); + this.conditions = defaults.conditions; + this.disabled = defaults.disabled; + this.filter = defaults.filter; + this.generationCadence = defaults.generationCadence; + } + + @CustomType.Setter + public Builder conditions(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetConditions conditions) { + + this.conditions = conditions; + return this; + } + @CustomType.Setter + public Builder disabled(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetDisabled disabled) { + + this.disabled = disabled; + return this; + } + @CustomType.Setter + public Builder filter(PreventionDiscoveryConfigTargetCloudStorageTargetFilter filter) { + if (filter == null) { + throw new MissingRequiredPropertyException("PreventionDiscoveryConfigTargetCloudStorageTarget", "filter"); + } + this.filter = filter; + return this; + } + @CustomType.Setter + public Builder generationCadence(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence generationCadence) { + + this.generationCadence = generationCadence; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTarget build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTarget(); + _resultValue.conditions = conditions; + _resultValue.disabled = disabled; + _resultValue.filter = filter; + _resultValue.generationCadence = generationCadence; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditions.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditions.java new file mode 100644 index 0000000000..46b28d943e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditions.java @@ -0,0 +1,102 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetConditions { + /** + * @return Cloud Storage conditions. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions cloudStorageConditions; + /** + * @return 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. + * + */ + private @Nullable String createdAfter; + /** + * @return Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + * + */ + private @Nullable String minAge; + + private PreventionDiscoveryConfigTargetCloudStorageTargetConditions() {} + /** + * @return Cloud Storage conditions. + * Structure is documented below. + * + */ + public Optional cloudStorageConditions() { + return Optional.ofNullable(this.cloudStorageConditions); + } + /** + * @return 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. + * + */ + public Optional createdAfter() { + return Optional.ofNullable(this.createdAfter); + } + /** + * @return Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + * + */ + public Optional minAge() { + return Optional.ofNullable(this.minAge); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions cloudStorageConditions; + private @Nullable String createdAfter; + private @Nullable String minAge; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditions defaults) { + Objects.requireNonNull(defaults); + this.cloudStorageConditions = defaults.cloudStorageConditions; + this.createdAfter = defaults.createdAfter; + this.minAge = defaults.minAge; + } + + @CustomType.Setter + public Builder cloudStorageConditions(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions cloudStorageConditions) { + + this.cloudStorageConditions = cloudStorageConditions; + return this; + } + @CustomType.Setter + public Builder createdAfter(@Nullable String createdAfter) { + + this.createdAfter = createdAfter; + return this; + } + @CustomType.Setter + public Builder minAge(@Nullable String minAge) { + + this.minAge = minAge; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetConditions build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetConditions(); + _resultValue.cloudStorageConditions = cloudStorageConditions; + _resultValue.createdAfter = createdAfter; + _resultValue.minAge = minAge; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.java new file mode 100644 index 0000000000..9516b1e335 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.java @@ -0,0 +1,88 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions { + /** + * @return Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + * + */ + private @Nullable List includedBucketAttributes; + /** + * @return 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + * + */ + private @Nullable List includedObjectAttributes; + + private PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions() {} + /** + * @return Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + * + */ + public List includedBucketAttributes() { + return this.includedBucketAttributes == null ? List.of() : this.includedBucketAttributes; + } + /** + * @return 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + * + */ + public List includedObjectAttributes() { + return this.includedObjectAttributes == null ? List.of() : this.includedObjectAttributes; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List includedBucketAttributes; + private @Nullable List includedObjectAttributes; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions defaults) { + Objects.requireNonNull(defaults); + this.includedBucketAttributes = defaults.includedBucketAttributes; + this.includedObjectAttributes = defaults.includedObjectAttributes; + } + + @CustomType.Setter + public Builder includedBucketAttributes(@Nullable List includedBucketAttributes) { + + this.includedBucketAttributes = includedBucketAttributes; + return this; + } + public Builder includedBucketAttributes(String... includedBucketAttributes) { + return includedBucketAttributes(List.of(includedBucketAttributes)); + } + @CustomType.Setter + public Builder includedObjectAttributes(@Nullable List includedObjectAttributes) { + + this.includedObjectAttributes = includedObjectAttributes; + return this; + } + public Builder includedObjectAttributes(String... includedObjectAttributes) { + return includedObjectAttributes(List.of(includedObjectAttributes)); + } + public PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions(); + _resultValue.includedBucketAttributes = includedBucketAttributes; + _resultValue.includedObjectAttributes = includedObjectAttributes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled.java new file mode 100644 index 0000000000..f5323e07c4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetDisabled.java @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetDisabled { + private PreventionDiscoveryConfigTargetCloudStorageTargetDisabled() {} + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetDisabled defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetDisabled defaults) { + Objects.requireNonNull(defaults); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetDisabled build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetDisabled(); + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilter.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilter.java new file mode 100644 index 0000000000..4a1a99badf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilter.java @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilter { + /** + * @return 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. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference cloudStorageResourceReference; + /** + * @return A specific set of buckets for this filter to apply to. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection collection; + /** + * @return Match discovery resources not covered by any other filter. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers others; + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilter() {} + /** + * @return 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. + * Structure is documented below. + * + */ + public Optional cloudStorageResourceReference() { + return Optional.ofNullable(this.cloudStorageResourceReference); + } + /** + * @return A specific set of buckets for this filter to apply to. + * Structure is documented below. + * + */ + public Optional collection() { + return Optional.ofNullable(this.collection); + } + /** + * @return Match discovery resources not covered by any other filter. + * + */ + public Optional others() { + return Optional.ofNullable(this.others); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilter defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference cloudStorageResourceReference; + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection collection; + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers others; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilter defaults) { + Objects.requireNonNull(defaults); + this.cloudStorageResourceReference = defaults.cloudStorageResourceReference; + this.collection = defaults.collection; + this.others = defaults.others; + } + + @CustomType.Setter + public Builder cloudStorageResourceReference(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference cloudStorageResourceReference) { + + this.cloudStorageResourceReference = cloudStorageResourceReference; + return this; + } + @CustomType.Setter + public Builder collection(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection collection) { + + this.collection = collection; + return this; + } + @CustomType.Setter + public Builder others(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers others) { + + this.others = others; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetFilter build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetFilter(); + _resultValue.cloudStorageResourceReference = cloudStorageResourceReference; + _resultValue.collection = collection; + _resultValue.others = others; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.java new file mode 100644 index 0000000000..816d4bb987 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference { + /** + * @return The bucket to scan. + * + */ + private @Nullable String bucketName; + /** + * @return If within a project-level config, then this must match the config's project id. + * + */ + private @Nullable String projectId; + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference() {} + /** + * @return The bucket to scan. + * + */ + public Optional bucketName() { + return Optional.ofNullable(this.bucketName); + } + /** + * @return If within a project-level config, then this must match the config's project id. + * + */ + public Optional projectId() { + return Optional.ofNullable(this.projectId); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String bucketName; + private @Nullable String projectId; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference defaults) { + Objects.requireNonNull(defaults); + this.bucketName = defaults.bucketName; + this.projectId = defaults.projectId; + } + + @CustomType.Setter + public Builder bucketName(@Nullable String bucketName) { + + this.bucketName = bucketName; + return this; + } + @CustomType.Setter + public Builder projectId(@Nullable String projectId) { + + this.projectId = projectId; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference(); + _resultValue.bucketName = bucketName; + _resultValue.projectId = projectId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.java new file mode 100644 index 0000000000..88fbe7dd5d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.java @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection { + /** + * @return A collection of regular expressions to match a file store against. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes includeRegexes; + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection() {} + /** + * @return A collection of regular expressions to match a file store against. + * Structure is documented below. + * + */ + public Optional includeRegexes() { + return Optional.ofNullable(this.includeRegexes); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes includeRegexes; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection defaults) { + Objects.requireNonNull(defaults); + this.includeRegexes = defaults.includeRegexes; + } + + @CustomType.Setter + public Builder includeRegexes(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes includeRegexes) { + + this.includeRegexes = includeRegexes; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection(); + _resultValue.includeRegexes = includeRegexes; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes.java new file mode 100644 index 0000000000..94d2f70e12 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes.java @@ -0,0 +1,62 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern; +import java.util.List; +import java.util.Objects; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes { + /** + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + * + */ + private @Nullable List patterns; + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes() {} + /** + * @return The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + * + */ + public List patterns() { + return this.patterns == null ? List.of() : this.patterns; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List patterns; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes defaults) { + Objects.requireNonNull(defaults); + this.patterns = defaults.patterns; + } + + @CustomType.Setter + public Builder patterns(@Nullable List patterns) { + + this.patterns = patterns; + return this; + } + public Builder patterns(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern... patterns) { + return patterns(List.of(patterns)); + } + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes(); + _resultValue.patterns = patterns; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.java new file mode 100644 index 0000000000..b69d19cadd --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.java @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern { + /** + * @return Regex for Cloud Storage. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex cloudStorageRegex; + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern() {} + /** + * @return Regex for Cloud Storage. + * Structure is documented below. + * + */ + public Optional cloudStorageRegex() { + return Optional.ofNullable(this.cloudStorageRegex); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex cloudStorageRegex; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern defaults) { + Objects.requireNonNull(defaults); + this.cloudStorageRegex = defaults.cloudStorageRegex; + } + + @CustomType.Setter + public Builder cloudStorageRegex(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex cloudStorageRegex) { + + this.cloudStorageRegex = cloudStorageRegex; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern(); + _resultValue.cloudStorageRegex = cloudStorageRegex; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.java new file mode 100644 index 0000000000..938afe1cd9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.java @@ -0,0 +1,78 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex { + /** + * @return 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 + * + */ + private @Nullable String bucketNameRegex; + /** + * @return For organizations, if unset, will match all projects. + * + */ + private @Nullable String projectIdRegex; + + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex() {} + /** + * @return 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 + * + */ + public Optional bucketNameRegex() { + return Optional.ofNullable(this.bucketNameRegex); + } + /** + * @return For organizations, if unset, will match all projects. + * + */ + public Optional projectIdRegex() { + return Optional.ofNullable(this.projectIdRegex); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String bucketNameRegex; + private @Nullable String projectIdRegex; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex defaults) { + Objects.requireNonNull(defaults); + this.bucketNameRegex = defaults.bucketNameRegex; + this.projectIdRegex = defaults.projectIdRegex; + } + + @CustomType.Setter + public Builder bucketNameRegex(@Nullable String bucketNameRegex) { + + this.bucketNameRegex = bucketNameRegex; + return this; + } + @CustomType.Setter + public Builder projectIdRegex(@Nullable String projectIdRegex) { + + this.projectIdRegex = projectIdRegex; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex(); + _resultValue.bucketNameRegex = bucketNameRegex; + _resultValue.projectIdRegex = projectIdRegex; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers.java new file mode 100644 index 0000000000..49feb4ebbf --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers.java @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers { + private PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers() {} + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers defaults) { + Objects.requireNonNull(defaults); + } + + public PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers(); + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.java new file mode 100644 index 0000000000..728298259b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.java @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.dataloss.outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence { + /** + * @return 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. + * Structure is documented below. + * + */ + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence inspectTemplateModifiedCadence; + /** + * @return Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + private @Nullable String refreshFrequency; + + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence() {} + /** + * @return 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. + * Structure is documented below. + * + */ + public Optional inspectTemplateModifiedCadence() { + return Optional.ofNullable(this.inspectTemplateModifiedCadence); + } + /** + * @return Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + public Optional refreshFrequency() { + return Optional.ofNullable(this.refreshFrequency); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence inspectTemplateModifiedCadence; + private @Nullable String refreshFrequency; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence defaults) { + Objects.requireNonNull(defaults); + this.inspectTemplateModifiedCadence = defaults.inspectTemplateModifiedCadence; + this.refreshFrequency = defaults.refreshFrequency; + } + + @CustomType.Setter + public Builder inspectTemplateModifiedCadence(@Nullable PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence inspectTemplateModifiedCadence) { + + this.inspectTemplateModifiedCadence = inspectTemplateModifiedCadence; + return this; + } + @CustomType.Setter + public Builder refreshFrequency(@Nullable String refreshFrequency) { + + this.refreshFrequency = refreshFrequency; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence(); + _resultValue.inspectTemplateModifiedCadence = inspectTemplateModifiedCadence; + _resultValue.refreshFrequency = refreshFrequency; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence.java b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence.java new file mode 100644 index 0000000000..0be71f0971 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataloss/outputs/PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence.java @@ -0,0 +1,59 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.dataloss.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence { + /** + * @return How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + private @Nullable String frequency; + + private PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence() {} + /** + * @return How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + * + */ + public Optional frequency() { + return Optional.ofNullable(this.frequency); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String frequency; + public Builder() {} + public Builder(PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence defaults) { + Objects.requireNonNull(defaults); + this.frequency = defaults.frequency; + } + + @CustomType.Setter + public Builder frequency(@Nullable String frequency) { + + this.frequency = frequency; + return this; + } + public PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence build() { + final var _resultValue = new PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence(); + _resultValue.frequency = frequency; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectType.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectType.java index fed2816144..875ea68283 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectType.java @@ -511,13 +511,20 @@ public AspectType(String name, @Nullable AspectTypeArgs args) { * @param options A bag of options that control this resource's behavior. */ public AspectType(String name, @Nullable AspectTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/aspectType:AspectType", name, args == null ? AspectTypeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/aspectType:AspectType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AspectType(String name, Output id, @Nullable AspectTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/aspectType:AspectType", name, state, makeResourceOptions(options, id)); } + private static AspectTypeArgs makeArgs(@Nullable AspectTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AspectTypeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamBinding.java index 9743c380dd..9108be5f19 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamBinding.java @@ -459,13 +459,20 @@ public AspectTypeIamBinding(String name, AspectTypeIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public AspectTypeIamBinding(String name, AspectTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/aspectTypeIamBinding:AspectTypeIamBinding", name, args == null ? AspectTypeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/aspectTypeIamBinding:AspectTypeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AspectTypeIamBinding(String name, Output id, @Nullable AspectTypeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/aspectTypeIamBinding:AspectTypeIamBinding", name, state, makeResourceOptions(options, id)); } + private static AspectTypeIamBindingArgs makeArgs(AspectTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AspectTypeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamMember.java index e7c7b5536c..a6150d4251 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamMember.java @@ -458,13 +458,20 @@ public AspectTypeIamMember(String name, AspectTypeIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public AspectTypeIamMember(String name, AspectTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/aspectTypeIamMember:AspectTypeIamMember", name, args == null ? AspectTypeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/aspectTypeIamMember:AspectTypeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AspectTypeIamMember(String name, Output id, @Nullable AspectTypeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/aspectTypeIamMember:AspectTypeIamMember", name, state, makeResourceOptions(options, id)); } + private static AspectTypeIamMemberArgs makeArgs(AspectTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AspectTypeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamPolicy.java index 099dd5fe73..dfad39a5ae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AspectTypeIamPolicy.java @@ -414,13 +414,20 @@ public AspectTypeIamPolicy(String name, AspectTypeIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AspectTypeIamPolicy(String name, AspectTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/aspectTypeIamPolicy:AspectTypeIamPolicy", name, args == null ? AspectTypeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/aspectTypeIamPolicy:AspectTypeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AspectTypeIamPolicy(String name, Output id, @Nullable AspectTypeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/aspectTypeIamPolicy:AspectTypeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AspectTypeIamPolicyArgs makeArgs(AspectTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AspectTypeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Asset.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Asset.java index b6577a6bd4..9d37046fac 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Asset.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Asset.java @@ -436,13 +436,20 @@ public Asset(String name, AssetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Asset(String name, AssetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/asset:Asset", name, args == null ? AssetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/asset:Asset", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Asset(String name, Output id, @Nullable AssetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/asset:Asset", name, state, makeResourceOptions(options, id)); } + private static AssetArgs makeArgs(AssetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AssetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamBinding.java index 81331b89a5..5f1cc969da 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamBinding.java @@ -477,13 +477,20 @@ public AssetIamBinding(String name, AssetIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public AssetIamBinding(String name, AssetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/assetIamBinding:AssetIamBinding", name, args == null ? AssetIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/assetIamBinding:AssetIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AssetIamBinding(String name, Output id, @Nullable AssetIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/assetIamBinding:AssetIamBinding", name, state, makeResourceOptions(options, id)); } + private static AssetIamBindingArgs makeArgs(AssetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AssetIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamMember.java index 238fd91c41..3b6c3872c0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamMember.java @@ -476,13 +476,20 @@ public AssetIamMember(String name, AssetIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public AssetIamMember(String name, AssetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/assetIamMember:AssetIamMember", name, args == null ? AssetIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/assetIamMember:AssetIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AssetIamMember(String name, Output id, @Nullable AssetIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/assetIamMember:AssetIamMember", name, state, makeResourceOptions(options, id)); } + private static AssetIamMemberArgs makeArgs(AssetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AssetIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamPolicy.java index b07a0df651..372c33c691 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/AssetIamPolicy.java @@ -432,13 +432,20 @@ public AssetIamPolicy(String name, AssetIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AssetIamPolicy(String name, AssetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/assetIamPolicy:AssetIamPolicy", name, args == null ? AssetIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/assetIamPolicy:AssetIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AssetIamPolicy(String name, Output id, @Nullable AssetIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/assetIamPolicy:AssetIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AssetIamPolicyArgs makeArgs(AssetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AssetIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Datascan.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Datascan.java index 0c6ea8125e..1dc38c4d09 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Datascan.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Datascan.java @@ -685,13 +685,20 @@ public Datascan(String name, DatascanArgs args) { * @param options A bag of options that control this resource's behavior. */ public Datascan(String name, DatascanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/datascan:Datascan", name, args == null ? DatascanArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/datascan:Datascan", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Datascan(String name, Output id, @Nullable DatascanState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/datascan:Datascan", name, state, makeResourceOptions(options, id)); } + private static DatascanArgs makeArgs(DatascanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatascanArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamBinding.java index afd07de606..19cfd0d3fd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamBinding.java @@ -459,13 +459,20 @@ public DatascanIamBinding(String name, DatascanIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatascanIamBinding(String name, DatascanIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/datascanIamBinding:DatascanIamBinding", name, args == null ? DatascanIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/datascanIamBinding:DatascanIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatascanIamBinding(String name, Output id, @Nullable DatascanIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/datascanIamBinding:DatascanIamBinding", name, state, makeResourceOptions(options, id)); } + private static DatascanIamBindingArgs makeArgs(DatascanIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatascanIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamMember.java index c1d65e0d90..bb9e85bafc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamMember.java @@ -458,13 +458,20 @@ public DatascanIamMember(String name, DatascanIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatascanIamMember(String name, DatascanIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/datascanIamMember:DatascanIamMember", name, args == null ? DatascanIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/datascanIamMember:DatascanIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatascanIamMember(String name, Output id, @Nullable DatascanIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/datascanIamMember:DatascanIamMember", name, state, makeResourceOptions(options, id)); } + private static DatascanIamMemberArgs makeArgs(DatascanIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatascanIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamPolicy.java index 174f8c585b..4e3a1dcf38 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/DatascanIamPolicy.java @@ -414,13 +414,20 @@ public DatascanIamPolicy(String name, DatascanIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatascanIamPolicy(String name, DatascanIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/datascanIamPolicy:DatascanIamPolicy", name, args == null ? DatascanIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/datascanIamPolicy:DatascanIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatascanIamPolicy(String name, Output id, @Nullable DatascanIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/datascanIamPolicy:DatascanIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DatascanIamPolicyArgs makeArgs(DatascanIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatascanIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroup.java index 7d7eff61f0..ab4b0c0ae5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroup.java @@ -341,13 +341,20 @@ public EntryGroup(String name, @Nullable EntryGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroup(String name, @Nullable EntryGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryGroup:EntryGroup", name, args == null ? EntryGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryGroup:EntryGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroup(String name, Output id, @Nullable EntryGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryGroup:EntryGroup", name, state, makeResourceOptions(options, id)); } + private static EntryGroupArgs makeArgs(@Nullable EntryGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamBinding.java index 047c762813..2efbdbc703 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamBinding.java @@ -459,13 +459,20 @@ public EntryGroupIamBinding(String name, EntryGroupIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroupIamBinding(String name, EntryGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryGroupIamBinding:EntryGroupIamBinding", name, args == null ? EntryGroupIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryGroupIamBinding:EntryGroupIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroupIamBinding(String name, Output id, @Nullable EntryGroupIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryGroupIamBinding:EntryGroupIamBinding", name, state, makeResourceOptions(options, id)); } + private static EntryGroupIamBindingArgs makeArgs(EntryGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamMember.java index 53d5b940e3..0b746a0406 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamMember.java @@ -458,13 +458,20 @@ public EntryGroupIamMember(String name, EntryGroupIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroupIamMember(String name, EntryGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryGroupIamMember:EntryGroupIamMember", name, args == null ? EntryGroupIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryGroupIamMember:EntryGroupIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroupIamMember(String name, Output id, @Nullable EntryGroupIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryGroupIamMember:EntryGroupIamMember", name, state, makeResourceOptions(options, id)); } + private static EntryGroupIamMemberArgs makeArgs(EntryGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamPolicy.java index 39e82e1d7d..7c335aaac3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryGroupIamPolicy.java @@ -414,13 +414,20 @@ public EntryGroupIamPolicy(String name, EntryGroupIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryGroupIamPolicy(String name, EntryGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryGroupIamPolicy:EntryGroupIamPolicy", name, args == null ? EntryGroupIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryGroupIamPolicy:EntryGroupIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryGroupIamPolicy(String name, Output id, @Nullable EntryGroupIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryGroupIamPolicy:EntryGroupIamPolicy", name, state, makeResourceOptions(options, id)); } + private static EntryGroupIamPolicyArgs makeArgs(EntryGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryGroupIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryType.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryType.java index c3362bf676..25e6b539ee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryType.java @@ -427,13 +427,20 @@ public EntryType(String name, @Nullable EntryTypeArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryType(String name, @Nullable EntryTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryType:EntryType", name, args == null ? EntryTypeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryType:EntryType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryType(String name, Output id, @Nullable EntryTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryType:EntryType", name, state, makeResourceOptions(options, id)); } + private static EntryTypeArgs makeArgs(@Nullable EntryTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryTypeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamBinding.java index 5678e28f97..a30d733e6f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamBinding.java @@ -459,13 +459,20 @@ public EntryTypeIamBinding(String name, EntryTypeIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryTypeIamBinding(String name, EntryTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryTypeIamBinding:EntryTypeIamBinding", name, args == null ? EntryTypeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryTypeIamBinding:EntryTypeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryTypeIamBinding(String name, Output id, @Nullable EntryTypeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryTypeIamBinding:EntryTypeIamBinding", name, state, makeResourceOptions(options, id)); } + private static EntryTypeIamBindingArgs makeArgs(EntryTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryTypeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamMember.java index f93981a7b4..17e2c22e50 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamMember.java @@ -458,13 +458,20 @@ public EntryTypeIamMember(String name, EntryTypeIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryTypeIamMember(String name, EntryTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryTypeIamMember:EntryTypeIamMember", name, args == null ? EntryTypeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryTypeIamMember:EntryTypeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryTypeIamMember(String name, Output id, @Nullable EntryTypeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryTypeIamMember:EntryTypeIamMember", name, state, makeResourceOptions(options, id)); } + private static EntryTypeIamMemberArgs makeArgs(EntryTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryTypeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamPolicy.java index 428a8a57a9..7f586e23c8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/EntryTypeIamPolicy.java @@ -414,13 +414,20 @@ public EntryTypeIamPolicy(String name, EntryTypeIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntryTypeIamPolicy(String name, EntryTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/entryTypeIamPolicy:EntryTypeIamPolicy", name, args == null ? EntryTypeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/entryTypeIamPolicy:EntryTypeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntryTypeIamPolicy(String name, Output id, @Nullable EntryTypeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/entryTypeIamPolicy:EntryTypeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static EntryTypeIamPolicyArgs makeArgs(EntryTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntryTypeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Lake.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Lake.java index 8b3aa36018..ad46206d40 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Lake.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Lake.java @@ -349,13 +349,20 @@ public Lake(String name, LakeArgs args) { * @param options A bag of options that control this resource's behavior. */ public Lake(String name, LakeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/lake:Lake", name, args == null ? LakeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/lake:Lake", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Lake(String name, Output id, @Nullable LakeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/lake:Lake", name, state, makeResourceOptions(options, id)); } + private static LakeArgs makeArgs(LakeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LakeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamBinding.java index db309af85e..6433c6adc3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamBinding.java @@ -453,13 +453,20 @@ public LakeIamBinding(String name, LakeIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public LakeIamBinding(String name, LakeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/lakeIamBinding:LakeIamBinding", name, args == null ? LakeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/lakeIamBinding:LakeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LakeIamBinding(String name, Output id, @Nullable LakeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/lakeIamBinding:LakeIamBinding", name, state, makeResourceOptions(options, id)); } + private static LakeIamBindingArgs makeArgs(LakeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LakeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamMember.java index 44c58849b1..453738159c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamMember.java @@ -452,13 +452,20 @@ public LakeIamMember(String name, LakeIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public LakeIamMember(String name, LakeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/lakeIamMember:LakeIamMember", name, args == null ? LakeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/lakeIamMember:LakeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LakeIamMember(String name, Output id, @Nullable LakeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/lakeIamMember:LakeIamMember", name, state, makeResourceOptions(options, id)); } + private static LakeIamMemberArgs makeArgs(LakeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LakeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamPolicy.java index 64eed83ef3..84a740167a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/LakeIamPolicy.java @@ -408,13 +408,20 @@ public LakeIamPolicy(String name, LakeIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public LakeIamPolicy(String name, LakeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/lakeIamPolicy:LakeIamPolicy", name, args == null ? LakeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/lakeIamPolicy:LakeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LakeIamPolicy(String name, Output id, @Nullable LakeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/lakeIamPolicy:LakeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static LakeIamPolicyArgs makeArgs(LakeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LakeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Task.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Task.java index a31374b94d..23f6760766 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Task.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Task.java @@ -628,13 +628,20 @@ public Task(String name, TaskArgs args) { * @param options A bag of options that control this resource's behavior. */ public Task(String name, TaskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/task:Task", name, args == null ? TaskArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/task:Task", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Task(String name, Output id, @Nullable TaskState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/task:Task", name, state, makeResourceOptions(options, id)); } + private static TaskArgs makeArgs(TaskArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaskArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamBinding.java index 7fdff29dca..5fa93b3ad3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamBinding.java @@ -481,13 +481,20 @@ public TaskIamBinding(String name, TaskIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TaskIamBinding(String name, TaskIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/taskIamBinding:TaskIamBinding", name, args == null ? TaskIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/taskIamBinding:TaskIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TaskIamBinding(String name, Output id, @Nullable TaskIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/taskIamBinding:TaskIamBinding", name, state, makeResourceOptions(options, id)); } + private static TaskIamBindingArgs makeArgs(TaskIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaskIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamMember.java index 73ff2b7903..fc9bc1c870 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamMember.java @@ -480,13 +480,20 @@ public TaskIamMember(String name, TaskIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TaskIamMember(String name, TaskIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/taskIamMember:TaskIamMember", name, args == null ? TaskIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/taskIamMember:TaskIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TaskIamMember(String name, Output id, @Nullable TaskIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/taskIamMember:TaskIamMember", name, state, makeResourceOptions(options, id)); } + private static TaskIamMemberArgs makeArgs(TaskIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaskIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamPolicy.java index d0baab5628..1addca0266 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/TaskIamPolicy.java @@ -436,13 +436,20 @@ public TaskIamPolicy(String name, TaskIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TaskIamPolicy(String name, TaskIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/taskIamPolicy:TaskIamPolicy", name, args == null ? TaskIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/taskIamPolicy:TaskIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TaskIamPolicy(String name, Output id, @Nullable TaskIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/taskIamPolicy:TaskIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TaskIamPolicyArgs makeArgs(TaskIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TaskIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Zone.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Zone.java index 55be22db81..242aa816bc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Zone.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/Zone.java @@ -378,13 +378,20 @@ public Zone(String name, ZoneArgs args) { * @param options A bag of options that control this resource's behavior. */ public Zone(String name, ZoneArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/zone:Zone", name, args == null ? ZoneArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/zone:Zone", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Zone(String name, Output id, @Nullable ZoneState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/zone:Zone", name, state, makeResourceOptions(options, id)); } + private static ZoneArgs makeArgs(ZoneArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ZoneArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamBinding.java index 0cf912ecbd..a32bf9454c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamBinding.java @@ -465,13 +465,20 @@ public ZoneIamBinding(String name, ZoneIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ZoneIamBinding(String name, ZoneIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/zoneIamBinding:ZoneIamBinding", name, args == null ? ZoneIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/zoneIamBinding:ZoneIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ZoneIamBinding(String name, Output id, @Nullable ZoneIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/zoneIamBinding:ZoneIamBinding", name, state, makeResourceOptions(options, id)); } + private static ZoneIamBindingArgs makeArgs(ZoneIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ZoneIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamMember.java index b36de2d062..e0b57cd347 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamMember.java @@ -464,13 +464,20 @@ public ZoneIamMember(String name, ZoneIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ZoneIamMember(String name, ZoneIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/zoneIamMember:ZoneIamMember", name, args == null ? ZoneIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/zoneIamMember:ZoneIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ZoneIamMember(String name, Output id, @Nullable ZoneIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/zoneIamMember:ZoneIamMember", name, state, makeResourceOptions(options, id)); } + private static ZoneIamMemberArgs makeArgs(ZoneIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ZoneIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamPolicy.java index 717ac11d79..b7a718d8b9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataplex/ZoneIamPolicy.java @@ -420,13 +420,20 @@ public ZoneIamPolicy(String name, ZoneIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ZoneIamPolicy(String name, ZoneIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataplex/zoneIamPolicy:ZoneIamPolicy", name, args == null ? ZoneIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataplex/zoneIamPolicy:ZoneIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ZoneIamPolicy(String name, Output id, @Nullable ZoneIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataplex/zoneIamPolicy:ZoneIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ZoneIamPolicyArgs makeArgs(ZoneIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ZoneIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicy.java index 7aa3a7f459..98d28b8677 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicy.java @@ -251,13 +251,20 @@ public AutoscalingPolicy(String name, AutoscalingPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AutoscalingPolicy(String name, AutoscalingPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/autoscalingPolicy:AutoscalingPolicy", name, args == null ? AutoscalingPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/autoscalingPolicy:AutoscalingPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AutoscalingPolicy(String name, Output id, @Nullable AutoscalingPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/autoscalingPolicy:AutoscalingPolicy", name, state, makeResourceOptions(options, id)); } + private static AutoscalingPolicyArgs makeArgs(AutoscalingPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AutoscalingPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamBinding.java index 901cc205ca..a49f7a76f7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamBinding.java @@ -475,13 +475,20 @@ public AutoscalingPolicyIamBinding(String name, AutoscalingPolicyIamBindingArgs * @param options A bag of options that control this resource's behavior. */ public AutoscalingPolicyIamBinding(String name, AutoscalingPolicyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/autoscalingPolicyIamBinding:AutoscalingPolicyIamBinding", name, args == null ? AutoscalingPolicyIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/autoscalingPolicyIamBinding:AutoscalingPolicyIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AutoscalingPolicyIamBinding(String name, Output id, @Nullable AutoscalingPolicyIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/autoscalingPolicyIamBinding:AutoscalingPolicyIamBinding", name, state, makeResourceOptions(options, id)); } + private static AutoscalingPolicyIamBindingArgs makeArgs(AutoscalingPolicyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AutoscalingPolicyIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamMember.java index 7d8d00fe45..c9194d8633 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamMember.java @@ -474,13 +474,20 @@ public AutoscalingPolicyIamMember(String name, AutoscalingPolicyIamMemberArgs ar * @param options A bag of options that control this resource's behavior. */ public AutoscalingPolicyIamMember(String name, AutoscalingPolicyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/autoscalingPolicyIamMember:AutoscalingPolicyIamMember", name, args == null ? AutoscalingPolicyIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/autoscalingPolicyIamMember:AutoscalingPolicyIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AutoscalingPolicyIamMember(String name, Output id, @Nullable AutoscalingPolicyIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/autoscalingPolicyIamMember:AutoscalingPolicyIamMember", name, state, makeResourceOptions(options, id)); } + private static AutoscalingPolicyIamMemberArgs makeArgs(AutoscalingPolicyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AutoscalingPolicyIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamPolicy.java index e522dfc6ae..1f1f5e6f2d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/AutoscalingPolicyIamPolicy.java @@ -430,13 +430,20 @@ public AutoscalingPolicyIamPolicy(String name, AutoscalingPolicyIamPolicyArgs ar * @param options A bag of options that control this resource's behavior. */ public AutoscalingPolicyIamPolicy(String name, AutoscalingPolicyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/autoscalingPolicyIamPolicy:AutoscalingPolicyIamPolicy", name, args == null ? AutoscalingPolicyIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/autoscalingPolicyIamPolicy:AutoscalingPolicyIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AutoscalingPolicyIamPolicy(String name, Output id, @Nullable AutoscalingPolicyIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/autoscalingPolicyIamPolicy:AutoscalingPolicyIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AutoscalingPolicyIamPolicyArgs makeArgs(AutoscalingPolicyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AutoscalingPolicyIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Cluster.java index 9bddfae9f2..563510010c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Cluster.java @@ -378,13 +378,20 @@ public Cluster(String name, @Nullable ClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public Cluster(String name, @Nullable ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/cluster:Cluster", name, args == null ? ClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/cluster:Cluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Cluster(String name, Output id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/cluster:Cluster", name, state, makeResourceOptions(options, id)); } + private static ClusterArgs makeArgs(@Nullable ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMBinding.java index ec4b8c752f..6848a0eb00 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMBinding.java @@ -441,13 +441,20 @@ public ClusterIAMBinding(String name, ClusterIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ClusterIAMBinding(String name, ClusterIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/clusterIAMBinding:ClusterIAMBinding", name, args == null ? ClusterIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/clusterIAMBinding:ClusterIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ClusterIAMBinding(String name, Output id, @Nullable ClusterIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/clusterIAMBinding:ClusterIAMBinding", name, state, makeResourceOptions(options, id)); } + private static ClusterIAMBindingArgs makeArgs(ClusterIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMMember.java index 42f75878fb..b3f3b9ce06 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMMember.java @@ -440,13 +440,20 @@ public ClusterIAMMember(String name, ClusterIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ClusterIAMMember(String name, ClusterIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/clusterIAMMember:ClusterIAMMember", name, args == null ? ClusterIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/clusterIAMMember:ClusterIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ClusterIAMMember(String name, Output id, @Nullable ClusterIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/clusterIAMMember:ClusterIAMMember", name, state, makeResourceOptions(options, id)); } + private static ClusterIAMMemberArgs makeArgs(ClusterIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMPolicy.java index 2974c8d959..2d86ee5afa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/ClusterIAMPolicy.java @@ -400,13 +400,20 @@ public ClusterIAMPolicy(String name, ClusterIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ClusterIAMPolicy(String name, ClusterIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/clusterIAMPolicy:ClusterIAMPolicy", name, args == null ? ClusterIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/clusterIAMPolicy:ClusterIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ClusterIAMPolicy(String name, Output id, @Nullable ClusterIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/clusterIAMPolicy:ClusterIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static ClusterIAMPolicyArgs makeArgs(ClusterIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Job.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Job.java index ec0d2a4d10..1d3aa65097 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Job.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/Job.java @@ -425,13 +425,20 @@ public Job(String name, JobArgs args) { * @param options A bag of options that control this resource's behavior. */ public Job(String name, JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/job:Job", name, args == null ? JobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/job:Job", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Job(String name, Output id, @Nullable JobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/job:Job", name, state, makeResourceOptions(options, id)); } + private static JobArgs makeArgs(JobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMBinding.java index e6d1b1cd77..24eb6b82b3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMBinding.java @@ -429,13 +429,20 @@ public JobIAMBinding(String name, JobIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public JobIAMBinding(String name, JobIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/jobIAMBinding:JobIAMBinding", name, args == null ? JobIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/jobIAMBinding:JobIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private JobIAMBinding(String name, Output id, @Nullable JobIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/jobIAMBinding:JobIAMBinding", name, state, makeResourceOptions(options, id)); } + private static JobIAMBindingArgs makeArgs(JobIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMMember.java index 0171ef1f88..2a570fbca9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMMember.java @@ -428,13 +428,20 @@ public JobIAMMember(String name, JobIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public JobIAMMember(String name, JobIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/jobIAMMember:JobIAMMember", name, args == null ? JobIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/jobIAMMember:JobIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private JobIAMMember(String name, Output id, @Nullable JobIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/jobIAMMember:JobIAMMember", name, state, makeResourceOptions(options, id)); } + private static JobIAMMemberArgs makeArgs(JobIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMPolicy.java index b55ed103a6..df2e10fa5f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/JobIAMPolicy.java @@ -388,13 +388,20 @@ public JobIAMPolicy(String name, JobIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public JobIAMPolicy(String name, JobIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/jobIAMPolicy:JobIAMPolicy", name, args == null ? JobIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/jobIAMPolicy:JobIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private JobIAMPolicy(String name, Output id, @Nullable JobIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/jobIAMPolicy:JobIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static JobIAMPolicyArgs makeArgs(JobIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? JobIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederation.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederation.java index 050aede256..0227a10cbb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederation.java @@ -379,13 +379,20 @@ public MetastoreFederation(String name, MetastoreFederationArgs args) { * @param options A bag of options that control this resource's behavior. */ public MetastoreFederation(String name, MetastoreFederationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreFederation:MetastoreFederation", name, args == null ? MetastoreFederationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreFederation:MetastoreFederation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreFederation(String name, Output id, @Nullable MetastoreFederationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreFederation:MetastoreFederation", name, state, makeResourceOptions(options, id)); } + private static MetastoreFederationArgs makeArgs(MetastoreFederationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreFederationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamBinding.java index 55d516eab1..6e535fcdce 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamBinding.java @@ -459,13 +459,20 @@ public MetastoreFederationIamBinding(String name, MetastoreFederationIamBindingA * @param options A bag of options that control this resource's behavior. */ public MetastoreFederationIamBinding(String name, MetastoreFederationIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreFederationIamBinding:MetastoreFederationIamBinding", name, args == null ? MetastoreFederationIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreFederationIamBinding:MetastoreFederationIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreFederationIamBinding(String name, Output id, @Nullable MetastoreFederationIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreFederationIamBinding:MetastoreFederationIamBinding", name, state, makeResourceOptions(options, id)); } + private static MetastoreFederationIamBindingArgs makeArgs(MetastoreFederationIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreFederationIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamMember.java index dbb8dec784..04f3a4481c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamMember.java @@ -458,13 +458,20 @@ public MetastoreFederationIamMember(String name, MetastoreFederationIamMemberArg * @param options A bag of options that control this resource's behavior. */ public MetastoreFederationIamMember(String name, MetastoreFederationIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreFederationIamMember:MetastoreFederationIamMember", name, args == null ? MetastoreFederationIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreFederationIamMember:MetastoreFederationIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreFederationIamMember(String name, Output id, @Nullable MetastoreFederationIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreFederationIamMember:MetastoreFederationIamMember", name, state, makeResourceOptions(options, id)); } + private static MetastoreFederationIamMemberArgs makeArgs(MetastoreFederationIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreFederationIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamPolicy.java index e55e91b76d..b4ed6b84a3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreFederationIamPolicy.java @@ -414,13 +414,20 @@ public MetastoreFederationIamPolicy(String name, MetastoreFederationIamPolicyArg * @param options A bag of options that control this resource's behavior. */ public MetastoreFederationIamPolicy(String name, MetastoreFederationIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreFederationIamPolicy:MetastoreFederationIamPolicy", name, args == null ? MetastoreFederationIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreFederationIamPolicy:MetastoreFederationIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreFederationIamPolicy(String name, Output id, @Nullable MetastoreFederationIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreFederationIamPolicy:MetastoreFederationIamPolicy", name, state, makeResourceOptions(options, id)); } + private static MetastoreFederationIamPolicyArgs makeArgs(MetastoreFederationIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreFederationIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreService.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreService.java index 50f6edfdbe..cd89b358b5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreService.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreService.java @@ -1069,13 +1069,20 @@ public MetastoreService(String name, MetastoreServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public MetastoreService(String name, MetastoreServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreService:MetastoreService", name, args == null ? MetastoreServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreService:MetastoreService", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreService(String name, Output id, @Nullable MetastoreServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreService:MetastoreService", name, state, makeResourceOptions(options, id)); } + private static MetastoreServiceArgs makeArgs(MetastoreServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamBinding.java index c7f62ac51b..3e98ca773c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamBinding.java @@ -461,13 +461,20 @@ public MetastoreServiceIamBinding(String name, MetastoreServiceIamBindingArgs ar * @param options A bag of options that control this resource's behavior. */ public MetastoreServiceIamBinding(String name, MetastoreServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreServiceIamBinding:MetastoreServiceIamBinding", name, args == null ? MetastoreServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreServiceIamBinding:MetastoreServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreServiceIamBinding(String name, Output id, @Nullable MetastoreServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreServiceIamBinding:MetastoreServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static MetastoreServiceIamBindingArgs makeArgs(MetastoreServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamMember.java index 624be19a03..20ec34ab65 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamMember.java @@ -460,13 +460,20 @@ public MetastoreServiceIamMember(String name, MetastoreServiceIamMemberArgs args * @param options A bag of options that control this resource's behavior. */ public MetastoreServiceIamMember(String name, MetastoreServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreServiceIamMember:MetastoreServiceIamMember", name, args == null ? MetastoreServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreServiceIamMember:MetastoreServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreServiceIamMember(String name, Output id, @Nullable MetastoreServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreServiceIamMember:MetastoreServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static MetastoreServiceIamMemberArgs makeArgs(MetastoreServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamPolicy.java index 045c4eef86..680b43b855 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/MetastoreServiceIamPolicy.java @@ -416,13 +416,20 @@ public MetastoreServiceIamPolicy(String name, MetastoreServiceIamPolicyArgs args * @param options A bag of options that control this resource's behavior. */ public MetastoreServiceIamPolicy(String name, MetastoreServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/metastoreServiceIamPolicy:MetastoreServiceIamPolicy", name, args == null ? MetastoreServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/metastoreServiceIamPolicy:MetastoreServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetastoreServiceIamPolicy(String name, Output id, @Nullable MetastoreServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/metastoreServiceIamPolicy:MetastoreServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static MetastoreServiceIamPolicyArgs makeArgs(MetastoreServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetastoreServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/WorkflowTemplate.java b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/WorkflowTemplate.java index ae031389ab..585e49ddf8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dataproc/WorkflowTemplate.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dataproc/WorkflowTemplate.java @@ -374,13 +374,20 @@ public WorkflowTemplate(String name, WorkflowTemplateArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkflowTemplate(String name, WorkflowTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dataproc/workflowTemplate:WorkflowTemplate", name, args == null ? WorkflowTemplateArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dataproc/workflowTemplate:WorkflowTemplate", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkflowTemplate(String name, Output id, @Nullable WorkflowTemplateState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dataproc/workflowTemplate:WorkflowTemplate", name, state, makeResourceOptions(options, id)); } + private static WorkflowTemplateArgs makeArgs(WorkflowTemplateArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkflowTemplateArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastore/DataStoreIndex.java b/sdk/java/src/main/java/com/pulumi/gcp/datastore/DataStoreIndex.java index 643581f478..6ba690e6ae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastore/DataStoreIndex.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastore/DataStoreIndex.java @@ -17,7 +17,9 @@ import javax.annotation.Nullable; /** - * Describes a composite index for Cloud Datastore. + * > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. `firestore_index` supports both Firestore in Datastore Mode and Firestore Native indexes and supports both named and the (default) database. + * + * Describes a composite index for Firestore in Datastore Mode. * * To get more information about Index, see: * @@ -25,11 +27,15 @@ * * How-to Guides * * [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes) * - * > **Warning:** This resource creates a Datastore Index on a project that has already - * enabled a Datastore-compatible database. If you haven't already enabled - * one, you can create a `gcp.appengine.Application` resource with - * `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"` to do so. Your - * Datastore location will be the same as the App Engine location specified. + * > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. + * Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. + * This resource creates a Datastore Index on a project that has already + * enabled a Datastore-compatible database. If you haven't already created it, you may + * create a `gcp.firestore.Database` resource with `location_id` set + * to your chosen location, and `type` set to `"DATASTORE_MODE"`. + * If you wish to use App Engine, you may instead create a `gcp.appengine.Application` resource with + * `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"`. + * Your Datastore location will be the same as the App Engine location specified. * * ## Example Usage * @@ -224,13 +230,20 @@ public DataStoreIndex(String name, DataStoreIndexArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataStoreIndex(String name, DataStoreIndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datastore/dataStoreIndex:DataStoreIndex", name, args == null ? DataStoreIndexArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datastore/dataStoreIndex:DataStoreIndex", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataStoreIndex(String name, Output id, @Nullable DataStoreIndexState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datastore/dataStoreIndex:DataStoreIndex", name, state, makeResourceOptions(options, id)); } + private static DataStoreIndexArgs makeArgs(DataStoreIndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataStoreIndexArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/ConnectionProfile.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/ConnectionProfile.java index 166b982eec..6f24812b94 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/ConnectionProfile.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/ConnectionProfile.java @@ -751,13 +751,20 @@ public ConnectionProfile(String name, ConnectionProfileArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConnectionProfile(String name, ConnectionProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datastream/connectionProfile:ConnectionProfile", name, args == null ? ConnectionProfileArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datastream/connectionProfile:ConnectionProfile", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConnectionProfile(String name, Output id, @Nullable ConnectionProfileState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datastream/connectionProfile:ConnectionProfile", name, state, makeResourceOptions(options, id)); } + private static ConnectionProfileArgs makeArgs(ConnectionProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionProfileArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/PrivateConnection.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/PrivateConnection.java index fd57b00ff4..4ebc3a2390 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/PrivateConnection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/PrivateConnection.java @@ -299,13 +299,20 @@ public PrivateConnection(String name, PrivateConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public PrivateConnection(String name, PrivateConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datastream/privateConnection:PrivateConnection", name, args == null ? PrivateConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datastream/privateConnection:PrivateConnection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PrivateConnection(String name, Output id, @Nullable PrivateConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datastream/privateConnection:PrivateConnection", name, state, makeResourceOptions(options, id)); } + private static PrivateConnectionArgs makeArgs(PrivateConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PrivateConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java index c1bdd5500f..7f5af93d9a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/Stream.java @@ -982,6 +982,152 @@ * } * * <!--End PulumiCodeChooser --> + * ### Datastream Stream Bigquery Append Only + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.sql.DatabaseInstance;
+ * import com.pulumi.gcp.sql.DatabaseInstanceArgs;
+ * import com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;
+ * import com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsBackupConfigurationArgs;
+ * import com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;
+ * import com.pulumi.gcp.sql.Database;
+ * import com.pulumi.gcp.sql.DatabaseArgs;
+ * import com.pulumi.random.RandomPassword;
+ * import com.pulumi.random.RandomPasswordArgs;
+ * import com.pulumi.gcp.sql.User;
+ * import com.pulumi.gcp.sql.UserArgs;
+ * import com.pulumi.gcp.datastream.ConnectionProfile;
+ * import com.pulumi.gcp.datastream.ConnectionProfileArgs;
+ * import com.pulumi.gcp.datastream.inputs.ConnectionProfileMysqlProfileArgs;
+ * import com.pulumi.gcp.datastream.inputs.ConnectionProfileBigqueryProfileArgs;
+ * import com.pulumi.gcp.datastream.Stream;
+ * import com.pulumi.gcp.datastream.StreamArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamSourceConfigMysqlSourceConfigArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs;
+ * import com.pulumi.gcp.datastream.inputs.StreamBackfillNoneArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var instance = new DatabaseInstance("instance", DatabaseInstanceArgs.builder()
+ *             .name("my-instance")
+ *             .databaseVersion("MYSQL_8_0")
+ *             .region("us-central1")
+ *             .settings(DatabaseInstanceSettingsArgs.builder()
+ *                 .tier("db-f1-micro")
+ *                 .backupConfiguration(DatabaseInstanceSettingsBackupConfigurationArgs.builder()
+ *                     .enabled(true)
+ *                     .binaryLogEnabled(true)
+ *                     .build())
+ *                 .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()
+ *                     .authorizedNetworks(                    
+ *                         DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()
+ *                             .value("34.71.242.81")
+ *                             .build(),
+ *                         DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()
+ *                             .value("34.72.28.29")
+ *                             .build(),
+ *                         DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()
+ *                             .value("34.67.6.157")
+ *                             .build(),
+ *                         DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()
+ *                             .value("34.67.234.134")
+ *                             .build(),
+ *                         DatabaseInstanceSettingsIpConfigurationAuthorizedNetworkArgs.builder()
+ *                             .value("34.72.239.218")
+ *                             .build())
+ *                     .build())
+ *                 .build())
+ *             .deletionProtection(true)
+ *             .build());
+ * 
+ *         var db = new Database("db", DatabaseArgs.builder()
+ *             .instance(instance.name())
+ *             .name("db")
+ *             .build());
+ * 
+ *         var pwd = new RandomPassword("pwd", RandomPasswordArgs.builder()
+ *             .length(16)
+ *             .special(false)
+ *             .build());
+ * 
+ *         var user = new User("user", UserArgs.builder()
+ *             .name("user")
+ *             .instance(instance.name())
+ *             .host("%")
+ *             .password(pwd.result())
+ *             .build());
+ * 
+ *         var sourceConnectionProfile = new ConnectionProfile("sourceConnectionProfile", ConnectionProfileArgs.builder()
+ *             .displayName("Source connection profile")
+ *             .location("us-central1")
+ *             .connectionProfileId("source-profile")
+ *             .mysqlProfile(ConnectionProfileMysqlProfileArgs.builder()
+ *                 .hostname(instance.publicIpAddress())
+ *                 .username(user.name())
+ *                 .password(user.password())
+ *                 .build())
+ *             .build());
+ * 
+ *         var destinationConnectionProfile = new ConnectionProfile("destinationConnectionProfile", ConnectionProfileArgs.builder()
+ *             .displayName("Connection profile")
+ *             .location("us-central1")
+ *             .connectionProfileId("destination-profile")
+ *             .bigqueryProfile()
+ *             .build());
+ * 
+ *         var default_ = new Stream("default", StreamArgs.builder()
+ *             .streamId("my-stream")
+ *             .location("us-central1")
+ *             .displayName("my stream")
+ *             .sourceConfig(StreamSourceConfigArgs.builder()
+ *                 .sourceConnectionProfile(sourceConnectionProfile.id())
+ *                 .mysqlSourceConfig()
+ *                 .build())
+ *             .destinationConfig(StreamDestinationConfigArgs.builder()
+ *                 .destinationConnectionProfile(destinationConnectionProfile.id())
+ *                 .bigqueryDestinationConfig(StreamDestinationConfigBigqueryDestinationConfigArgs.builder()
+ *                     .sourceHierarchyDatasets(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs.builder()
+ *                         .datasetTemplate(StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateArgs.builder()
+ *                             .location("us-central1")
+ *                             .build())
+ *                         .build())
+ *                     .appendOnly()
+ *                     .build())
+ *                 .build())
+ *             .backfillNone()
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> * * ## Import * @@ -1259,13 +1405,20 @@ public Stream(String name, StreamArgs args) { * @param options A bag of options that control this resource's behavior. */ public Stream(String name, StreamArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:datastream/stream:Stream", name, args == null ? StreamArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:datastream/stream:Stream", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Stream(String name, Output id, @Nullable StreamState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:datastream/stream:Stream", name, state, makeResourceOptions(options, id)); } + private static StreamArgs makeArgs(StreamArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? StreamArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamDestinationConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamDestinationConfigArgs.java index 528b17dcc0..12810e2510 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamDestinationConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamDestinationConfigArgs.java @@ -19,7 +19,7 @@ public final class StreamDestinationConfigArgs extends com.pulumi.resources.Reso public static final StreamDestinationConfigArgs Empty = new StreamDestinationConfigArgs(); /** - * A configuration for how data should be loaded to Cloud Storage. + * A configuration for how data should be loaded to Google BigQuery. * Structure is documented below. * */ @@ -27,7 +27,7 @@ public final class StreamDestinationConfigArgs extends com.pulumi.resources.Reso private @Nullable Output bigqueryDestinationConfig; /** - * @return A configuration for how data should be loaded to Cloud Storage. + * @return A configuration for how data should be loaded to Google BigQuery. * Structure is documented below. * */ @@ -94,7 +94,7 @@ public Builder(StreamDestinationConfigArgs defaults) { } /** - * @param bigqueryDestinationConfig A configuration for how data should be loaded to Cloud Storage. + * @param bigqueryDestinationConfig A configuration for how data should be loaded to Google BigQuery. * Structure is documented below. * * @return builder @@ -106,7 +106,7 @@ public Builder bigqueryDestinationConfig(@Nullable Output appendOnly; + + /** + * @return AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + * events) to a source table will be written to the destination Google BigQuery table, retaining the + * historical state of the data. + * + */ + public Optional> appendOnly() { + return Optional.ofNullable(this.appendOnly); + } + /** * The guaranteed data freshness (in seconds) when querying tables created by the stream. * Editing this field will only affect new tables created in the future, but existing tables @@ -38,6 +59,25 @@ public Optional> dataFreshness() { return Optional.ofNullable(this.dataFreshness); } + /** + * Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + * + */ + @Import(name="merge") + private @Nullable Output merge; + + /** + * @return Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + * + */ + public Optional> merge() { + return Optional.ofNullable(this.merge); + } + /** * A single target dataset to which all data will be streamed. * Structure is documented below. @@ -75,7 +115,9 @@ public Optional appendOnly) { + $.appendOnly = appendOnly; + return this; + } + + /** + * @param appendOnly AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + * events) to a source table will be written to the destination Google BigQuery table, retaining the + * historical state of the data. + * + * @return builder + * + */ + public Builder appendOnly(StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs appendOnly) { + return appendOnly(Output.of(appendOnly)); + } + /** * @param dataFreshness The guaranteed data freshness (in seconds) when querying tables created by the stream. * Editing this field will only affect new tables created in the future, but existing tables @@ -125,6 +192,31 @@ public Builder dataFreshness(String dataFreshness) { return dataFreshness(Output.of(dataFreshness)); } + /** + * @param merge Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + * + * @return builder + * + */ + public Builder merge(@Nullable Output merge) { + $.merge = merge; + return this; + } + + /** + * @param merge Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + * + * @return builder + * + */ + public Builder merge(StreamDestinationConfigBigqueryDestinationConfigMergeArgs merge) { + return merge(Output.of(merge)); + } + /** * @param singleTargetDataset A single target dataset to which all data will be streamed. * Structure is documented below. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamDestinationConfigBigqueryDestinationConfigMergeArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamDestinationConfigBigqueryDestinationConfigMergeArgs.java new file mode 100644 index 0000000000..f481e17eba --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/inputs/StreamDestinationConfigBigqueryDestinationConfigMergeArgs.java @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.inputs; + + + + +public final class StreamDestinationConfigBigqueryDestinationConfigMergeArgs extends com.pulumi.resources.ResourceArgs { + + public static final StreamDestinationConfigBigqueryDestinationConfigMergeArgs Empty = new StreamDestinationConfigBigqueryDestinationConfigMergeArgs(); + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private StreamDestinationConfigBigqueryDestinationConfigMergeArgs $; + + public Builder() { + $ = new StreamDestinationConfigBigqueryDestinationConfigMergeArgs(); + } + public StreamDestinationConfigBigqueryDestinationConfigMergeArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfig.java index 5a3bb0c1dc..c00523bc90 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfig.java @@ -15,7 +15,7 @@ @CustomType public final class StreamDestinationConfig { /** - * @return A configuration for how data should be loaded to Cloud Storage. + * @return A configuration for how data should be loaded to Google BigQuery. * Structure is documented below. * */ @@ -34,7 +34,7 @@ public final class StreamDestinationConfig { private StreamDestinationConfig() {} /** - * @return A configuration for how data should be loaded to Cloud Storage. + * @return A configuration for how data should be loaded to Google BigQuery. * Structure is documented below. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfig.java index de0e8ee08e..cc8e7db69b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfig.java @@ -4,6 +4,8 @@ package com.pulumi.gcp.datastream.outputs; import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.datastream.outputs.StreamDestinationConfigBigqueryDestinationConfigAppendOnly; +import com.pulumi.gcp.datastream.outputs.StreamDestinationConfigBigqueryDestinationConfigMerge; import com.pulumi.gcp.datastream.outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset; import com.pulumi.gcp.datastream.outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets; import java.lang.String; @@ -13,6 +15,13 @@ @CustomType public final class StreamDestinationConfigBigqueryDestinationConfig { + /** + * @return AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + * events) to a source table will be written to the destination Google BigQuery table, retaining the + * historical state of the data. + * + */ + private @Nullable StreamDestinationConfigBigqueryDestinationConfigAppendOnly appendOnly; /** * @return The guaranteed data freshness (in seconds) when querying tables created by the stream. * Editing this field will only affect new tables created in the future, but existing tables @@ -21,6 +30,13 @@ public final class StreamDestinationConfigBigqueryDestinationConfig { * */ private @Nullable String dataFreshness; + /** + * @return Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + * + */ + private @Nullable StreamDestinationConfigBigqueryDestinationConfigMerge merge; /** * @return A single target dataset to which all data will be streamed. * Structure is documented below. @@ -35,6 +51,15 @@ public final class StreamDestinationConfigBigqueryDestinationConfig { private @Nullable StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets sourceHierarchyDatasets; private StreamDestinationConfigBigqueryDestinationConfig() {} + /** + * @return AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + * events) to a source table will be written to the destination Google BigQuery table, retaining the + * historical state of the data. + * + */ + public Optional appendOnly() { + return Optional.ofNullable(this.appendOnly); + } /** * @return The guaranteed data freshness (in seconds) when querying tables created by the stream. * Editing this field will only affect new tables created in the future, but existing tables @@ -45,6 +70,15 @@ private StreamDestinationConfigBigqueryDestinationConfig() {} public Optional dataFreshness() { return Optional.ofNullable(this.dataFreshness); } + /** + * @return Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + * + */ + public Optional merge() { + return Optional.ofNullable(this.merge); + } /** * @return A single target dataset to which all data will be streamed. * Structure is documented below. @@ -71,17 +105,27 @@ public static Builder builder(StreamDestinationConfigBigqueryDestinationConfig d } @CustomType.Builder public static final class Builder { + private @Nullable StreamDestinationConfigBigqueryDestinationConfigAppendOnly appendOnly; private @Nullable String dataFreshness; + private @Nullable StreamDestinationConfigBigqueryDestinationConfigMerge merge; private @Nullable StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset singleTargetDataset; private @Nullable StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets sourceHierarchyDatasets; public Builder() {} public Builder(StreamDestinationConfigBigqueryDestinationConfig defaults) { Objects.requireNonNull(defaults); + this.appendOnly = defaults.appendOnly; this.dataFreshness = defaults.dataFreshness; + this.merge = defaults.merge; this.singleTargetDataset = defaults.singleTargetDataset; this.sourceHierarchyDatasets = defaults.sourceHierarchyDatasets; } + @CustomType.Setter + public Builder appendOnly(@Nullable StreamDestinationConfigBigqueryDestinationConfigAppendOnly appendOnly) { + + this.appendOnly = appendOnly; + return this; + } @CustomType.Setter public Builder dataFreshness(@Nullable String dataFreshness) { @@ -89,6 +133,12 @@ public Builder dataFreshness(@Nullable String dataFreshness) { return this; } @CustomType.Setter + public Builder merge(@Nullable StreamDestinationConfigBigqueryDestinationConfigMerge merge) { + + this.merge = merge; + return this; + } + @CustomType.Setter public Builder singleTargetDataset(@Nullable StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset singleTargetDataset) { this.singleTargetDataset = singleTargetDataset; @@ -102,7 +152,9 @@ public Builder sourceHierarchyDatasets(@Nullable StreamDestinationConfigBigquery } public StreamDestinationConfigBigqueryDestinationConfig build() { final var _resultValue = new StreamDestinationConfigBigqueryDestinationConfig(); + _resultValue.appendOnly = appendOnly; _resultValue.dataFreshness = dataFreshness; + _resultValue.merge = merge; _resultValue.singleTargetDataset = singleTargetDataset; _resultValue.sourceHierarchyDatasets = sourceHierarchyDatasets; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnly.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnly.java new file mode 100644 index 0000000000..5525f1deb6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfigAppendOnly.java @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; + +@CustomType +public final class StreamDestinationConfigBigqueryDestinationConfigAppendOnly { + private StreamDestinationConfigBigqueryDestinationConfigAppendOnly() {} + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamDestinationConfigBigqueryDestinationConfigAppendOnly defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + public Builder() {} + public Builder(StreamDestinationConfigBigqueryDestinationConfigAppendOnly defaults) { + Objects.requireNonNull(defaults); + } + + public StreamDestinationConfigBigqueryDestinationConfigAppendOnly build() { + final var _resultValue = new StreamDestinationConfigBigqueryDestinationConfigAppendOnly(); + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfigMerge.java b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfigMerge.java new file mode 100644 index 0000000000..795132bd39 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/datastream/outputs/StreamDestinationConfigBigqueryDestinationConfigMerge.java @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.datastream.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.util.Objects; + +@CustomType +public final class StreamDestinationConfigBigqueryDestinationConfigMerge { + private StreamDestinationConfigBigqueryDestinationConfigMerge() {} + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(StreamDestinationConfigBigqueryDestinationConfigMerge defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + public Builder() {} + public Builder(StreamDestinationConfigBigqueryDestinationConfigMerge defaults) { + Objects.requireNonNull(defaults); + } + + public StreamDestinationConfigBigqueryDestinationConfigMerge build() { + final var _resultValue = new StreamDestinationConfigBigqueryDestinationConfigMerge(); + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/deploymentmanager/Deployment.java b/sdk/java/src/main/java/com/pulumi/gcp/deploymentmanager/Deployment.java index 1b59fec44e..093fa66da1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/deploymentmanager/Deployment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/deploymentmanager/Deployment.java @@ -289,13 +289,20 @@ public Deployment(String name, DeploymentArgs args) { * @param options A bag of options that control this resource's behavior. */ public Deployment(String name, DeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:deploymentmanager/deployment:Deployment", name, args == null ? DeploymentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:deploymentmanager/deployment:Deployment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Deployment(String name, Output id, @Nullable DeploymentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:deploymentmanager/deployment:Deployment", name, state, makeResourceOptions(options, id)); } + private static DeploymentArgs makeArgs(DeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DeploymentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Agent.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Agent.java index 6e359daa4a..7879b64734 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Agent.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Agent.java @@ -355,13 +355,20 @@ public Agent(String name, AgentArgs args) { * @param options A bag of options that control this resource's behavior. */ public Agent(String name, AgentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/agent:Agent", name, args == null ? AgentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/agent:Agent", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Agent(String name, Output id, @Nullable AgentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/agent:Agent", name, state, makeResourceOptions(options, id)); } + private static AgentArgs makeArgs(AgentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AgentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxAgent.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxAgent.java index f9ab097590..e760dc3f3b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxAgent.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxAgent.java @@ -444,13 +444,20 @@ public CxAgent(String name, CxAgentArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxAgent(String name, CxAgentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxAgent:CxAgent", name, args == null ? CxAgentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxAgent:CxAgent", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxAgent(String name, Output id, @Nullable CxAgentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxAgent:CxAgent", name, state, makeResourceOptions(options, id)); } + private static CxAgentArgs makeArgs(CxAgentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxAgentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEntityType.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEntityType.java index f29fc436b6..7ba5e5b6b8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEntityType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEntityType.java @@ -313,13 +313,20 @@ public CxEntityType(String name, CxEntityTypeArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxEntityType(String name, CxEntityTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxEntityType:CxEntityType", name, args == null ? CxEntityTypeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxEntityType:CxEntityType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxEntityType(String name, Output id, @Nullable CxEntityTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxEntityType:CxEntityType", name, state, makeResourceOptions(options, id)); } + private static CxEntityTypeArgs makeArgs(CxEntityTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxEntityTypeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEnvironment.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEnvironment.java index 109e9da57f..8b2fdb7bfc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEnvironment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxEnvironment.java @@ -231,13 +231,20 @@ public CxEnvironment(String name, CxEnvironmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxEnvironment(String name, CxEnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxEnvironment:CxEnvironment", name, args == null ? CxEnvironmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxEnvironment:CxEnvironment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxEnvironment(String name, Output id, @Nullable CxEnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxEnvironment:CxEnvironment", name, state, makeResourceOptions(options, id)); } + private static CxEnvironmentArgs makeArgs(CxEnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxEnvironmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxFlow.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxFlow.java index bb698e694a..46d887de7d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxFlow.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxFlow.java @@ -727,13 +727,20 @@ public CxFlow(String name, CxFlowArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxFlow(String name, CxFlowArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxFlow:CxFlow", name, args == null ? CxFlowArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxFlow:CxFlow", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxFlow(String name, Output id, @Nullable CxFlowState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxFlow:CxFlow", name, state, makeResourceOptions(options, id)); } + private static CxFlowArgs makeArgs(CxFlowArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxFlowArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxIntent.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxIntent.java index 39afe2648b..e87bddb3cd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxIntent.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxIntent.java @@ -401,13 +401,20 @@ public CxIntent(String name, CxIntentArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxIntent(String name, CxIntentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxIntent:CxIntent", name, args == null ? CxIntentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxIntent:CxIntent", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxIntent(String name, Output id, @Nullable CxIntentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxIntent:CxIntent", name, state, makeResourceOptions(options, id)); } + private static CxIntentArgs makeArgs(CxIntentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxIntentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxPage.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxPage.java index 2cf954032c..e4c1e5d0c2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxPage.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxPage.java @@ -933,13 +933,20 @@ public CxPage(String name, CxPageArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxPage(String name, CxPageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxPage:CxPage", name, args == null ? CxPageArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxPage:CxPage", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxPage(String name, Output id, @Nullable CxPageState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxPage:CxPage", name, state, makeResourceOptions(options, id)); } + private static CxPageArgs makeArgs(CxPageArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxPageArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxSecuritySettings.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxSecuritySettings.java index 5d30b58808..cd1d89096f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxSecuritySettings.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxSecuritySettings.java @@ -441,13 +441,20 @@ public CxSecuritySettings(String name, CxSecuritySettingsArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxSecuritySettings(String name, CxSecuritySettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxSecuritySettings:CxSecuritySettings", name, args == null ? CxSecuritySettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxSecuritySettings:CxSecuritySettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxSecuritySettings(String name, Output id, @Nullable CxSecuritySettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxSecuritySettings:CxSecuritySettings", name, state, makeResourceOptions(options, id)); } + private static CxSecuritySettingsArgs makeArgs(CxSecuritySettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxSecuritySettingsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxTestCase.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxTestCase.java index d32264b2d7..a41d9b8c91 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxTestCase.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxTestCase.java @@ -393,13 +393,20 @@ public CxTestCase(String name, CxTestCaseArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxTestCase(String name, CxTestCaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxTestCase:CxTestCase", name, args == null ? CxTestCaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxTestCase:CxTestCase", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxTestCase(String name, Output id, @Nullable CxTestCaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxTestCase:CxTestCase", name, state, makeResourceOptions(options, id)); } + private static CxTestCaseArgs makeArgs(CxTestCaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxTestCaseArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxVersion.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxVersion.java index 85c4a44707..bdb1b2ae1b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxVersion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxVersion.java @@ -242,13 +242,20 @@ public CxVersion(String name, CxVersionArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxVersion(String name, CxVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxVersion:CxVersion", name, args == null ? CxVersionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxVersion:CxVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxVersion(String name, Output id, @Nullable CxVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxVersion:CxVersion", name, state, makeResourceOptions(options, id)); } + private static CxVersionArgs makeArgs(CxVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxVersionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxWebhook.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxWebhook.java index f0644e63d4..f3464b52a7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxWebhook.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/CxWebhook.java @@ -299,13 +299,20 @@ public CxWebhook(String name, CxWebhookArgs args) { * @param options A bag of options that control this resource's behavior. */ public CxWebhook(String name, CxWebhookArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/cxWebhook:CxWebhook", name, args == null ? CxWebhookArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/cxWebhook:CxWebhook", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CxWebhook(String name, Output id, @Nullable CxWebhookState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/cxWebhook:CxWebhook", name, state, makeResourceOptions(options, id)); } + private static CxWebhookArgs makeArgs(CxWebhookArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CxWebhookArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/EntityType.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/EntityType.java index 7b1447aecf..c4d1f65f6a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/EntityType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/EntityType.java @@ -231,13 +231,20 @@ public EntityType(String name, EntityTypeArgs args) { * @param options A bag of options that control this resource's behavior. */ public EntityType(String name, EntityTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/entityType:EntityType", name, args == null ? EntityTypeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/entityType:EntityType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EntityType(String name, Output id, @Nullable EntityTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/entityType:EntityType", name, state, makeResourceOptions(options, id)); } + private static EntityTypeArgs makeArgs(EntityTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EntityTypeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Fulfillment.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Fulfillment.java index c3cc5e71ba..01d205eac4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Fulfillment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Fulfillment.java @@ -217,13 +217,20 @@ public Fulfillment(String name, FulfillmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public Fulfillment(String name, FulfillmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/fulfillment:Fulfillment", name, args == null ? FulfillmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/fulfillment:Fulfillment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Fulfillment(String name, Output id, @Nullable FulfillmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/fulfillment:Fulfillment", name, state, makeResourceOptions(options, id)); } + private static FulfillmentArgs makeArgs(FulfillmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FulfillmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Intent.java b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Intent.java index 1e3844b0c2..f213c12639 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Intent.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/diagflow/Intent.java @@ -460,13 +460,20 @@ public Intent(String name, IntentArgs args) { * @param options A bag of options that control this resource's behavior. */ public Intent(String name, IntentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:diagflow/intent:Intent", name, args == null ? IntentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:diagflow/intent:Intent", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Intent(String name, Output id, @Nullable IntentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:diagflow/intent:Intent", name, state, makeResourceOptions(options, id)); } + private static IntentArgs makeArgs(IntentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IntentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/ChatEngine.java b/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/ChatEngine.java index 45cd180402..4f0e56e9b3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/ChatEngine.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/ChatEngine.java @@ -340,13 +340,20 @@ public ChatEngine(String name, ChatEngineArgs args) { * @param options A bag of options that control this resource's behavior. */ public ChatEngine(String name, ChatEngineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:discoveryengine/chatEngine:ChatEngine", name, args == null ? ChatEngineArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:discoveryengine/chatEngine:ChatEngine", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ChatEngine(String name, Output id, @Nullable ChatEngineState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:discoveryengine/chatEngine:ChatEngine", name, state, makeResourceOptions(options, id)); } + private static ChatEngineArgs makeArgs(ChatEngineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ChatEngineArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/DataStore.java b/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/DataStore.java index 50ed80ebf1..cb24c0a195 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/DataStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/DataStore.java @@ -371,13 +371,20 @@ public DataStore(String name, DataStoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public DataStore(String name, DataStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:discoveryengine/dataStore:DataStore", name, args == null ? DataStoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:discoveryengine/dataStore:DataStore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DataStore(String name, Output id, @Nullable DataStoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:discoveryengine/dataStore:DataStore", name, state, makeResourceOptions(options, id)); } + private static DataStoreArgs makeArgs(DataStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DataStoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/SearchEngine.java b/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/SearchEngine.java index 4081a0bebb..27fd66ff24 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/SearchEngine.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/discoveryengine/SearchEngine.java @@ -303,13 +303,20 @@ public SearchEngine(String name, SearchEngineArgs args) { * @param options A bag of options that control this resource's behavior. */ public SearchEngine(String name, SearchEngineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:discoveryengine/searchEngine:SearchEngine", name, args == null ? SearchEngineArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:discoveryengine/searchEngine:SearchEngine", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SearchEngine(String name, Output id, @Nullable SearchEngineState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:discoveryengine/searchEngine:SearchEngine", name, state, makeResourceOptions(options, id)); } + private static SearchEngineArgs makeArgs(SearchEngineArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SearchEngineArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamBinding.java index 891b480e0e..c8eece7d0a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamBinding.java @@ -439,13 +439,20 @@ public DnsManagedZoneIamBinding(String name, DnsManagedZoneIamBindingArgs args) * @param options A bag of options that control this resource's behavior. */ public DnsManagedZoneIamBinding(String name, DnsManagedZoneIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/dnsManagedZoneIamBinding:DnsManagedZoneIamBinding", name, args == null ? DnsManagedZoneIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/dnsManagedZoneIamBinding:DnsManagedZoneIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DnsManagedZoneIamBinding(String name, Output id, @Nullable DnsManagedZoneIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/dnsManagedZoneIamBinding:DnsManagedZoneIamBinding", name, state, makeResourceOptions(options, id)); } + private static DnsManagedZoneIamBindingArgs makeArgs(DnsManagedZoneIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DnsManagedZoneIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamMember.java index 46c77a4252..dec8fa5048 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamMember.java @@ -438,13 +438,20 @@ public DnsManagedZoneIamMember(String name, DnsManagedZoneIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DnsManagedZoneIamMember(String name, DnsManagedZoneIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/dnsManagedZoneIamMember:DnsManagedZoneIamMember", name, args == null ? DnsManagedZoneIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/dnsManagedZoneIamMember:DnsManagedZoneIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DnsManagedZoneIamMember(String name, Output id, @Nullable DnsManagedZoneIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/dnsManagedZoneIamMember:DnsManagedZoneIamMember", name, state, makeResourceOptions(options, id)); } + private static DnsManagedZoneIamMemberArgs makeArgs(DnsManagedZoneIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DnsManagedZoneIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamPolicy.java index 6f19d72047..3d42936590 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/DnsManagedZoneIamPolicy.java @@ -394,13 +394,20 @@ public DnsManagedZoneIamPolicy(String name, DnsManagedZoneIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DnsManagedZoneIamPolicy(String name, DnsManagedZoneIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/dnsManagedZoneIamPolicy:DnsManagedZoneIamPolicy", name, args == null ? DnsManagedZoneIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/dnsManagedZoneIamPolicy:DnsManagedZoneIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DnsManagedZoneIamPolicy(String name, Output id, @Nullable DnsManagedZoneIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/dnsManagedZoneIamPolicy:DnsManagedZoneIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DnsManagedZoneIamPolicyArgs makeArgs(DnsManagedZoneIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DnsManagedZoneIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/ManagedZone.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/ManagedZone.java index b59eb702e4..219823b3f5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/ManagedZone.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/ManagedZone.java @@ -835,13 +835,20 @@ public ManagedZone(String name, ManagedZoneArgs args) { * @param options A bag of options that control this resource's behavior. */ public ManagedZone(String name, ManagedZoneArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/managedZone:ManagedZone", name, args == null ? ManagedZoneArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/managedZone:ManagedZone", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagedZone(String name, Output id, @Nullable ManagedZoneState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/managedZone:ManagedZone", name, state, makeResourceOptions(options, id)); } + private static ManagedZoneArgs makeArgs(ManagedZoneArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagedZoneArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/Policy.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/Policy.java index ad68c9f9ca..3bba1d33b6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/Policy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/Policy.java @@ -268,13 +268,20 @@ public Policy(String name, @Nullable PolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public Policy(String name, @Nullable PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/policy:Policy", name, args == null ? PolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/policy:Policy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Policy(String name, Output id, @Nullable PolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/policy:Policy", name, state, makeResourceOptions(options, id)); } + private static PolicyArgs makeArgs(@Nullable PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/RecordSet.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/RecordSet.java index ef7d27420b..1f2c262503 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/RecordSet.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/RecordSet.java @@ -582,13 +582,20 @@ public RecordSet(String name, RecordSetArgs args) { * @param options A bag of options that control this resource's behavior. */ public RecordSet(String name, RecordSetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/recordSet:RecordSet", name, args == null ? RecordSetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/recordSet:RecordSet", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RecordSet(String name, Output id, @Nullable RecordSetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/recordSet:RecordSet", name, state, makeResourceOptions(options, id)); } + private static RecordSetArgs makeArgs(RecordSetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RecordSetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicy.java index 3429b8804f..8137cad201 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicy.java @@ -265,13 +265,20 @@ public ResponsePolicy(String name, ResponsePolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ResponsePolicy(String name, ResponsePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/responsePolicy:ResponsePolicy", name, args == null ? ResponsePolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/responsePolicy:ResponsePolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ResponsePolicy(String name, Output id, @Nullable ResponsePolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/responsePolicy:ResponsePolicy", name, state, makeResourceOptions(options, id)); } + private static ResponsePolicyArgs makeArgs(ResponsePolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ResponsePolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicyRule.java index 86ed95ac0d..5b51aec12e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/dns/ResponsePolicyRule.java @@ -239,13 +239,20 @@ public ResponsePolicyRule(String name, ResponsePolicyRuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public ResponsePolicyRule(String name, ResponsePolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:dns/responsePolicyRule:ResponsePolicyRule", name, args == null ? ResponsePolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:dns/responsePolicyRule:ResponsePolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ResponsePolicyRule(String name, Output id, @Nullable ResponsePolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:dns/responsePolicyRule:ResponsePolicyRule", name, state, makeResourceOptions(options, id)); } + private static ResponsePolicyRuleArgs makeArgs(ResponsePolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ResponsePolicyRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/Cluster.java index 0fd4591280..b774b10d39 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/Cluster.java @@ -678,13 +678,20 @@ public Cluster(String name, ClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public Cluster(String name, ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:edgecontainer/cluster:Cluster", name, args == null ? ClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:edgecontainer/cluster:Cluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Cluster(String name, Output id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:edgecontainer/cluster:Cluster", name, state, makeResourceOptions(options, id)); } + private static ClusterArgs makeArgs(ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/NodePool.java b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/NodePool.java index 9dd58d9010..2ff9b91a19 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/NodePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/NodePool.java @@ -550,13 +550,20 @@ public NodePool(String name, NodePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public NodePool(String name, NodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:edgecontainer/nodePool:NodePool", name, args == null ? NodePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:edgecontainer/nodePool:NodePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NodePool(String name, Output id, @Nullable NodePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:edgecontainer/nodePool:NodePool", name, state, makeResourceOptions(options, id)); } + private static NodePoolArgs makeArgs(NodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NodePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java index 69d08e507b..fdef29fdf5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/edgecontainer/VpnConnection.java @@ -397,13 +397,20 @@ public VpnConnection(String name, VpnConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public VpnConnection(String name, VpnConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:edgecontainer/vpnConnection:VpnConnection", name, args == null ? VpnConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:edgecontainer/vpnConnection:VpnConnection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VpnConnection(String name, Output id, @Nullable VpnConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:edgecontainer/vpnConnection:VpnConnection", name, state, makeResourceOptions(options, id)); } + private static VpnConnectionArgs makeArgs(VpnConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VpnConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Network.java b/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Network.java index a43b39f99f..579508c53b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Network.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Network.java @@ -285,13 +285,20 @@ public Network(String name, NetworkArgs args) { * @param options A bag of options that control this resource's behavior. */ public Network(String name, NetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:edgenetwork/network:Network", name, args == null ? NetworkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:edgenetwork/network:Network", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Network(String name, Output id, @Nullable NetworkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:edgenetwork/network:Network", name, state, makeResourceOptions(options, id)); } + private static NetworkArgs makeArgs(NetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Subnet.java b/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Subnet.java index 4fbc71f374..8ebaed348d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Subnet.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/edgenetwork/Subnet.java @@ -406,13 +406,20 @@ public Subnet(String name, SubnetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Subnet(String name, SubnetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:edgenetwork/subnet:Subnet", name, args == null ? SubnetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:edgenetwork/subnet:Subnet", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Subnet(String name, Output id, @Nullable SubnetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:edgenetwork/subnet:Subnet", name, state, makeResourceOptions(options, id)); } + private static SubnetArgs makeArgs(SubnetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SubnetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamBinding.java index e3d1753730..f6a644a302 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamBinding.java @@ -177,13 +177,20 @@ public ConsumersIamBinding(String name, ConsumersIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsumersIamBinding(String name, ConsumersIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:endpoints/consumersIamBinding:ConsumersIamBinding", name, args == null ? ConsumersIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:endpoints/consumersIamBinding:ConsumersIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsumersIamBinding(String name, Output id, @Nullable ConsumersIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:endpoints/consumersIamBinding:ConsumersIamBinding", name, state, makeResourceOptions(options, id)); } + private static ConsumersIamBindingArgs makeArgs(ConsumersIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsumersIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamMember.java index fb2df62450..f7e6fe1c3e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamMember.java @@ -176,13 +176,20 @@ public ConsumersIamMember(String name, ConsumersIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsumersIamMember(String name, ConsumersIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:endpoints/consumersIamMember:ConsumersIamMember", name, args == null ? ConsumersIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:endpoints/consumersIamMember:ConsumersIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsumersIamMember(String name, Output id, @Nullable ConsumersIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:endpoints/consumersIamMember:ConsumersIamMember", name, state, makeResourceOptions(options, id)); } + private static ConsumersIamMemberArgs makeArgs(ConsumersIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsumersIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamPolicy.java index 6a2ca3f3dc..f77b070baf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ConsumersIamPolicy.java @@ -132,13 +132,20 @@ public ConsumersIamPolicy(String name, ConsumersIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsumersIamPolicy(String name, ConsumersIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:endpoints/consumersIamPolicy:ConsumersIamPolicy", name, args == null ? ConsumersIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:endpoints/consumersIamPolicy:ConsumersIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsumersIamPolicy(String name, Output id, @Nullable ConsumersIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:endpoints/consumersIamPolicy:ConsumersIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ConsumersIamPolicyArgs makeArgs(ConsumersIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsumersIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/Service.java b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/Service.java index 631885ce57..f1a7ec610f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/Service.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/Service.java @@ -236,13 +236,20 @@ public Service(String name, ServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Service(String name, ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:endpoints/service:Service", name, args == null ? ServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:endpoints/service:Service", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Service(String name, Output id, @Nullable ServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:endpoints/service:Service", name, state, makeResourceOptions(options, id)); } + private static ServiceArgs makeArgs(ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamBinding.java index f9c26cd2be..ee6e5993ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamBinding.java @@ -407,13 +407,20 @@ public ServiceIamBinding(String name, ServiceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamBinding(String name, ServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:endpoints/serviceIamBinding:ServiceIamBinding", name, args == null ? ServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:endpoints/serviceIamBinding:ServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamBinding(String name, Output id, @Nullable ServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:endpoints/serviceIamBinding:ServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static ServiceIamBindingArgs makeArgs(ServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamMember.java index 2d8485aa05..2f7b4301d8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamMember.java @@ -406,13 +406,20 @@ public ServiceIamMember(String name, ServiceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamMember(String name, ServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:endpoints/serviceIamMember:ServiceIamMember", name, args == null ? ServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:endpoints/serviceIamMember:ServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamMember(String name, Output id, @Nullable ServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:endpoints/serviceIamMember:ServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static ServiceIamMemberArgs makeArgs(ServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamPolicy.java index 79b579e30a..f456e0f41c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/endpoints/ServiceIamPolicy.java @@ -362,13 +362,20 @@ public ServiceIamPolicy(String name, ServiceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamPolicy(String name, ServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:endpoints/serviceIamPolicy:ServiceIamPolicy", name, args == null ? ServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:endpoints/serviceIamPolicy:ServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamPolicy(String name, Output id, @Nullable ServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:endpoints/serviceIamPolicy:ServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ServiceIamPolicyArgs makeArgs(ServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/Contact.java b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/Contact.java index 330294ed68..80b89789a0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/Contact.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/Contact.java @@ -185,13 +185,20 @@ public Contact(String name, ContactArgs args) { * @param options A bag of options that control this resource's behavior. */ public Contact(String name, ContactArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:essentialcontacts/contact:Contact", name, args == null ? ContactArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:essentialcontacts/contact:Contact", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Contact(String name, Output id, @Nullable ContactState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:essentialcontacts/contact:Contact", name, state, makeResourceOptions(options, id)); } + private static ContactArgs makeArgs(ContactArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ContactArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessor.java b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessor.java index fc8baa2c0a..eeffdd24c7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessor.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessor.java @@ -202,13 +202,20 @@ public DocumentAiProcessor(String name, DocumentAiProcessorArgs args) { * @param options A bag of options that control this resource's behavior. */ public DocumentAiProcessor(String name, DocumentAiProcessorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:essentialcontacts/documentAiProcessor:DocumentAiProcessor", name, args == null ? DocumentAiProcessorArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:essentialcontacts/documentAiProcessor:DocumentAiProcessor", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DocumentAiProcessor(String name, Output id, @Nullable DocumentAiProcessorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:essentialcontacts/documentAiProcessor:DocumentAiProcessor", name, state, makeResourceOptions(options, id)); } + private static DocumentAiProcessorArgs makeArgs(DocumentAiProcessorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DocumentAiProcessorArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessorDefaultVersion.java b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessorDefaultVersion.java index fced38d460..4e2217d78d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessorDefaultVersion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiProcessorDefaultVersion.java @@ -134,13 +134,20 @@ public DocumentAiProcessorDefaultVersion(String name, DocumentAiProcessorDefault * @param options A bag of options that control this resource's behavior. */ public DocumentAiProcessorDefaultVersion(String name, DocumentAiProcessorDefaultVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:essentialcontacts/documentAiProcessorDefaultVersion:DocumentAiProcessorDefaultVersion", name, args == null ? DocumentAiProcessorDefaultVersionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:essentialcontacts/documentAiProcessorDefaultVersion:DocumentAiProcessorDefaultVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DocumentAiProcessorDefaultVersion(String name, Output id, @Nullable DocumentAiProcessorDefaultVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:essentialcontacts/documentAiProcessorDefaultVersion:DocumentAiProcessorDefaultVersion", name, state, makeResourceOptions(options, id)); } + private static DocumentAiProcessorDefaultVersionArgs makeArgs(DocumentAiProcessorDefaultVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DocumentAiProcessorDefaultVersionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseDocumentSchema.java b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseDocumentSchema.java index b73ded00e3..b7c3f7e35f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseDocumentSchema.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseDocumentSchema.java @@ -217,13 +217,20 @@ public DocumentAiWarehouseDocumentSchema(String name, DocumentAiWarehouseDocumen * @param options A bag of options that control this resource's behavior. */ public DocumentAiWarehouseDocumentSchema(String name, DocumentAiWarehouseDocumentSchemaArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:essentialcontacts/documentAiWarehouseDocumentSchema:DocumentAiWarehouseDocumentSchema", name, args == null ? DocumentAiWarehouseDocumentSchemaArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:essentialcontacts/documentAiWarehouseDocumentSchema:DocumentAiWarehouseDocumentSchema", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DocumentAiWarehouseDocumentSchema(String name, Output id, @Nullable DocumentAiWarehouseDocumentSchemaState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:essentialcontacts/documentAiWarehouseDocumentSchema:DocumentAiWarehouseDocumentSchema", name, state, makeResourceOptions(options, id)); } + private static DocumentAiWarehouseDocumentSchemaArgs makeArgs(DocumentAiWarehouseDocumentSchemaArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DocumentAiWarehouseDocumentSchemaArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseLocation.java b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseLocation.java index 123f4b5af2..4d9de349b9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseLocation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/essentialcontacts/DocumentAiWarehouseLocation.java @@ -201,13 +201,20 @@ public DocumentAiWarehouseLocation(String name, DocumentAiWarehouseLocationArgs * @param options A bag of options that control this resource's behavior. */ public DocumentAiWarehouseLocation(String name, DocumentAiWarehouseLocationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:essentialcontacts/documentAiWarehouseLocation:DocumentAiWarehouseLocation", name, args == null ? DocumentAiWarehouseLocationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:essentialcontacts/documentAiWarehouseLocation:DocumentAiWarehouseLocation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DocumentAiWarehouseLocation(String name, Output id, @Nullable DocumentAiWarehouseLocationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:essentialcontacts/documentAiWarehouseLocation:DocumentAiWarehouseLocation", name, state, makeResourceOptions(options, id)); } + private static DocumentAiWarehouseLocationArgs makeArgs(DocumentAiWarehouseLocationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DocumentAiWarehouseLocationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java index 3f98cdcc54..be0370887b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Channel.java @@ -295,13 +295,20 @@ public Channel(String name, ChannelArgs args) { * @param options A bag of options that control this resource's behavior. */ public Channel(String name, ChannelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:eventarc/channel:Channel", name, args == null ? ChannelArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:eventarc/channel:Channel", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Channel(String name, Output id, @Nullable ChannelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:eventarc/channel:Channel", name, state, makeResourceOptions(options, id)); } + private static ChannelArgs makeArgs(ChannelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ChannelArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java index e460723e84..d53554c9b4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/GoogleChannelConfig.java @@ -210,13 +210,20 @@ public GoogleChannelConfig(String name, GoogleChannelConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public GoogleChannelConfig(String name, GoogleChannelConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:eventarc/googleChannelConfig:GoogleChannelConfig", name, args == null ? GoogleChannelConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:eventarc/googleChannelConfig:GoogleChannelConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GoogleChannelConfig(String name, Output id, @Nullable GoogleChannelConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:eventarc/googleChannelConfig:GoogleChannelConfig", name, state, makeResourceOptions(options, id)); } + private static GoogleChannelConfigArgs makeArgs(GoogleChannelConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GoogleChannelConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Trigger.java b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Trigger.java index 3ec076e846..f17cbf593e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Trigger.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/eventarc/Trigger.java @@ -422,13 +422,20 @@ public Trigger(String name, TriggerArgs args) { * @param options A bag of options that control this resource's behavior. */ public Trigger(String name, TriggerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:eventarc/trigger:Trigger", name, args == null ? TriggerArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:eventarc/trigger:Trigger", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Trigger(String name, Output id, @Nullable TriggerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:eventarc/trigger:Trigger", name, state, makeResourceOptions(options, id)); } + private static TriggerArgs makeArgs(TriggerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TriggerArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/filestore/Backup.java b/sdk/java/src/main/java/com/pulumi/gcp/filestore/Backup.java index 83199263a1..834985acd6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/filestore/Backup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/filestore/Backup.java @@ -390,13 +390,20 @@ public Backup(String name, BackupArgs args) { * @param options A bag of options that control this resource's behavior. */ public Backup(String name, BackupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:filestore/backup:Backup", name, args == null ? BackupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:filestore/backup:Backup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Backup(String name, Output id, @Nullable BackupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:filestore/backup:Backup", name, state, makeResourceOptions(options, id)); } + private static BackupArgs makeArgs(BackupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/filestore/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/filestore/Instance.java index f4d1dc3a65..d7f250c440 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/filestore/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/filestore/Instance.java @@ -524,13 +524,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:filestore/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:filestore/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:filestore/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/filestore/Snapshot.java b/sdk/java/src/main/java/com/pulumi/gcp/filestore/Snapshot.java index 4c4ce7a8f0..c1e4286b78 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/filestore/Snapshot.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/filestore/Snapshot.java @@ -369,13 +369,20 @@ public Snapshot(String name, SnapshotArgs args) { * @param options A bag of options that control this resource's behavior. */ public Snapshot(String name, SnapshotArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:filestore/snapshot:Snapshot", name, args == null ? SnapshotArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:filestore/snapshot:Snapshot", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Snapshot(String name, Output id, @Nullable SnapshotState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:filestore/snapshot:Snapshot", name, state, makeResourceOptions(options, id)); } + private static SnapshotArgs makeArgs(SnapshotArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SnapshotArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java index b20eefadf7..97cf3e5cdb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AndroidApp.java @@ -326,13 +326,20 @@ public AndroidApp(String name, AndroidAppArgs args) { * @param options A bag of options that control this resource's behavior. */ public AndroidApp(String name, AndroidAppArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/androidApp:AndroidApp", name, args == null ? AndroidAppArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/androidApp:AndroidApp", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AndroidApp(String name, Output id, @Nullable AndroidAppState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/androidApp:AndroidApp", name, state, makeResourceOptions(options, id)); } + private static AndroidAppArgs makeArgs(AndroidAppArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AndroidAppArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckAppAttestConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckAppAttestConfig.java index 7530e056a0..d4f87e3867 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckAppAttestConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckAppAttestConfig.java @@ -259,13 +259,20 @@ public AppCheckAppAttestConfig(String name, AppCheckAppAttestConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppCheckAppAttestConfig(String name, AppCheckAppAttestConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appCheckAppAttestConfig:AppCheckAppAttestConfig", name, args == null ? AppCheckAppAttestConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appCheckAppAttestConfig:AppCheckAppAttestConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppCheckAppAttestConfig(String name, Output id, @Nullable AppCheckAppAttestConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appCheckAppAttestConfig:AppCheckAppAttestConfig", name, state, makeResourceOptions(options, id)); } + private static AppCheckAppAttestConfigArgs makeArgs(AppCheckAppAttestConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppCheckAppAttestConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDebugToken.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDebugToken.java index ce4cf344aa..0eb0c6f796 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDebugToken.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDebugToken.java @@ -230,13 +230,20 @@ public AppCheckDebugToken(String name, AppCheckDebugTokenArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppCheckDebugToken(String name, AppCheckDebugTokenArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appCheckDebugToken:AppCheckDebugToken", name, args == null ? AppCheckDebugTokenArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appCheckDebugToken:AppCheckDebugToken", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppCheckDebugToken(String name, Output id, @Nullable AppCheckDebugTokenState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appCheckDebugToken:AppCheckDebugToken", name, state, makeResourceOptions(options, id)); } + private static AppCheckDebugTokenArgs makeArgs(AppCheckDebugTokenArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppCheckDebugTokenArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDeviceCheckConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDeviceCheckConfig.java index 111fb5f6a5..09e367218c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDeviceCheckConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckDeviceCheckConfig.java @@ -254,13 +254,20 @@ public AppCheckDeviceCheckConfig(String name, AppCheckDeviceCheckConfigArgs args * @param options A bag of options that control this resource's behavior. */ public AppCheckDeviceCheckConfig(String name, AppCheckDeviceCheckConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig", name, args == null ? AppCheckDeviceCheckConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppCheckDeviceCheckConfig(String name, Output id, @Nullable AppCheckDeviceCheckConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appCheckDeviceCheckConfig:AppCheckDeviceCheckConfig", name, state, makeResourceOptions(options, id)); } + private static AppCheckDeviceCheckConfigArgs makeArgs(AppCheckDeviceCheckConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppCheckDeviceCheckConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckPlayIntegrityConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckPlayIntegrityConfig.java index f1ebd06e98..fb4faf2972 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckPlayIntegrityConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckPlayIntegrityConfig.java @@ -279,13 +279,20 @@ public AppCheckPlayIntegrityConfig(String name, AppCheckPlayIntegrityConfigArgs * @param options A bag of options that control this resource's behavior. */ public AppCheckPlayIntegrityConfig(String name, AppCheckPlayIntegrityConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appCheckPlayIntegrityConfig:AppCheckPlayIntegrityConfig", name, args == null ? AppCheckPlayIntegrityConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appCheckPlayIntegrityConfig:AppCheckPlayIntegrityConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppCheckPlayIntegrityConfig(String name, Output id, @Nullable AppCheckPlayIntegrityConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appCheckPlayIntegrityConfig:AppCheckPlayIntegrityConfig", name, state, makeResourceOptions(options, id)); } + private static AppCheckPlayIntegrityConfigArgs makeArgs(AppCheckPlayIntegrityConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppCheckPlayIntegrityConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaEnterpriseConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaEnterpriseConfig.java index ad899e7b17..2bb1924771 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaEnterpriseConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaEnterpriseConfig.java @@ -225,13 +225,20 @@ public AppCheckRecaptchaEnterpriseConfig(String name, AppCheckRecaptchaEnterpris * @param options A bag of options that control this resource's behavior. */ public AppCheckRecaptchaEnterpriseConfig(String name, AppCheckRecaptchaEnterpriseConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appCheckRecaptchaEnterpriseConfig:AppCheckRecaptchaEnterpriseConfig", name, args == null ? AppCheckRecaptchaEnterpriseConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appCheckRecaptchaEnterpriseConfig:AppCheckRecaptchaEnterpriseConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppCheckRecaptchaEnterpriseConfig(String name, Output id, @Nullable AppCheckRecaptchaEnterpriseConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appCheckRecaptchaEnterpriseConfig:AppCheckRecaptchaEnterpriseConfig", name, state, makeResourceOptions(options, id)); } + private static AppCheckRecaptchaEnterpriseConfigArgs makeArgs(AppCheckRecaptchaEnterpriseConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppCheckRecaptchaEnterpriseConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaV3Config.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaV3Config.java index 2da0344bb3..5f917babe5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaV3Config.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckRecaptchaV3Config.java @@ -234,13 +234,20 @@ public AppCheckRecaptchaV3Config(String name, AppCheckRecaptchaV3ConfigArgs args * @param options A bag of options that control this resource's behavior. */ public AppCheckRecaptchaV3Config(String name, AppCheckRecaptchaV3ConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appCheckRecaptchaV3Config:AppCheckRecaptchaV3Config", name, args == null ? AppCheckRecaptchaV3ConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appCheckRecaptchaV3Config:AppCheckRecaptchaV3Config", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppCheckRecaptchaV3Config(String name, Output id, @Nullable AppCheckRecaptchaV3ConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appCheckRecaptchaV3Config:AppCheckRecaptchaV3Config", name, state, makeResourceOptions(options, id)); } + private static AppCheckRecaptchaV3ConfigArgs makeArgs(AppCheckRecaptchaV3ConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppCheckRecaptchaV3ConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckServiceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckServiceConfig.java index e2d1e8f22c..e2d7e100d9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckServiceConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppCheckServiceConfig.java @@ -278,13 +278,20 @@ public AppCheckServiceConfig(String name, AppCheckServiceConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppCheckServiceConfig(String name, AppCheckServiceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appCheckServiceConfig:AppCheckServiceConfig", name, args == null ? AppCheckServiceConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appCheckServiceConfig:AppCheckServiceConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppCheckServiceConfig(String name, Output id, @Nullable AppCheckServiceConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appCheckServiceConfig:AppCheckServiceConfig", name, state, makeResourceOptions(options, id)); } + private static AppCheckServiceConfigArgs makeArgs(AppCheckServiceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppCheckServiceConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java index 30790bbf17..de43ec0d95 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/AppleApp.java @@ -302,13 +302,20 @@ public AppleApp(String name, AppleAppArgs args) { * @param options A bag of options that control this resource's behavior. */ public AppleApp(String name, AppleAppArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/appleApp:AppleApp", name, args == null ? AppleAppArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/appleApp:AppleApp", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppleApp(String name, Output id, @Nullable AppleAppState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/appleApp:AppleApp", name, state, makeResourceOptions(options, id)); } + private static AppleAppArgs makeArgs(AppleAppArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppleAppArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/DatabaseInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/DatabaseInstance.java index 3b37335eff..e6e8a42070 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/DatabaseInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/DatabaseInstance.java @@ -238,8 +238,8 @@ public Output instanceId() { return this.instanceId; } /** - * The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). * @@ -248,8 +248,8 @@ public Output instanceId() { private Output name; /** - * @return The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * @return The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). * @@ -350,13 +350,20 @@ public DatabaseInstance(String name, DatabaseInstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatabaseInstance(String name, DatabaseInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/databaseInstance:DatabaseInstance", name, args == null ? DatabaseInstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/databaseInstance:DatabaseInstance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatabaseInstance(String name, Output id, @Nullable DatabaseInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/databaseInstance:DatabaseInstance", name, state, makeResourceOptions(options, id)); } + private static DatabaseInstanceArgs makeArgs(DatabaseInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseInstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/ExtensionsInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/ExtensionsInstance.java index 38d04b0a5d..687887d4f4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/ExtensionsInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/ExtensionsInstance.java @@ -331,13 +331,20 @@ public ExtensionsInstance(String name, ExtensionsInstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public ExtensionsInstance(String name, ExtensionsInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/extensionsInstance:ExtensionsInstance", name, args == null ? ExtensionsInstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/extensionsInstance:ExtensionsInstance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ExtensionsInstance(String name, Output id, @Nullable ExtensionsInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/extensionsInstance:ExtensionsInstance", name, state, makeResourceOptions(options, id)); } + private static ExtensionsInstanceArgs makeArgs(ExtensionsInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ExtensionsInstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingChannel.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingChannel.java index ff5598f8d5..b9bc243b38 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingChannel.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingChannel.java @@ -300,13 +300,20 @@ public HostingChannel(String name, HostingChannelArgs args) { * @param options A bag of options that control this resource's behavior. */ public HostingChannel(String name, HostingChannelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/hostingChannel:HostingChannel", name, args == null ? HostingChannelArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/hostingChannel:HostingChannel", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HostingChannel(String name, Output id, @Nullable HostingChannelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/hostingChannel:HostingChannel", name, state, makeResourceOptions(options, id)); } + private static HostingChannelArgs makeArgs(HostingChannelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HostingChannelArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingCustomDomain.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingCustomDomain.java index dd5f53cc62..815c63374f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingCustomDomain.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingCustomDomain.java @@ -638,13 +638,20 @@ public HostingCustomDomain(String name, HostingCustomDomainArgs args) { * @param options A bag of options that control this resource's behavior. */ public HostingCustomDomain(String name, HostingCustomDomainArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/hostingCustomDomain:HostingCustomDomain", name, args == null ? HostingCustomDomainArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/hostingCustomDomain:HostingCustomDomain", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HostingCustomDomain(String name, Output id, @Nullable HostingCustomDomainState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/hostingCustomDomain:HostingCustomDomain", name, state, makeResourceOptions(options, id)); } + private static HostingCustomDomainArgs makeArgs(HostingCustomDomainArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HostingCustomDomainArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingRelease.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingRelease.java index 5bd5d1be00..18169a6f08 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingRelease.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingRelease.java @@ -363,13 +363,20 @@ public HostingRelease(String name, HostingReleaseArgs args) { * @param options A bag of options that control this resource's behavior. */ public HostingRelease(String name, HostingReleaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/hostingRelease:HostingRelease", name, args == null ? HostingReleaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/hostingRelease:HostingRelease", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HostingRelease(String name, Output id, @Nullable HostingReleaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/hostingRelease:HostingRelease", name, state, makeResourceOptions(options, id)); } + private static HostingReleaseArgs makeArgs(HostingReleaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HostingReleaseArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingSite.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingSite.java index d009db24af..e6462104f8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingSite.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingSite.java @@ -160,8 +160,8 @@ public Output defaultUrl() { return this.defaultUrl; } /** - * Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -173,8 +173,8 @@ public Output defaultUrl() { private Output name; /** - * @return Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * @return Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -242,13 +242,20 @@ public HostingSite(String name, @Nullable HostingSiteArgs args) { * @param options A bag of options that control this resource's behavior. */ public HostingSite(String name, @Nullable HostingSiteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/hostingSite:HostingSite", name, args == null ? HostingSiteArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/hostingSite:HostingSite", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HostingSite(String name, Output id, @Nullable HostingSiteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/hostingSite:HostingSite", name, state, makeResourceOptions(options, id)); } + private static HostingSiteArgs makeArgs(@Nullable HostingSiteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HostingSiteArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingVersion.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingVersion.java index 81f559fc57..7f7a342de9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingVersion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/HostingVersion.java @@ -402,13 +402,20 @@ public HostingVersion(String name, HostingVersionArgs args) { * @param options A bag of options that control this resource's behavior. */ public HostingVersion(String name, HostingVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/hostingVersion:HostingVersion", name, args == null ? HostingVersionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/hostingVersion:HostingVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HostingVersion(String name, Output id, @Nullable HostingVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/hostingVersion:HostingVersion", name, state, makeResourceOptions(options, id)); } + private static HostingVersionArgs makeArgs(HostingVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HostingVersionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/Project.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/Project.java index 546df8fef0..7fb8fce39a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/Project.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/Project.java @@ -159,13 +159,20 @@ public Project(String name, @Nullable ProjectArgs args) { * @param options A bag of options that control this resource's behavior. */ public Project(String name, @Nullable ProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/project:Project", name, args == null ? ProjectArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/project:Project", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Project(String name, Output id, @Nullable ProjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/project:Project", name, state, makeResourceOptions(options, id)); } + private static ProjectArgs makeArgs(@Nullable ProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/StorageBucket.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/StorageBucket.java index ed759e556d..f2626bbbde 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/StorageBucket.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/StorageBucket.java @@ -155,13 +155,20 @@ public StorageBucket(String name, @Nullable StorageBucketArgs args) { * @param options A bag of options that control this resource's behavior. */ public StorageBucket(String name, @Nullable StorageBucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/storageBucket:StorageBucket", name, args == null ? StorageBucketArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/storageBucket:StorageBucket", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private StorageBucket(String name, Output id, @Nullable StorageBucketState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/storageBucket:StorageBucket", name, state, makeResourceOptions(options, id)); } + private static StorageBucketArgs makeArgs(@Nullable StorageBucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? StorageBucketArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java index a782bdcbb0..b3fc71fcb9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/WebApp.java @@ -245,13 +245,20 @@ public WebApp(String name, WebAppArgs args) { * @param options A bag of options that control this resource's behavior. */ public WebApp(String name, WebAppArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebase/webApp:WebApp", name, args == null ? WebAppArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebase/webApp:WebApp", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebApp(String name, Output id, @Nullable WebAppState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebase/webApp:WebApp", name, state, makeResourceOptions(options, id)); } + private static WebAppArgs makeArgs(WebAppArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebAppArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/DatabaseInstanceState.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/DatabaseInstanceState.java index e88c08a922..ee128e2e9d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/DatabaseInstanceState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/DatabaseInstanceState.java @@ -69,8 +69,8 @@ public Optional> instanceId() { } /** - * The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). * @@ -79,8 +79,8 @@ public Optional> instanceId() { private @Nullable Output name; /** - * @return The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * @return The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). * @@ -266,8 +266,8 @@ public Builder instanceId(String instanceId) { } /** - * @param name The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * @param name The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). * @@ -280,8 +280,8 @@ public Builder name(@Nullable Output name) { } /** - * @param name The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * @param name The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/HostingSiteState.java b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/HostingSiteState.java index ed68e7b793..3469324200 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/HostingSiteState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebase/inputs/HostingSiteState.java @@ -48,8 +48,8 @@ public Optional> defaultUrl() { } /** - * Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -61,8 +61,8 @@ public Optional> defaultUrl() { private @Nullable Output name; /** - * @return Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * @return Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -183,8 +183,8 @@ public Builder defaultUrl(String defaultUrl) { } /** - * @param name Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * @param name Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -200,8 +200,8 @@ public Builder name(@Nullable Output name) { } /** - * @param name Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * @param name Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Release.java b/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Release.java index 0240035f09..c704b81eb5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Release.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Release.java @@ -144,13 +144,20 @@ public Release(String name, ReleaseArgs args) { * @param options A bag of options that control this resource's behavior. */ public Release(String name, ReleaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebaserules/release:Release", name, args == null ? ReleaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebaserules/release:Release", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Release(String name, Output id, @Nullable ReleaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebaserules/release:Release", name, state, makeResourceOptions(options, id)); } + private static ReleaseArgs makeArgs(ReleaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ReleaseArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Ruleset.java b/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Ruleset.java index a491779342..65f768bf3b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Ruleset.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firebaserules/Ruleset.java @@ -226,13 +226,20 @@ public Ruleset(String name, RulesetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Ruleset(String name, RulesetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firebaserules/ruleset:Ruleset", name, args == null ? RulesetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firebaserules/ruleset:Ruleset", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Ruleset(String name, Output id, @Nullable RulesetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firebaserules/ruleset:Ruleset", name, state, makeResourceOptions(options, id)); } + private static RulesetArgs makeArgs(RulesetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RulesetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/BackupSchedule.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/BackupSchedule.java index c71b00a278..c07035a689 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firestore/BackupSchedule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/BackupSchedule.java @@ -283,13 +283,20 @@ public BackupSchedule(String name, BackupScheduleArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackupSchedule(String name, BackupScheduleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firestore/backupSchedule:BackupSchedule", name, args == null ? BackupScheduleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firestore/backupSchedule:BackupSchedule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackupSchedule(String name, Output id, @Nullable BackupScheduleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firestore/backupSchedule:BackupSchedule", name, state, makeResourceOptions(options, id)); } + private static BackupScheduleArgs makeArgs(BackupScheduleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupScheduleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java index 412443dd78..9ceba7f48b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Database.java @@ -681,13 +681,20 @@ public Database(String name, DatabaseArgs args) { * @param options A bag of options that control this resource's behavior. */ public Database(String name, DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firestore/database:Database", name, args == null ? DatabaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firestore/database:Database", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Database(String name, Output id, @Nullable DatabaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firestore/database:Database", name, state, makeResourceOptions(options, id)); } + private static DatabaseArgs makeArgs(DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Document.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Document.java index 7fb4dd41d3..c64c826336 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Document.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Document.java @@ -374,13 +374,20 @@ public Document(String name, DocumentArgs args) { * @param options A bag of options that control this resource's behavior. */ public Document(String name, DocumentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firestore/document:Document", name, args == null ? DocumentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firestore/document:Document", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Document(String name, Output id, @Nullable DocumentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firestore/document:Document", name, state, makeResourceOptions(options, id)); } + private static DocumentArgs makeArgs(DocumentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DocumentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Field.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Field.java index 8acf4446a3..66e23bc2df 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Field.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Field.java @@ -361,13 +361,20 @@ public Field(String name, FieldArgs args) { * @param options A bag of options that control this resource's behavior. */ public Field(String name, FieldArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firestore/field:Field", name, args == null ? FieldArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firestore/field:Field", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Field(String name, Output id, @Nullable FieldState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firestore/field:Field", name, state, makeResourceOptions(options, id)); } + private static FieldArgs makeArgs(FieldArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FieldArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java index 2ca4186bda..92a98c7e40 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/firestore/Index.java @@ -18,8 +18,9 @@ /** * Cloud Firestore indexes enable simple and complex queries against documents in a database. - * This resource manages composite indexes and not single - * field indexes. + * Both Firestore Native and Datastore Mode indexes are supported. + * This resource manages composite indexes and not single field indexes. + * To manage single field indexes, use the `gcp.firestore.Field` resource instead. * * To get more information about Index, see: * @@ -31,9 +32,8 @@ * a Firestore database. If you haven't already created it, you may * create a `gcp.firestore.Database` resource and `location_id` set * to your chosen location. If you wish to use App Engine, you may - * instead create a `gcp.appengine.Application` resource with - * `database_type` set to `"CLOUD_FIRESTORE"`. Your Firestore location - * will be the same as the App Engine location specified. + * instead create a `gcp.appengine.Application` resource. + * Your Firestore location will be the same as the App Engine location specified. * * ## Example Usage * @@ -364,13 +364,20 @@ public Index(String name, IndexArgs args) { * @param options A bag of options that control this resource's behavior. */ public Index(String name, IndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:firestore/index:Index", name, args == null ? IndexArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:firestore/index:Index", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Index(String name, Output id, @Nullable IndexState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:firestore/index:Index", name, state, makeResourceOptions(options, id)); } + private static IndexArgs makeArgs(IndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IndexArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/folder/AccessApprovalSettings.java b/sdk/java/src/main/java/com/pulumi/gcp/folder/AccessApprovalSettings.java index 0dbecad53d..b5a7be51aa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/folder/AccessApprovalSettings.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/folder/AccessApprovalSettings.java @@ -350,13 +350,20 @@ public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:folder/accessApprovalSettings:AccessApprovalSettings", name, args == null ? AccessApprovalSettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:folder/accessApprovalSettings:AccessApprovalSettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessApprovalSettings(String name, Output id, @Nullable AccessApprovalSettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:folder/accessApprovalSettings:AccessApprovalSettings", name, state, makeResourceOptions(options, id)); } + private static AccessApprovalSettingsArgs makeArgs(AccessApprovalSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessApprovalSettingsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMBinding.java index 311f341313..7a9c95ee53 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMBinding.java @@ -188,13 +188,20 @@ public IAMBinding(String name, IAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public IAMBinding(String name, IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:folder/iAMBinding:IAMBinding", name, args == null ? IAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:folder/iAMBinding:IAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IAMBinding(String name, Output id, @Nullable IAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:folder/iAMBinding:IAMBinding", name, state, makeResourceOptions(options, id)); } + private static IAMBindingArgs makeArgs(IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMMember.java index 9a996adfc5..50dd731272 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMMember.java @@ -784,13 +784,20 @@ public IAMMember(String name, IAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public IAMMember(String name, IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:folder/iAMMember:IAMMember", name, args == null ? IAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:folder/iAMMember:IAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IAMMember(String name, Output id, @Nullable IAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:folder/iAMMember:IAMMember", name, state, makeResourceOptions(options, id)); } + private static IAMMemberArgs makeArgs(IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMPolicy.java index a166e72e6c..44b6b24fc5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/folder/IAMPolicy.java @@ -752,13 +752,20 @@ public IAMPolicy(String name, IAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public IAMPolicy(String name, IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:folder/iAMPolicy:IAMPolicy", name, args == null ? IAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:folder/iAMPolicy:IAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IAMPolicy(String name, Output id, @Nullable IAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:folder/iAMPolicy:IAMPolicy", name, state, makeResourceOptions(options, id)); } + private static IAMPolicyArgs makeArgs(IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/folder/IamAuditConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/folder/IamAuditConfig.java index 5dedd42421..c01253219b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/folder/IamAuditConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/folder/IamAuditConfig.java @@ -754,13 +754,20 @@ public IamAuditConfig(String name, IamAuditConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public IamAuditConfig(String name, IamAuditConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:folder/iamAuditConfig:IamAuditConfig", name, args == null ? IamAuditConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:folder/iamAuditConfig:IamAuditConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IamAuditConfig(String name, Output id, @Nullable IamAuditConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:folder/iamAuditConfig:IamAuditConfig", name, state, makeResourceOptions(options, id)); } + private static IamAuditConfigArgs makeArgs(IamAuditConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IamAuditConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/folder/OrganizationPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/folder/OrganizationPolicy.java index c02e63497d..bfb981a7b4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/folder/OrganizationPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/folder/OrganizationPolicy.java @@ -370,13 +370,20 @@ public OrganizationPolicy(String name, OrganizationPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public OrganizationPolicy(String name, OrganizationPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:folder/organizationPolicy:OrganizationPolicy", name, args == null ? OrganizationPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:folder/organizationPolicy:OrganizationPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationPolicy(String name, Output id, @Nullable OrganizationPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:folder/organizationPolicy:OrganizationPolicy", name, state, makeResourceOptions(options, id)); } + private static OrganizationPolicyArgs makeArgs(OrganizationPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlan.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlan.java index 3daf340222..d36d87cdab 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlan.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlan.java @@ -959,13 +959,20 @@ public BackupPlan(String name, BackupPlanArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackupPlan(String name, BackupPlanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/backupPlan:BackupPlan", name, args == null ? BackupPlanArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/backupPlan:BackupPlan", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackupPlan(String name, Output id, @Nullable BackupPlanState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/backupPlan:BackupPlan", name, state, makeResourceOptions(options, id)); } + private static BackupPlanArgs makeArgs(BackupPlanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupPlanArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamBinding.java index a09e5c4d0d..e86dbccdbb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamBinding.java @@ -467,13 +467,20 @@ public BackupPlanIamBinding(String name, BackupPlanIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackupPlanIamBinding(String name, BackupPlanIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/backupPlanIamBinding:BackupPlanIamBinding", name, args == null ? BackupPlanIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/backupPlanIamBinding:BackupPlanIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackupPlanIamBinding(String name, Output id, @Nullable BackupPlanIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/backupPlanIamBinding:BackupPlanIamBinding", name, state, makeResourceOptions(options, id)); } + private static BackupPlanIamBindingArgs makeArgs(BackupPlanIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupPlanIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamMember.java index 14411604c8..714966cc4f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamMember.java @@ -466,13 +466,20 @@ public BackupPlanIamMember(String name, BackupPlanIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackupPlanIamMember(String name, BackupPlanIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/backupPlanIamMember:BackupPlanIamMember", name, args == null ? BackupPlanIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/backupPlanIamMember:BackupPlanIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackupPlanIamMember(String name, Output id, @Nullable BackupPlanIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/backupPlanIamMember:BackupPlanIamMember", name, state, makeResourceOptions(options, id)); } + private static BackupPlanIamMemberArgs makeArgs(BackupPlanIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupPlanIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamPolicy.java index e24898fd4a..b426011950 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/BackupPlanIamPolicy.java @@ -422,13 +422,20 @@ public BackupPlanIamPolicy(String name, BackupPlanIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackupPlanIamPolicy(String name, BackupPlanIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/backupPlanIamPolicy:BackupPlanIamPolicy", name, args == null ? BackupPlanIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/backupPlanIamPolicy:BackupPlanIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackupPlanIamPolicy(String name, Output id, @Nullable BackupPlanIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/backupPlanIamPolicy:BackupPlanIamPolicy", name, state, makeResourceOptions(options, id)); } + private static BackupPlanIamPolicyArgs makeArgs(BackupPlanIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupPlanIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlan.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlan.java index 90af10e456..054adcd4ef 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlan.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlan.java @@ -1113,13 +1113,20 @@ public RestorePlan(String name, RestorePlanArgs args) { * @param options A bag of options that control this resource's behavior. */ public RestorePlan(String name, RestorePlanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/restorePlan:RestorePlan", name, args == null ? RestorePlanArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/restorePlan:RestorePlan", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RestorePlan(String name, Output id, @Nullable RestorePlanState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/restorePlan:RestorePlan", name, state, makeResourceOptions(options, id)); } + private static RestorePlanArgs makeArgs(RestorePlanArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RestorePlanArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamBinding.java index fbdc8722bf..bb0e833a99 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamBinding.java @@ -467,13 +467,20 @@ public RestorePlanIamBinding(String name, RestorePlanIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public RestorePlanIamBinding(String name, RestorePlanIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/restorePlanIamBinding:RestorePlanIamBinding", name, args == null ? RestorePlanIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/restorePlanIamBinding:RestorePlanIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RestorePlanIamBinding(String name, Output id, @Nullable RestorePlanIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/restorePlanIamBinding:RestorePlanIamBinding", name, state, makeResourceOptions(options, id)); } + private static RestorePlanIamBindingArgs makeArgs(RestorePlanIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RestorePlanIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamMember.java index ee6dcf915b..fe5862cff1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamMember.java @@ -466,13 +466,20 @@ public RestorePlanIamMember(String name, RestorePlanIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public RestorePlanIamMember(String name, RestorePlanIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/restorePlanIamMember:RestorePlanIamMember", name, args == null ? RestorePlanIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/restorePlanIamMember:RestorePlanIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RestorePlanIamMember(String name, Output id, @Nullable RestorePlanIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/restorePlanIamMember:RestorePlanIamMember", name, state, makeResourceOptions(options, id)); } + private static RestorePlanIamMemberArgs makeArgs(RestorePlanIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RestorePlanIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamPolicy.java index 19199eac55..e364da474b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkebackup/RestorePlanIamPolicy.java @@ -422,13 +422,20 @@ public RestorePlanIamPolicy(String name, RestorePlanIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RestorePlanIamPolicy(String name, RestorePlanIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkebackup/restorePlanIamPolicy:RestorePlanIamPolicy", name, args == null ? RestorePlanIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkebackup/restorePlanIamPolicy:RestorePlanIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RestorePlanIamPolicy(String name, Output id, @Nullable RestorePlanIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkebackup/restorePlanIamPolicy:RestorePlanIamPolicy", name, state, makeResourceOptions(options, id)); } + private static RestorePlanIamPolicyArgs makeArgs(RestorePlanIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RestorePlanIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Feature.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Feature.java index 867450a6fb..7726cfb935 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Feature.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Feature.java @@ -919,13 +919,20 @@ public Feature(String name, FeatureArgs args) { * @param options A bag of options that control this resource's behavior. */ public Feature(String name, FeatureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/feature:Feature", name, args == null ? FeatureArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/feature:Feature", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Feature(String name, Output id, @Nullable com.pulumi.gcp.gkehub.inputs.FeatureState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/feature:Feature", name, state, makeResourceOptions(options, id)); } + private static FeatureArgs makeArgs(FeatureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FeatureArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamBinding.java index b9a6ff3fe6..992b2e93e3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamBinding.java @@ -465,13 +465,20 @@ public FeatureIamBinding(String name, FeatureIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public FeatureIamBinding(String name, FeatureIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/featureIamBinding:FeatureIamBinding", name, args == null ? FeatureIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/featureIamBinding:FeatureIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FeatureIamBinding(String name, Output id, @Nullable FeatureIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/featureIamBinding:FeatureIamBinding", name, state, makeResourceOptions(options, id)); } + private static FeatureIamBindingArgs makeArgs(FeatureIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FeatureIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamMember.java index e8a2cd46f1..55a798e1dd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamMember.java @@ -464,13 +464,20 @@ public FeatureIamMember(String name, FeatureIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public FeatureIamMember(String name, FeatureIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/featureIamMember:FeatureIamMember", name, args == null ? FeatureIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/featureIamMember:FeatureIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FeatureIamMember(String name, Output id, @Nullable FeatureIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/featureIamMember:FeatureIamMember", name, state, makeResourceOptions(options, id)); } + private static FeatureIamMemberArgs makeArgs(FeatureIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FeatureIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamPolicy.java index e4ffc48d87..41d687c4d5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureIamPolicy.java @@ -420,13 +420,20 @@ public FeatureIamPolicy(String name, FeatureIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public FeatureIamPolicy(String name, FeatureIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/featureIamPolicy:FeatureIamPolicy", name, args == null ? FeatureIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/featureIamPolicy:FeatureIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FeatureIamPolicy(String name, Output id, @Nullable FeatureIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/featureIamPolicy:FeatureIamPolicy", name, state, makeResourceOptions(options, id)); } + private static FeatureIamPolicyArgs makeArgs(FeatureIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FeatureIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureMembership.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureMembership.java index b526b4b945..e34cdeb652 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureMembership.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/FeatureMembership.java @@ -683,13 +683,20 @@ public FeatureMembership(String name, FeatureMembershipArgs args) { * @param options A bag of options that control this resource's behavior. */ public FeatureMembership(String name, FeatureMembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/featureMembership:FeatureMembership", name, args == null ? FeatureMembershipArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/featureMembership:FeatureMembership", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FeatureMembership(String name, Output id, @Nullable FeatureMembershipState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/featureMembership:FeatureMembership", name, state, makeResourceOptions(options, id)); } + private static FeatureMembershipArgs makeArgs(FeatureMembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FeatureMembershipArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Fleet.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Fleet.java index 055b707a17..701bf49eca 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Fleet.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Fleet.java @@ -238,13 +238,20 @@ public Fleet(String name, @Nullable FleetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Fleet(String name, @Nullable FleetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/fleet:Fleet", name, args == null ? FleetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/fleet:Fleet", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Fleet(String name, Output id, @Nullable com.pulumi.gcp.gkehub.inputs.FleetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/fleet:Fleet", name, state, makeResourceOptions(options, id)); } + private static FleetArgs makeArgs(@Nullable FleetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FleetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Membership.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Membership.java index 184e3e52d3..73110d666a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Membership.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Membership.java @@ -418,13 +418,20 @@ public Membership(String name, MembershipArgs args) { * @param options A bag of options that control this resource's behavior. */ public Membership(String name, MembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/membership:Membership", name, args == null ? MembershipArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/membership:Membership", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Membership(String name, Output id, @Nullable MembershipState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/membership:Membership", name, state, makeResourceOptions(options, id)); } + private static MembershipArgs makeArgs(MembershipArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MembershipArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipBinding.java index b4c5753542..dc6b42fe36 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipBinding.java @@ -371,13 +371,20 @@ public MembershipBinding(String name, MembershipBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public MembershipBinding(String name, MembershipBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/membershipBinding:MembershipBinding", name, args == null ? MembershipBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/membershipBinding:MembershipBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MembershipBinding(String name, Output id, @Nullable com.pulumi.gcp.gkehub.inputs.MembershipBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/membershipBinding:MembershipBinding", name, state, makeResourceOptions(options, id)); } + private static MembershipBindingArgs makeArgs(MembershipBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MembershipBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamBinding.java index b799141e17..18ee50007a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamBinding.java @@ -461,13 +461,20 @@ public MembershipIamBinding(String name, MembershipIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public MembershipIamBinding(String name, MembershipIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/membershipIamBinding:MembershipIamBinding", name, args == null ? MembershipIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/membershipIamBinding:MembershipIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MembershipIamBinding(String name, Output id, @Nullable MembershipIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/membershipIamBinding:MembershipIamBinding", name, state, makeResourceOptions(options, id)); } + private static MembershipIamBindingArgs makeArgs(MembershipIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MembershipIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamMember.java index d772970be7..ab5ffa379f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamMember.java @@ -460,13 +460,20 @@ public MembershipIamMember(String name, MembershipIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public MembershipIamMember(String name, MembershipIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/membershipIamMember:MembershipIamMember", name, args == null ? MembershipIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/membershipIamMember:MembershipIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MembershipIamMember(String name, Output id, @Nullable MembershipIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/membershipIamMember:MembershipIamMember", name, state, makeResourceOptions(options, id)); } + private static MembershipIamMemberArgs makeArgs(MembershipIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MembershipIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamPolicy.java index 91d50fd0a4..33ad57d80e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipIamPolicy.java @@ -416,13 +416,20 @@ public MembershipIamPolicy(String name, MembershipIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public MembershipIamPolicy(String name, MembershipIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/membershipIamPolicy:MembershipIamPolicy", name, args == null ? MembershipIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/membershipIamPolicy:MembershipIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MembershipIamPolicy(String name, Output id, @Nullable MembershipIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/membershipIamPolicy:MembershipIamPolicy", name, state, makeResourceOptions(options, id)); } + private static MembershipIamPolicyArgs makeArgs(MembershipIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MembershipIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipRbacRoleBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipRbacRoleBinding.java index 0c2988e088..6d423ee905 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipRbacRoleBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/MembershipRbacRoleBinding.java @@ -313,13 +313,20 @@ public MembershipRbacRoleBinding(String name, MembershipRbacRoleBindingArgs args * @param options A bag of options that control this resource's behavior. */ public MembershipRbacRoleBinding(String name, MembershipRbacRoleBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/membershipRbacRoleBinding:MembershipRbacRoleBinding", name, args == null ? MembershipRbacRoleBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/membershipRbacRoleBinding:MembershipRbacRoleBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MembershipRbacRoleBinding(String name, Output id, @Nullable com.pulumi.gcp.gkehub.inputs.MembershipRbacRoleBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/membershipRbacRoleBinding:MembershipRbacRoleBinding", name, state, makeResourceOptions(options, id)); } + private static MembershipRbacRoleBindingArgs makeArgs(MembershipRbacRoleBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MembershipRbacRoleBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Namespace.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Namespace.java index 889bd987f9..5f6925cdb7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Namespace.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Namespace.java @@ -353,13 +353,20 @@ public Namespace(String name, NamespaceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Namespace(String name, NamespaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/namespace:Namespace", name, args == null ? NamespaceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/namespace:Namespace", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Namespace(String name, Output id, @Nullable com.pulumi.gcp.gkehub.inputs.NamespaceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/namespace:Namespace", name, state, makeResourceOptions(options, id)); } + private static NamespaceArgs makeArgs(NamespaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NamespaceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Scope.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Scope.java index 6a8f6bfba8..beba8b6ff7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Scope.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/Scope.java @@ -314,13 +314,20 @@ public Scope(String name, ScopeArgs args) { * @param options A bag of options that control this resource's behavior. */ public Scope(String name, ScopeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/scope:Scope", name, args == null ? ScopeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/scope:Scope", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Scope(String name, Output id, @Nullable com.pulumi.gcp.gkehub.inputs.ScopeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/scope:Scope", name, state, makeResourceOptions(options, id)); } + private static ScopeArgs makeArgs(ScopeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ScopeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamBinding.java index d70a3b396d..5a743195d9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamBinding.java @@ -431,13 +431,20 @@ public ScopeIamBinding(String name, ScopeIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ScopeIamBinding(String name, ScopeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/scopeIamBinding:ScopeIamBinding", name, args == null ? ScopeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/scopeIamBinding:ScopeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ScopeIamBinding(String name, Output id, @Nullable ScopeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/scopeIamBinding:ScopeIamBinding", name, state, makeResourceOptions(options, id)); } + private static ScopeIamBindingArgs makeArgs(ScopeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ScopeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamMember.java index 02a1b5a85b..bb85f46c4d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamMember.java @@ -430,13 +430,20 @@ public ScopeIamMember(String name, ScopeIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ScopeIamMember(String name, ScopeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/scopeIamMember:ScopeIamMember", name, args == null ? ScopeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/scopeIamMember:ScopeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ScopeIamMember(String name, Output id, @Nullable ScopeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/scopeIamMember:ScopeIamMember", name, state, makeResourceOptions(options, id)); } + private static ScopeIamMemberArgs makeArgs(ScopeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ScopeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamPolicy.java index 9e38fe9447..86bde19479 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeIamPolicy.java @@ -386,13 +386,20 @@ public ScopeIamPolicy(String name, ScopeIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ScopeIamPolicy(String name, ScopeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/scopeIamPolicy:ScopeIamPolicy", name, args == null ? ScopeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/scopeIamPolicy:ScopeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ScopeIamPolicy(String name, Output id, @Nullable ScopeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/scopeIamPolicy:ScopeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ScopeIamPolicyArgs makeArgs(ScopeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ScopeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeRbacRoleBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeRbacRoleBinding.java index da34540d49..68c1f65dc5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeRbacRoleBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkehub/ScopeRbacRoleBinding.java @@ -345,13 +345,20 @@ public ScopeRbacRoleBinding(String name, ScopeRbacRoleBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ScopeRbacRoleBinding(String name, ScopeRbacRoleBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkehub/scopeRbacRoleBinding:ScopeRbacRoleBinding", name, args == null ? ScopeRbacRoleBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkehub/scopeRbacRoleBinding:ScopeRbacRoleBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ScopeRbacRoleBinding(String name, Output id, @Nullable com.pulumi.gcp.gkehub.inputs.ScopeRbacRoleBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkehub/scopeRbacRoleBinding:ScopeRbacRoleBinding", name, state, makeResourceOptions(options, id)); } + private static ScopeRbacRoleBindingArgs makeArgs(ScopeRbacRoleBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ScopeRbacRoleBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalAdminCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalAdminCluster.java index aad0ea564c..70ca2236ac 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalAdminCluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalAdminCluster.java @@ -823,13 +823,20 @@ public BareMetalAdminCluster(String name, BareMetalAdminClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public BareMetalAdminCluster(String name, BareMetalAdminClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkeonprem/bareMetalAdminCluster:BareMetalAdminCluster", name, args == null ? BareMetalAdminClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkeonprem/bareMetalAdminCluster:BareMetalAdminCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BareMetalAdminCluster(String name, Output id, @Nullable BareMetalAdminClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkeonprem/bareMetalAdminCluster:BareMetalAdminCluster", name, state, makeResourceOptions(options, id)); } + private static BareMetalAdminClusterArgs makeArgs(BareMetalAdminClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BareMetalAdminClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalCluster.java index 3f5a2ff1b8..fcdf6b4977 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalCluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalCluster.java @@ -1016,13 +1016,20 @@ public BareMetalCluster(String name, BareMetalClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public BareMetalCluster(String name, BareMetalClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkeonprem/bareMetalCluster:BareMetalCluster", name, args == null ? BareMetalClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkeonprem/bareMetalCluster:BareMetalCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BareMetalCluster(String name, Output id, @Nullable BareMetalClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkeonprem/bareMetalCluster:BareMetalCluster", name, state, makeResourceOptions(options, id)); } + private static BareMetalClusterArgs makeArgs(BareMetalClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BareMetalClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalNodePool.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalNodePool.java index d2aead9128..3c4a004322 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalNodePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/BareMetalNodePool.java @@ -574,13 +574,20 @@ public BareMetalNodePool(String name, BareMetalNodePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public BareMetalNodePool(String name, BareMetalNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkeonprem/bareMetalNodePool:BareMetalNodePool", name, args == null ? BareMetalNodePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkeonprem/bareMetalNodePool:BareMetalNodePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BareMetalNodePool(String name, Output id, @Nullable BareMetalNodePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkeonprem/bareMetalNodePool:BareMetalNodePool", name, state, makeResourceOptions(options, id)); } + private static BareMetalNodePoolArgs makeArgs(BareMetalNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BareMetalNodePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareCluster.java index 19096f2877..dab273e201 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareCluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareCluster.java @@ -913,13 +913,20 @@ public VMwareCluster(String name, VMwareClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public VMwareCluster(String name, VMwareClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkeonprem/vMwareCluster:VMwareCluster", name, args == null ? VMwareClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkeonprem/vMwareCluster:VMwareCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VMwareCluster(String name, Output id, @Nullable VMwareClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkeonprem/vMwareCluster:VMwareCluster", name, state, makeResourceOptions(options, id)); } + private static VMwareClusterArgs makeArgs(VMwareClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VMwareClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareNodePool.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareNodePool.java index 59f71e687f..fe88dc460c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareNodePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/VMwareNodePool.java @@ -536,13 +536,20 @@ public VMwareNodePool(String name, VMwareNodePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public VMwareNodePool(String name, VMwareNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:gkeonprem/vMwareNodePool:VMwareNodePool", name, args == null ? VMwareNodePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:gkeonprem/vMwareNodePool:VMwareNodePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VMwareNodePool(String name, Output id, @Nullable VMwareNodePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:gkeonprem/vMwareNodePool:VMwareNodePool", name, state, makeResourceOptions(options, id)); } + private static VMwareNodePoolArgs makeArgs(VMwareNodePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VMwareNodePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java index c8e7b39ba3..452f9fb776 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java @@ -27,9 +27,9 @@ public final class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -43,9 +43,9 @@ public final class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -136,9 +136,9 @@ public Builder(BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -156,9 +156,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java index 7c3df2bbd7..fbb24957bd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java @@ -24,9 +24,9 @@ public final class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -40,9 +40,9 @@ public final class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -99,9 +99,9 @@ public Builder(BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -119,9 +119,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterProxyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterProxyArgs.java index 8fc4d144f4..6d6044a4d3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterProxyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalAdminClusterProxyArgs.java @@ -19,7 +19,7 @@ public final class BareMetalAdminClusterProxyArgs extends com.pulumi.resources.R /** * A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ @Import(name="noProxies") @@ -27,7 +27,7 @@ public final class BareMetalAdminClusterProxyArgs extends com.pulumi.resources.R /** * @return A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ public Optional>> noProxies() { @@ -36,9 +36,9 @@ public Optional>> noProxies() { /** * Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ @Import(name="uri", required=true) @@ -46,9 +46,9 @@ public Optional>> noProxies() { /** * @return Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ public Output uri() { @@ -82,7 +82,7 @@ public Builder(BareMetalAdminClusterProxyArgs defaults) { /** * @param noProxies A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. * * @return builder * @@ -94,7 +94,7 @@ public Builder noProxies(@Nullable Output> noProxies) { /** * @param noProxies A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. * * @return builder * @@ -105,7 +105,7 @@ public Builder noProxies(List noProxies) { /** * @param noProxies A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. * * @return builder * @@ -116,9 +116,9 @@ public Builder noProxies(String... noProxies) { /** * @param uri Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * * @return builder * @@ -130,9 +130,9 @@ public Builder uri(Output uri) { /** * @param uri Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java index b84360ed86..605fc0d09e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgs.java @@ -27,9 +27,9 @@ public final class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -43,9 +43,9 @@ public final class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -136,9 +136,9 @@ public Builder(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolCon * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -156,9 +156,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java index d08d4c0ceb..7003c4d134 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs.java @@ -24,9 +24,9 @@ public final class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -40,9 +40,9 @@ public final class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -99,9 +99,9 @@ public Builder(BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolCon * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -119,9 +119,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java index 14e25382d3..ea0b3a373a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java @@ -45,9 +45,9 @@ public Optional>> labels() { @@ -178,9 +178,9 @@ public Builder kubeletConfig(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancer * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -198,9 +198,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java index d51184a1ee..a0629b8f3d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java @@ -24,9 +24,9 @@ public final class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolCo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -40,9 +40,9 @@ public final class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolCo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -99,9 +99,9 @@ public Builder(BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfig * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -119,9 +119,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java index 0b6fd704c8..bde6293eb2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigArgs.java @@ -27,9 +27,9 @@ public final class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePool * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -43,9 +43,9 @@ public final class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePool * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -136,9 +136,9 @@ public Builder(BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConf * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -156,9 +156,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java index 0a06a77151..d7a857f632 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs.java @@ -24,9 +24,9 @@ public final class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePool * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -40,9 +40,9 @@ public final class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePool * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -99,9 +99,9 @@ public Builder(BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConf * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -119,9 +119,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterProxyArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterProxyArgs.java index f2c8fdc1f4..2a6e011b50 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterProxyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalClusterProxyArgs.java @@ -19,7 +19,7 @@ public final class BareMetalClusterProxyArgs extends com.pulumi.resources.Resour /** * A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ @Import(name="noProxies") @@ -27,7 +27,7 @@ public final class BareMetalClusterProxyArgs extends com.pulumi.resources.Resour /** * @return A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ public Optional>> noProxies() { @@ -36,9 +36,9 @@ public Optional>> noProxies() { /** * Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ @Import(name="uri", required=true) @@ -46,9 +46,9 @@ public Optional>> noProxies() { /** * @return Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ public Output uri() { @@ -82,7 +82,7 @@ public Builder(BareMetalClusterProxyArgs defaults) { /** * @param noProxies A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. * * @return builder * @@ -94,7 +94,7 @@ public Builder noProxies(@Nullable Output> noProxies) { /** * @param noProxies A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. * * @return builder * @@ -105,7 +105,7 @@ public Builder noProxies(List noProxies) { /** * @param noProxies A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. * * @return builder * @@ -116,9 +116,9 @@ public Builder noProxies(String... noProxies) { /** * @param uri Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * * @return builder * @@ -130,9 +130,9 @@ public Builder uri(Output uri) { /** * @param uri Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigArgs.java index 5d56465f0a..53eadad5aa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigArgs.java @@ -28,9 +28,9 @@ public final class BareMetalNodePoolNodePoolConfigArgs extends com.pulumi.resour * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -44,9 +44,9 @@ public final class BareMetalNodePoolNodePoolConfigArgs extends com.pulumi.resour * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -137,9 +137,9 @@ public Builder(BareMetalNodePoolNodePoolConfigArgs defaults) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -157,9 +157,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.java index 3b7ed75a6c..44fdd9522f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/inputs/BareMetalNodePoolNodePoolConfigNodeConfigArgs.java @@ -24,9 +24,9 @@ public final class BareMetalNodePoolNodePoolConfigNodeConfigArgs extends com.pul * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ @Import(name="labels") @@ -40,9 +40,9 @@ public final class BareMetalNodePoolNodePoolConfigNodeConfigArgs extends com.pul * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Optional>> labels() { @@ -99,9 +99,9 @@ public Builder(BareMetalNodePoolNodePoolConfigNodeConfigArgs defaults) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * @@ -119,9 +119,9 @@ public Builder labels(@Nullable Output> labels) { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java index 0c8e8913f6..4de6461aea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java @@ -23,9 +23,9 @@ public final class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -56,9 +56,9 @@ private BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfi * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java index 40df46ac58..fbb481b158 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java @@ -20,9 +20,9 @@ public final class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -42,9 +42,9 @@ private BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfi * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterProxy.java index 3cb52a656b..e4e27976ae 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalAdminClusterProxy.java @@ -14,15 +14,15 @@ public final class BareMetalAdminClusterProxy { /** * @return A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ private @Nullable List noProxies; /** * @return Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ private String uri; @@ -30,7 +30,7 @@ public final class BareMetalAdminClusterProxy { private BareMetalAdminClusterProxy() {} /** * @return A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ public List noProxies() { @@ -38,9 +38,9 @@ public List noProxies() { } /** * @return Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ public String uri() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java index 4d5f128e64..0d706c0b58 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig.java @@ -23,9 +23,9 @@ public final class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -56,9 +56,9 @@ private BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfig() { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java index 9b9e655830..2bcd4e3543 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfig.java @@ -20,9 +20,9 @@ public final class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -42,9 +42,9 @@ private BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNode * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java index 3795fedc4a..ae0f77220a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java @@ -30,9 +30,9 @@ public final class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolCo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -71,9 +71,9 @@ public Optional labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java index 11e433348f..2053bfaaeb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java @@ -20,9 +20,9 @@ public final class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolCo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -42,9 +42,9 @@ private BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoo * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java index eaaec438d3..c1a20b496a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfig.java @@ -23,9 +23,9 @@ public final class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePool * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -56,9 +56,9 @@ private BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodeP * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java index 3f637aeee8..386dab99d9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfig.java @@ -20,9 +20,9 @@ public final class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePool * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -42,9 +42,9 @@ private BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodeP * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterProxy.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterProxy.java index cbf706fb11..03086e3614 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterProxy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalClusterProxy.java @@ -14,15 +14,15 @@ public final class BareMetalClusterProxy { /** * @return A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ private @Nullable List noProxies; /** * @return Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ private String uri; @@ -30,7 +30,7 @@ public final class BareMetalClusterProxy { private BareMetalClusterProxy() {} /** * @return A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. * */ public List noProxies() { @@ -38,9 +38,9 @@ public List noProxies() { } /** * @return Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password{@literal @})domain these will be rejected by the server. + * of http://(username:password{@literal @})domain these will be rejected by the server. * */ public String uri() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfig.java index d07a7f1c75..061f0eecbe 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfig.java @@ -24,9 +24,9 @@ public final class BareMetalNodePoolNodePoolConfig { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -57,9 +57,9 @@ private BareMetalNodePoolNodePoolConfig() {} * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfigNodeConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfigNodeConfig.java index 37a57481fa..0025d4f0a8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfigNodeConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/gkeonprem/outputs/BareMetalNodePoolNodePoolConfigNodeConfig.java @@ -20,9 +20,9 @@ public final class BareMetalNodePoolNodePoolConfigNodeConfig { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ private @Nullable Map labels; @@ -42,9 +42,9 @@ private BareMetalNodePoolNodePoolConfigNodeConfig() {} * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html - * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html + * An object containing a list of "key": value pairs. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. * */ public Map labels() { diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStore.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStore.java index c7a4035a4d..6810a8efb3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStore.java @@ -342,13 +342,20 @@ public ConsentStore(String name, ConsentStoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsentStore(String name, ConsentStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/consentStore:ConsentStore", name, args == null ? ConsentStoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/consentStore:ConsentStore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsentStore(String name, Output id, @Nullable ConsentStoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/consentStore:ConsentStore", name, state, makeResourceOptions(options, id)); } + private static ConsentStoreArgs makeArgs(ConsentStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsentStoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamBinding.java index 9ad9e91df2..43e9a54a61 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamBinding.java @@ -439,13 +439,20 @@ public ConsentStoreIamBinding(String name, ConsentStoreIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsentStoreIamBinding(String name, ConsentStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/consentStoreIamBinding:ConsentStoreIamBinding", name, args == null ? ConsentStoreIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/consentStoreIamBinding:ConsentStoreIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsentStoreIamBinding(String name, Output id, @Nullable ConsentStoreIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/consentStoreIamBinding:ConsentStoreIamBinding", name, state, makeResourceOptions(options, id)); } + private static ConsentStoreIamBindingArgs makeArgs(ConsentStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsentStoreIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamMember.java index a372359b54..4cf65760b6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamMember.java @@ -438,13 +438,20 @@ public ConsentStoreIamMember(String name, ConsentStoreIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsentStoreIamMember(String name, ConsentStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/consentStoreIamMember:ConsentStoreIamMember", name, args == null ? ConsentStoreIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/consentStoreIamMember:ConsentStoreIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsentStoreIamMember(String name, Output id, @Nullable ConsentStoreIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/consentStoreIamMember:ConsentStoreIamMember", name, state, makeResourceOptions(options, id)); } + private static ConsentStoreIamMemberArgs makeArgs(ConsentStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsentStoreIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamPolicy.java index 52b24591af..ed411a2a31 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/ConsentStoreIamPolicy.java @@ -394,13 +394,20 @@ public ConsentStoreIamPolicy(String name, ConsentStoreIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsentStoreIamPolicy(String name, ConsentStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/consentStoreIamPolicy:ConsentStoreIamPolicy", name, args == null ? ConsentStoreIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/consentStoreIamPolicy:ConsentStoreIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsentStoreIamPolicy(String name, Output id, @Nullable ConsentStoreIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/consentStoreIamPolicy:ConsentStoreIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ConsentStoreIamPolicyArgs makeArgs(ConsentStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsentStoreIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java index c6f6e5919c..ca801bff84 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Dataset.java @@ -278,13 +278,20 @@ public Dataset(String name, DatasetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Dataset(String name, DatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/dataset:Dataset", name, args == null ? DatasetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/dataset:Dataset", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Dataset(String name, Output id, @Nullable DatasetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/dataset:Dataset", name, state, makeResourceOptions(options, id)); } + private static DatasetArgs makeArgs(DatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamBinding.java index 3addac037b..0d870d1afb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamBinding.java @@ -403,13 +403,20 @@ public DatasetIamBinding(String name, DatasetIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatasetIamBinding(String name, DatasetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/datasetIamBinding:DatasetIamBinding", name, args == null ? DatasetIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/datasetIamBinding:DatasetIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatasetIamBinding(String name, Output id, @Nullable DatasetIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/datasetIamBinding:DatasetIamBinding", name, state, makeResourceOptions(options, id)); } + private static DatasetIamBindingArgs makeArgs(DatasetIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamMember.java index 5dbe1e8cb9..cf855a05f7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamMember.java @@ -402,13 +402,20 @@ public DatasetIamMember(String name, DatasetIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatasetIamMember(String name, DatasetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/datasetIamMember:DatasetIamMember", name, args == null ? DatasetIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/datasetIamMember:DatasetIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatasetIamMember(String name, Output id, @Nullable DatasetIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/datasetIamMember:DatasetIamMember", name, state, makeResourceOptions(options, id)); } + private static DatasetIamMemberArgs makeArgs(DatasetIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamPolicy.java index 7e78536108..fb6672e7a7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DatasetIamPolicy.java @@ -364,13 +364,20 @@ public DatasetIamPolicy(String name, DatasetIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatasetIamPolicy(String name, DatasetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/datasetIamPolicy:DatasetIamPolicy", name, args == null ? DatasetIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/datasetIamPolicy:DatasetIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatasetIamPolicy(String name, Output id, @Nullable DatasetIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/datasetIamPolicy:DatasetIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DatasetIamPolicyArgs makeArgs(DatasetIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatasetIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java index f1fa7cde64..48d95ae062 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStore.java @@ -360,13 +360,20 @@ public DicomStore(String name, DicomStoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public DicomStore(String name, DicomStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/dicomStore:DicomStore", name, args == null ? DicomStoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/dicomStore:DicomStore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DicomStore(String name, Output id, @Nullable DicomStoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/dicomStore:DicomStore", name, state, makeResourceOptions(options, id)); } + private static DicomStoreArgs makeArgs(DicomStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DicomStoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamBinding.java index c54b64e82b..7946a56067 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamBinding.java @@ -403,13 +403,20 @@ public DicomStoreIamBinding(String name, DicomStoreIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DicomStoreIamBinding(String name, DicomStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/dicomStoreIamBinding:DicomStoreIamBinding", name, args == null ? DicomStoreIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/dicomStoreIamBinding:DicomStoreIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DicomStoreIamBinding(String name, Output id, @Nullable DicomStoreIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/dicomStoreIamBinding:DicomStoreIamBinding", name, state, makeResourceOptions(options, id)); } + private static DicomStoreIamBindingArgs makeArgs(DicomStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DicomStoreIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamMember.java index 7123c5d1ad..bd1af96761 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamMember.java @@ -402,13 +402,20 @@ public DicomStoreIamMember(String name, DicomStoreIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DicomStoreIamMember(String name, DicomStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/dicomStoreIamMember:DicomStoreIamMember", name, args == null ? DicomStoreIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/dicomStoreIamMember:DicomStoreIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DicomStoreIamMember(String name, Output id, @Nullable DicomStoreIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/dicomStoreIamMember:DicomStoreIamMember", name, state, makeResourceOptions(options, id)); } + private static DicomStoreIamMemberArgs makeArgs(DicomStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DicomStoreIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamPolicy.java index 521f762be9..0c767c43f4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/DicomStoreIamPolicy.java @@ -364,13 +364,20 @@ public DicomStoreIamPolicy(String name, DicomStoreIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DicomStoreIamPolicy(String name, DicomStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/dicomStoreIamPolicy:DicomStoreIamPolicy", name, args == null ? DicomStoreIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/dicomStoreIamPolicy:DicomStoreIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DicomStoreIamPolicy(String name, Output id, @Nullable DicomStoreIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/dicomStoreIamPolicy:DicomStoreIamPolicy", name, state, makeResourceOptions(options, id)); } + private static DicomStoreIamPolicyArgs makeArgs(DicomStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DicomStoreIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStore.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStore.java index 587af7f39f..6b45231dac 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStore.java @@ -627,13 +627,20 @@ public FhirStore(String name, FhirStoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public FhirStore(String name, FhirStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/fhirStore:FhirStore", name, args == null ? FhirStoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/fhirStore:FhirStore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FhirStore(String name, Output id, @Nullable FhirStoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/fhirStore:FhirStore", name, state, makeResourceOptions(options, id)); } + private static FhirStoreArgs makeArgs(FhirStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FhirStoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamBinding.java index 14920afebb..287999ea3b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamBinding.java @@ -403,13 +403,20 @@ public FhirStoreIamBinding(String name, FhirStoreIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public FhirStoreIamBinding(String name, FhirStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/fhirStoreIamBinding:FhirStoreIamBinding", name, args == null ? FhirStoreIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/fhirStoreIamBinding:FhirStoreIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FhirStoreIamBinding(String name, Output id, @Nullable FhirStoreIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/fhirStoreIamBinding:FhirStoreIamBinding", name, state, makeResourceOptions(options, id)); } + private static FhirStoreIamBindingArgs makeArgs(FhirStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FhirStoreIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamMember.java index 0b9517337c..7374cd21b7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamMember.java @@ -402,13 +402,20 @@ public FhirStoreIamMember(String name, FhirStoreIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public FhirStoreIamMember(String name, FhirStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/fhirStoreIamMember:FhirStoreIamMember", name, args == null ? FhirStoreIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/fhirStoreIamMember:FhirStoreIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FhirStoreIamMember(String name, Output id, @Nullable FhirStoreIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/fhirStoreIamMember:FhirStoreIamMember", name, state, makeResourceOptions(options, id)); } + private static FhirStoreIamMemberArgs makeArgs(FhirStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FhirStoreIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamPolicy.java index 19bb61e8f5..68df5d4f28 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/FhirStoreIamPolicy.java @@ -364,13 +364,20 @@ public FhirStoreIamPolicy(String name, FhirStoreIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public FhirStoreIamPolicy(String name, FhirStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/fhirStoreIamPolicy:FhirStoreIamPolicy", name, args == null ? FhirStoreIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/fhirStoreIamPolicy:FhirStoreIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FhirStoreIamPolicy(String name, Output id, @Nullable FhirStoreIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/fhirStoreIamPolicy:FhirStoreIamPolicy", name, state, makeResourceOptions(options, id)); } + private static FhirStoreIamPolicyArgs makeArgs(FhirStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FhirStoreIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7Store.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7Store.java index b5c686d713..a667c4ec0d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7Store.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7Store.java @@ -496,13 +496,20 @@ public Hl7Store(String name, Hl7StoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public Hl7Store(String name, Hl7StoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/hl7Store:Hl7Store", name, args == null ? Hl7StoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/hl7Store:Hl7Store", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Hl7Store(String name, Output id, @Nullable Hl7StoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/hl7Store:Hl7Store", name, state, makeResourceOptions(options, id)); } + private static Hl7StoreArgs makeArgs(Hl7StoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? Hl7StoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamBinding.java index 4f8b9dfbf1..ca75b289c9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamBinding.java @@ -403,13 +403,20 @@ public Hl7StoreIamBinding(String name, Hl7StoreIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public Hl7StoreIamBinding(String name, Hl7StoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/hl7StoreIamBinding:Hl7StoreIamBinding", name, args == null ? Hl7StoreIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/hl7StoreIamBinding:Hl7StoreIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Hl7StoreIamBinding(String name, Output id, @Nullable Hl7StoreIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/hl7StoreIamBinding:Hl7StoreIamBinding", name, state, makeResourceOptions(options, id)); } + private static Hl7StoreIamBindingArgs makeArgs(Hl7StoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? Hl7StoreIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamMember.java index 53312014f4..12b585d403 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamMember.java @@ -402,13 +402,20 @@ public Hl7StoreIamMember(String name, Hl7StoreIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public Hl7StoreIamMember(String name, Hl7StoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/hl7StoreIamMember:Hl7StoreIamMember", name, args == null ? Hl7StoreIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/hl7StoreIamMember:Hl7StoreIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Hl7StoreIamMember(String name, Output id, @Nullable Hl7StoreIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/hl7StoreIamMember:Hl7StoreIamMember", name, state, makeResourceOptions(options, id)); } + private static Hl7StoreIamMemberArgs makeArgs(Hl7StoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? Hl7StoreIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamPolicy.java index 25ae86a3eb..0988470c34 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/healthcare/Hl7StoreIamPolicy.java @@ -364,13 +364,20 @@ public Hl7StoreIamPolicy(String name, Hl7StoreIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public Hl7StoreIamPolicy(String name, Hl7StoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:healthcare/hl7StoreIamPolicy:Hl7StoreIamPolicy", name, args == null ? Hl7StoreIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:healthcare/hl7StoreIamPolicy:Hl7StoreIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Hl7StoreIamPolicy(String name, Output id, @Nullable Hl7StoreIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:healthcare/hl7StoreIamPolicy:Hl7StoreIamPolicy", name, state, makeResourceOptions(options, id)); } + private static Hl7StoreIamPolicyArgs makeArgs(Hl7StoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? Hl7StoreIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/AccessBoundaryPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/AccessBoundaryPolicy.java index 546b6eaf34..4432cf8249 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iam/AccessBoundaryPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/AccessBoundaryPolicy.java @@ -227,13 +227,20 @@ public AccessBoundaryPolicy(String name, AccessBoundaryPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AccessBoundaryPolicy(String name, AccessBoundaryPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iam/accessBoundaryPolicy:AccessBoundaryPolicy", name, args == null ? AccessBoundaryPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iam/accessBoundaryPolicy:AccessBoundaryPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AccessBoundaryPolicy(String name, Output id, @Nullable AccessBoundaryPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iam/accessBoundaryPolicy:AccessBoundaryPolicy", name, state, makeResourceOptions(options, id)); } + private static AccessBoundaryPolicyArgs makeArgs(AccessBoundaryPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccessBoundaryPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/DenyPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/DenyPolicy.java index a7e3a9ad2e..6a3c4e4d64 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iam/DenyPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/DenyPolicy.java @@ -218,13 +218,20 @@ public DenyPolicy(String name, DenyPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DenyPolicy(String name, DenyPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iam/denyPolicy:DenyPolicy", name, args == null ? DenyPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iam/denyPolicy:DenyPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DenyPolicy(String name, Output id, @Nullable DenyPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iam/denyPolicy:DenyPolicy", name, state, makeResourceOptions(options, id)); } + private static DenyPolicyArgs makeArgs(DenyPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DenyPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePool.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePool.java index 5b79bf74bf..6222ebbe1f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePool.java @@ -341,13 +341,20 @@ public WorkforcePool(String name, WorkforcePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkforcePool(String name, WorkforcePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iam/workforcePool:WorkforcePool", name, args == null ? WorkforcePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iam/workforcePool:WorkforcePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkforcePool(String name, Output id, @Nullable WorkforcePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iam/workforcePool:WorkforcePool", name, state, makeResourceOptions(options, id)); } + private static WorkforcePoolArgs makeArgs(WorkforcePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkforcePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePoolProvider.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePoolProvider.java index fd8f38d2e2..c553c15fc1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePoolProvider.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkforcePoolProvider.java @@ -771,13 +771,20 @@ public WorkforcePoolProvider(String name, WorkforcePoolProviderArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkforcePoolProvider(String name, WorkforcePoolProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iam/workforcePoolProvider:WorkforcePoolProvider", name, args == null ? WorkforcePoolProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iam/workforcePoolProvider:WorkforcePoolProvider", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkforcePoolProvider(String name, Output id, @Nullable WorkforcePoolProviderState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iam/workforcePoolProvider:WorkforcePoolProvider", name, state, makeResourceOptions(options, id)); } + private static WorkforcePoolProviderArgs makeArgs(WorkforcePoolProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkforcePoolProviderArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPool.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPool.java index c7c2eff2cc..b34126ca36 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPool.java @@ -279,13 +279,20 @@ public WorkloadIdentityPool(String name, WorkloadIdentityPoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkloadIdentityPool(String name, WorkloadIdentityPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iam/workloadIdentityPool:WorkloadIdentityPool", name, args == null ? WorkloadIdentityPoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iam/workloadIdentityPool:WorkloadIdentityPool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkloadIdentityPool(String name, Output id, @Nullable WorkloadIdentityPoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iam/workloadIdentityPool:WorkloadIdentityPool", name, state, makeResourceOptions(options, id)); } + private static WorkloadIdentityPoolArgs makeArgs(WorkloadIdentityPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkloadIdentityPoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPoolProvider.java b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPoolProvider.java index 361a5902b6..e644c42ec0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPoolProvider.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iam/WorkloadIdentityPoolProvider.java @@ -756,13 +756,20 @@ public WorkloadIdentityPoolProvider(String name, WorkloadIdentityPoolProviderArg * @param options A bag of options that control this resource's behavior. */ public WorkloadIdentityPoolProvider(String name, WorkloadIdentityPoolProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iam/workloadIdentityPoolProvider:WorkloadIdentityPoolProvider", name, args == null ? WorkloadIdentityPoolProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iam/workloadIdentityPoolProvider:WorkloadIdentityPoolProvider", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkloadIdentityPoolProvider(String name, Output id, @Nullable WorkloadIdentityPoolProviderState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iam/workloadIdentityPoolProvider:WorkloadIdentityPoolProvider", name, state, makeResourceOptions(options, id)); } + private static WorkloadIdentityPoolProviderArgs makeArgs(WorkloadIdentityPoolProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkloadIdentityPoolProviderArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamBinding.java index e479953779..6aa7a64840 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamBinding.java @@ -753,13 +753,20 @@ public AppEngineServiceIamBinding(String name, AppEngineServiceIamBindingArgs ar * @param options A bag of options that control this resource's behavior. */ public AppEngineServiceIamBinding(String name, AppEngineServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/appEngineServiceIamBinding:AppEngineServiceIamBinding", name, args == null ? AppEngineServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/appEngineServiceIamBinding:AppEngineServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppEngineServiceIamBinding(String name, Output id, @Nullable AppEngineServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/appEngineServiceIamBinding:AppEngineServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static AppEngineServiceIamBindingArgs makeArgs(AppEngineServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppEngineServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamMember.java index 18f93876c7..c254f8fe85 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamMember.java @@ -752,13 +752,20 @@ public AppEngineServiceIamMember(String name, AppEngineServiceIamMemberArgs args * @param options A bag of options that control this resource's behavior. */ public AppEngineServiceIamMember(String name, AppEngineServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/appEngineServiceIamMember:AppEngineServiceIamMember", name, args == null ? AppEngineServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/appEngineServiceIamMember:AppEngineServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppEngineServiceIamMember(String name, Output id, @Nullable AppEngineServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/appEngineServiceIamMember:AppEngineServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static AppEngineServiceIamMemberArgs makeArgs(AppEngineServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppEngineServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamPolicy.java index 8ffc3715fa..ba0b479022 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineServiceIamPolicy.java @@ -698,13 +698,20 @@ public AppEngineServiceIamPolicy(String name, AppEngineServiceIamPolicyArgs args * @param options A bag of options that control this resource's behavior. */ public AppEngineServiceIamPolicy(String name, AppEngineServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/appEngineServiceIamPolicy:AppEngineServiceIamPolicy", name, args == null ? AppEngineServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/appEngineServiceIamPolicy:AppEngineServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppEngineServiceIamPolicy(String name, Output id, @Nullable AppEngineServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/appEngineServiceIamPolicy:AppEngineServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AppEngineServiceIamPolicyArgs makeArgs(AppEngineServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppEngineServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamBinding.java index c52dabff56..de59644fc5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamBinding.java @@ -779,13 +779,20 @@ public AppEngineVersionIamBinding(String name, AppEngineVersionIamBindingArgs ar * @param options A bag of options that control this resource's behavior. */ public AppEngineVersionIamBinding(String name, AppEngineVersionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/appEngineVersionIamBinding:AppEngineVersionIamBinding", name, args == null ? AppEngineVersionIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/appEngineVersionIamBinding:AppEngineVersionIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppEngineVersionIamBinding(String name, Output id, @Nullable AppEngineVersionIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/appEngineVersionIamBinding:AppEngineVersionIamBinding", name, state, makeResourceOptions(options, id)); } + private static AppEngineVersionIamBindingArgs makeArgs(AppEngineVersionIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppEngineVersionIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamMember.java index 2acec7ffba..1f6dd4b105 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamMember.java @@ -778,13 +778,20 @@ public AppEngineVersionIamMember(String name, AppEngineVersionIamMemberArgs args * @param options A bag of options that control this resource's behavior. */ public AppEngineVersionIamMember(String name, AppEngineVersionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/appEngineVersionIamMember:AppEngineVersionIamMember", name, args == null ? AppEngineVersionIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/appEngineVersionIamMember:AppEngineVersionIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppEngineVersionIamMember(String name, Output id, @Nullable AppEngineVersionIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/appEngineVersionIamMember:AppEngineVersionIamMember", name, state, makeResourceOptions(options, id)); } + private static AppEngineVersionIamMemberArgs makeArgs(AppEngineVersionIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppEngineVersionIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamPolicy.java index e694d5a81b..9e60063c77 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/AppEngineVersionIamPolicy.java @@ -724,13 +724,20 @@ public AppEngineVersionIamPolicy(String name, AppEngineVersionIamPolicyArgs args * @param options A bag of options that control this resource's behavior. */ public AppEngineVersionIamPolicy(String name, AppEngineVersionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/appEngineVersionIamPolicy:AppEngineVersionIamPolicy", name, args == null ? AppEngineVersionIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/appEngineVersionIamPolicy:AppEngineVersionIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AppEngineVersionIamPolicy(String name, Output id, @Nullable AppEngineVersionIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/appEngineVersionIamPolicy:AppEngineVersionIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AppEngineVersionIamPolicyArgs makeArgs(AppEngineVersionIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AppEngineVersionIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/Brand.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/Brand.java index 3202d56c96..584c78c9b9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/Brand.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/Brand.java @@ -209,13 +209,20 @@ public Brand(String name, BrandArgs args) { * @param options A bag of options that control this resource's behavior. */ public Brand(String name, BrandArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/brand:Brand", name, args == null ? BrandArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/brand:Brand", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Brand(String name, Output id, @Nullable BrandState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/brand:Brand", name, state, makeResourceOptions(options, id)); } + private static BrandArgs makeArgs(BrandArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BrandArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/Client.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/Client.java index 3a7ace7d52..c543c2a8e7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/Client.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/Client.java @@ -132,14 +132,14 @@ public Output brand() { return this.brand; } /** - * The OAuth2 ID of the client. + * Output only. Unique identifier of the OAuth client. * */ @Export(name="clientId", refs={String.class}, tree="[0]") private Output clientId; /** - * @return The OAuth2 ID of the client. + * @return Output only. Unique identifier of the OAuth client. * */ public Output clientId() { @@ -198,13 +198,20 @@ public Client(String name, ClientArgs args) { * @param options A bag of options that control this resource's behavior. */ public Client(String name, ClientArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/client:Client", name, args == null ? ClientArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/client:Client", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Client(String name, Output id, @Nullable ClientState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/client:Client", name, state, makeResourceOptions(options, id)); } + private static ClientArgs makeArgs(ClientArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClientArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroup.java index d7627a943a..127c41e391 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroup.java @@ -223,13 +223,20 @@ public TunnelDestGroup(String name, TunnelDestGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public TunnelDestGroup(String name, TunnelDestGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelDestGroup:TunnelDestGroup", name, args == null ? TunnelDestGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelDestGroup:TunnelDestGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelDestGroup(String name, Output id, @Nullable TunnelDestGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelDestGroup:TunnelDestGroup", name, state, makeResourceOptions(options, id)); } + private static TunnelDestGroupArgs makeArgs(TunnelDestGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelDestGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamBinding.java index 82abdb7cc0..a7ec54fbd1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamBinding.java @@ -753,13 +753,20 @@ public TunnelDestGroupIamBinding(String name, TunnelDestGroupIamBindingArgs args * @param options A bag of options that control this resource's behavior. */ public TunnelDestGroupIamBinding(String name, TunnelDestGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelDestGroupIamBinding:TunnelDestGroupIamBinding", name, args == null ? TunnelDestGroupIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelDestGroupIamBinding:TunnelDestGroupIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelDestGroupIamBinding(String name, Output id, @Nullable TunnelDestGroupIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelDestGroupIamBinding:TunnelDestGroupIamBinding", name, state, makeResourceOptions(options, id)); } + private static TunnelDestGroupIamBindingArgs makeArgs(TunnelDestGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelDestGroupIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamMember.java index 535621448b..e727617ba2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamMember.java @@ -752,13 +752,20 @@ public TunnelDestGroupIamMember(String name, TunnelDestGroupIamMemberArgs args) * @param options A bag of options that control this resource's behavior. */ public TunnelDestGroupIamMember(String name, TunnelDestGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelDestGroupIamMember:TunnelDestGroupIamMember", name, args == null ? TunnelDestGroupIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelDestGroupIamMember:TunnelDestGroupIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelDestGroupIamMember(String name, Output id, @Nullable TunnelDestGroupIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelDestGroupIamMember:TunnelDestGroupIamMember", name, state, makeResourceOptions(options, id)); } + private static TunnelDestGroupIamMemberArgs makeArgs(TunnelDestGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelDestGroupIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamPolicy.java index a3c02e3fbb..c5622f7ae3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelDestGroupIamPolicy.java @@ -698,13 +698,20 @@ public TunnelDestGroupIamPolicy(String name, TunnelDestGroupIamPolicyArgs args) * @param options A bag of options that control this resource's behavior. */ public TunnelDestGroupIamPolicy(String name, TunnelDestGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelDestGroupIamPolicy:TunnelDestGroupIamPolicy", name, args == null ? TunnelDestGroupIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelDestGroupIamPolicy:TunnelDestGroupIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelDestGroupIamPolicy(String name, Output id, @Nullable TunnelDestGroupIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelDestGroupIamPolicy:TunnelDestGroupIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TunnelDestGroupIamPolicyArgs makeArgs(TunnelDestGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelDestGroupIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamBinding.java index ed2e04b33b..7069f31bce 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamBinding.java @@ -697,13 +697,20 @@ public TunnelIamBinding(String name, TunnelIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TunnelIamBinding(String name, TunnelIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelIamBinding:TunnelIamBinding", name, args == null ? TunnelIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelIamBinding:TunnelIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelIamBinding(String name, Output id, @Nullable TunnelIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelIamBinding:TunnelIamBinding", name, state, makeResourceOptions(options, id)); } + private static TunnelIamBindingArgs makeArgs(TunnelIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamMember.java index 359b1432cf..22b0e62751 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamMember.java @@ -696,13 +696,20 @@ public TunnelIamMember(String name, TunnelIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TunnelIamMember(String name, TunnelIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelIamMember:TunnelIamMember", name, args == null ? TunnelIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelIamMember:TunnelIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelIamMember(String name, Output id, @Nullable TunnelIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelIamMember:TunnelIamMember", name, state, makeResourceOptions(options, id)); } + private static TunnelIamMemberArgs makeArgs(TunnelIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamPolicy.java index 8697be4612..15f834c53e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelIamPolicy.java @@ -642,13 +642,20 @@ public TunnelIamPolicy(String name, TunnelIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TunnelIamPolicy(String name, TunnelIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelIamPolicy:TunnelIamPolicy", name, args == null ? TunnelIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelIamPolicy:TunnelIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelIamPolicy(String name, Output id, @Nullable TunnelIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelIamPolicy:TunnelIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TunnelIamPolicyArgs makeArgs(TunnelIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMBinding.java index b316dd4ea3..f074cbb172 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMBinding.java @@ -747,13 +747,20 @@ public TunnelInstanceIAMBinding(String name, TunnelInstanceIAMBindingArgs args) * @param options A bag of options that control this resource's behavior. */ public TunnelInstanceIAMBinding(String name, TunnelInstanceIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelInstanceIAMBinding:TunnelInstanceIAMBinding", name, args == null ? TunnelInstanceIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelInstanceIAMBinding:TunnelInstanceIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelInstanceIAMBinding(String name, Output id, @Nullable TunnelInstanceIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelInstanceIAMBinding:TunnelInstanceIAMBinding", name, state, makeResourceOptions(options, id)); } + private static TunnelInstanceIAMBindingArgs makeArgs(TunnelInstanceIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelInstanceIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMMember.java index ed00f84f5d..b1aaccfdb3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMMember.java @@ -746,13 +746,20 @@ public TunnelInstanceIAMMember(String name, TunnelInstanceIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TunnelInstanceIAMMember(String name, TunnelInstanceIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelInstanceIAMMember:TunnelInstanceIAMMember", name, args == null ? TunnelInstanceIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelInstanceIAMMember:TunnelInstanceIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelInstanceIAMMember(String name, Output id, @Nullable TunnelInstanceIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelInstanceIAMMember:TunnelInstanceIAMMember", name, state, makeResourceOptions(options, id)); } + private static TunnelInstanceIAMMemberArgs makeArgs(TunnelInstanceIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelInstanceIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMPolicy.java index 9a80cff986..d9d8c67571 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/TunnelInstanceIAMPolicy.java @@ -692,13 +692,20 @@ public TunnelInstanceIAMPolicy(String name, TunnelInstanceIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TunnelInstanceIAMPolicy(String name, TunnelInstanceIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/tunnelInstanceIAMPolicy:TunnelInstanceIAMPolicy", name, args == null ? TunnelInstanceIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/tunnelInstanceIAMPolicy:TunnelInstanceIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TunnelInstanceIAMPolicy(String name, Output id, @Nullable TunnelInstanceIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/tunnelInstanceIAMPolicy:TunnelInstanceIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static TunnelInstanceIAMPolicyArgs makeArgs(TunnelInstanceIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TunnelInstanceIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamBinding.java index ca42c3f6a2..07f925796a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamBinding.java @@ -725,13 +725,20 @@ public WebBackendServiceIamBinding(String name, WebBackendServiceIamBindingArgs * @param options A bag of options that control this resource's behavior. */ public WebBackendServiceIamBinding(String name, WebBackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webBackendServiceIamBinding:WebBackendServiceIamBinding", name, args == null ? WebBackendServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webBackendServiceIamBinding:WebBackendServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebBackendServiceIamBinding(String name, Output id, @Nullable WebBackendServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webBackendServiceIamBinding:WebBackendServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static WebBackendServiceIamBindingArgs makeArgs(WebBackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebBackendServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamMember.java index 142d3af1b5..071f4f19f8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamMember.java @@ -724,13 +724,20 @@ public WebBackendServiceIamMember(String name, WebBackendServiceIamMemberArgs ar * @param options A bag of options that control this resource's behavior. */ public WebBackendServiceIamMember(String name, WebBackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webBackendServiceIamMember:WebBackendServiceIamMember", name, args == null ? WebBackendServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webBackendServiceIamMember:WebBackendServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebBackendServiceIamMember(String name, Output id, @Nullable WebBackendServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webBackendServiceIamMember:WebBackendServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static WebBackendServiceIamMemberArgs makeArgs(WebBackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebBackendServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamPolicy.java index 734b0bd088..981d1aa295 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebBackendServiceIamPolicy.java @@ -670,13 +670,20 @@ public WebBackendServiceIamPolicy(String name, WebBackendServiceIamPolicyArgs ar * @param options A bag of options that control this resource's behavior. */ public WebBackendServiceIamPolicy(String name, WebBackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webBackendServiceIamPolicy:WebBackendServiceIamPolicy", name, args == null ? WebBackendServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webBackendServiceIamPolicy:WebBackendServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebBackendServiceIamPolicy(String name, Output id, @Nullable WebBackendServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webBackendServiceIamPolicy:WebBackendServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static WebBackendServiceIamPolicyArgs makeArgs(WebBackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebBackendServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamBinding.java index 9e6e8eae82..41ecb3a05f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamBinding.java @@ -697,13 +697,20 @@ public WebIamBinding(String name, WebIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public WebIamBinding(String name, WebIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webIamBinding:WebIamBinding", name, args == null ? WebIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webIamBinding:WebIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebIamBinding(String name, Output id, @Nullable WebIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webIamBinding:WebIamBinding", name, state, makeResourceOptions(options, id)); } + private static WebIamBindingArgs makeArgs(WebIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamMember.java index 1e2da158ef..f7e02d78e2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamMember.java @@ -696,13 +696,20 @@ public WebIamMember(String name, WebIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public WebIamMember(String name, WebIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webIamMember:WebIamMember", name, args == null ? WebIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webIamMember:WebIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebIamMember(String name, Output id, @Nullable WebIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webIamMember:WebIamMember", name, state, makeResourceOptions(options, id)); } + private static WebIamMemberArgs makeArgs(WebIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamPolicy.java index 755fe57b0b..dca66567db 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebIamPolicy.java @@ -642,13 +642,20 @@ public WebIamPolicy(String name, WebIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public WebIamPolicy(String name, WebIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webIamPolicy:WebIamPolicy", name, args == null ? WebIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webIamPolicy:WebIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebIamPolicy(String name, Output id, @Nullable WebIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webIamPolicy:WebIamPolicy", name, state, makeResourceOptions(options, id)); } + private static WebIamPolicyArgs makeArgs(WebIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamBinding.java index 2053b182a3..f613192263 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamBinding.java @@ -745,13 +745,20 @@ public WebRegionBackendServiceIamBinding(String name, WebRegionBackendServiceIam * @param options A bag of options that control this resource's behavior. */ public WebRegionBackendServiceIamBinding(String name, WebRegionBackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webRegionBackendServiceIamBinding:WebRegionBackendServiceIamBinding", name, args == null ? WebRegionBackendServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webRegionBackendServiceIamBinding:WebRegionBackendServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebRegionBackendServiceIamBinding(String name, Output id, @Nullable WebRegionBackendServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webRegionBackendServiceIamBinding:WebRegionBackendServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static WebRegionBackendServiceIamBindingArgs makeArgs(WebRegionBackendServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebRegionBackendServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamMember.java index 0060a1f0b1..6d58068621 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamMember.java @@ -744,13 +744,20 @@ public WebRegionBackendServiceIamMember(String name, WebRegionBackendServiceIamM * @param options A bag of options that control this resource's behavior. */ public WebRegionBackendServiceIamMember(String name, WebRegionBackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webRegionBackendServiceIamMember:WebRegionBackendServiceIamMember", name, args == null ? WebRegionBackendServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webRegionBackendServiceIamMember:WebRegionBackendServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebRegionBackendServiceIamMember(String name, Output id, @Nullable WebRegionBackendServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webRegionBackendServiceIamMember:WebRegionBackendServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static WebRegionBackendServiceIamMemberArgs makeArgs(WebRegionBackendServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebRegionBackendServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamPolicy.java index 046460561c..b40f695ed6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebRegionBackendServiceIamPolicy.java @@ -690,13 +690,20 @@ public WebRegionBackendServiceIamPolicy(String name, WebRegionBackendServiceIamP * @param options A bag of options that control this resource's behavior. */ public WebRegionBackendServiceIamPolicy(String name, WebRegionBackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webRegionBackendServiceIamPolicy:WebRegionBackendServiceIamPolicy", name, args == null ? WebRegionBackendServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webRegionBackendServiceIamPolicy:WebRegionBackendServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebRegionBackendServiceIamPolicy(String name, Output id, @Nullable WebRegionBackendServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webRegionBackendServiceIamPolicy:WebRegionBackendServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static WebRegionBackendServiceIamPolicyArgs makeArgs(WebRegionBackendServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebRegionBackendServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamBinding.java index 2ddb1569c5..d14c10af4f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamBinding.java @@ -725,13 +725,20 @@ public WebTypeAppEngingIamBinding(String name, WebTypeAppEngingIamBindingArgs ar * @param options A bag of options that control this resource's behavior. */ public WebTypeAppEngingIamBinding(String name, WebTypeAppEngingIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webTypeAppEngingIamBinding:WebTypeAppEngingIamBinding", name, args == null ? WebTypeAppEngingIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webTypeAppEngingIamBinding:WebTypeAppEngingIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebTypeAppEngingIamBinding(String name, Output id, @Nullable WebTypeAppEngingIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webTypeAppEngingIamBinding:WebTypeAppEngingIamBinding", name, state, makeResourceOptions(options, id)); } + private static WebTypeAppEngingIamBindingArgs makeArgs(WebTypeAppEngingIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebTypeAppEngingIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamMember.java index 6c2ca7ee04..4c1ef70ce3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamMember.java @@ -724,13 +724,20 @@ public WebTypeAppEngingIamMember(String name, WebTypeAppEngingIamMemberArgs args * @param options A bag of options that control this resource's behavior. */ public WebTypeAppEngingIamMember(String name, WebTypeAppEngingIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webTypeAppEngingIamMember:WebTypeAppEngingIamMember", name, args == null ? WebTypeAppEngingIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webTypeAppEngingIamMember:WebTypeAppEngingIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebTypeAppEngingIamMember(String name, Output id, @Nullable WebTypeAppEngingIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webTypeAppEngingIamMember:WebTypeAppEngingIamMember", name, state, makeResourceOptions(options, id)); } + private static WebTypeAppEngingIamMemberArgs makeArgs(WebTypeAppEngingIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebTypeAppEngingIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamPolicy.java index f31e9a6d58..a7a5bd73c1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeAppEngingIamPolicy.java @@ -670,13 +670,20 @@ public WebTypeAppEngingIamPolicy(String name, WebTypeAppEngingIamPolicyArgs args * @param options A bag of options that control this resource's behavior. */ public WebTypeAppEngingIamPolicy(String name, WebTypeAppEngingIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webTypeAppEngingIamPolicy:WebTypeAppEngingIamPolicy", name, args == null ? WebTypeAppEngingIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webTypeAppEngingIamPolicy:WebTypeAppEngingIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebTypeAppEngingIamPolicy(String name, Output id, @Nullable WebTypeAppEngingIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webTypeAppEngingIamPolicy:WebTypeAppEngingIamPolicy", name, state, makeResourceOptions(options, id)); } + private static WebTypeAppEngingIamPolicyArgs makeArgs(WebTypeAppEngingIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebTypeAppEngingIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamBinding.java index df84043e0b..1d01979e88 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamBinding.java @@ -697,13 +697,20 @@ public WebTypeComputeIamBinding(String name, WebTypeComputeIamBindingArgs args) * @param options A bag of options that control this resource's behavior. */ public WebTypeComputeIamBinding(String name, WebTypeComputeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webTypeComputeIamBinding:WebTypeComputeIamBinding", name, args == null ? WebTypeComputeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webTypeComputeIamBinding:WebTypeComputeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebTypeComputeIamBinding(String name, Output id, @Nullable WebTypeComputeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webTypeComputeIamBinding:WebTypeComputeIamBinding", name, state, makeResourceOptions(options, id)); } + private static WebTypeComputeIamBindingArgs makeArgs(WebTypeComputeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebTypeComputeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamMember.java index 9b93a4b289..4286f39f8c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamMember.java @@ -696,13 +696,20 @@ public WebTypeComputeIamMember(String name, WebTypeComputeIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public WebTypeComputeIamMember(String name, WebTypeComputeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webTypeComputeIamMember:WebTypeComputeIamMember", name, args == null ? WebTypeComputeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webTypeComputeIamMember:WebTypeComputeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebTypeComputeIamMember(String name, Output id, @Nullable WebTypeComputeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webTypeComputeIamMember:WebTypeComputeIamMember", name, state, makeResourceOptions(options, id)); } + private static WebTypeComputeIamMemberArgs makeArgs(WebTypeComputeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebTypeComputeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamPolicy.java index 0a080646b2..ca6537e43d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/WebTypeComputeIamPolicy.java @@ -642,13 +642,20 @@ public WebTypeComputeIamPolicy(String name, WebTypeComputeIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public WebTypeComputeIamPolicy(String name, WebTypeComputeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:iap/webTypeComputeIamPolicy:WebTypeComputeIamPolicy", name, args == null ? WebTypeComputeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:iap/webTypeComputeIamPolicy:WebTypeComputeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WebTypeComputeIamPolicy(String name, Output id, @Nullable WebTypeComputeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:iap/webTypeComputeIamPolicy:WebTypeComputeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static WebTypeComputeIamPolicyArgs makeArgs(WebTypeComputeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WebTypeComputeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/iap/inputs/ClientState.java b/sdk/java/src/main/java/com/pulumi/gcp/iap/inputs/ClientState.java index 80c387ac31..48ed9f07b8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/iap/inputs/ClientState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/iap/inputs/ClientState.java @@ -39,14 +39,14 @@ public Optional> brand() { } /** - * The OAuth2 ID of the client. + * Output only. Unique identifier of the OAuth client. * */ @Import(name="clientId") private @Nullable Output clientId; /** - * @return The OAuth2 ID of the client. + * @return Output only. Unique identifier of the OAuth client. * */ public Optional> clientId() { @@ -142,7 +142,7 @@ public Builder brand(String brand) { } /** - * @param clientId The OAuth2 ID of the client. + * @param clientId Output only. Unique identifier of the OAuth client. * * @return builder * @@ -153,7 +153,7 @@ public Builder clientId(@Nullable Output clientId) { } /** - * @param clientId The OAuth2 ID of the client. + * @param clientId Output only. Unique identifier of the OAuth client. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Config.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Config.java index 332690b9f6..40e1c093a1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Config.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Config.java @@ -383,13 +383,20 @@ public Config(String name, @Nullable ConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public Config(String name, @Nullable ConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/config:Config", name, args == null ? ConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/config:Config", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Config(String name, Output id, @Nullable ConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/config:Config", name, state, makeResourceOptions(options, id)); } + private static ConfigArgs makeArgs(@Nullable ConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/DefaultSupportedIdpConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/DefaultSupportedIdpConfig.java index c7f01759d9..4e527a39b1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/DefaultSupportedIdpConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/DefaultSupportedIdpConfig.java @@ -222,13 +222,20 @@ public DefaultSupportedIdpConfig(String name, DefaultSupportedIdpConfigArgs args * @param options A bag of options that control this resource's behavior. */ public DefaultSupportedIdpConfig(String name, DefaultSupportedIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/defaultSupportedIdpConfig:DefaultSupportedIdpConfig", name, args == null ? DefaultSupportedIdpConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/defaultSupportedIdpConfig:DefaultSupportedIdpConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DefaultSupportedIdpConfig(String name, Output id, @Nullable DefaultSupportedIdpConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/defaultSupportedIdpConfig:DefaultSupportedIdpConfig", name, state, makeResourceOptions(options, id)); } + private static DefaultSupportedIdpConfigArgs makeArgs(DefaultSupportedIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DefaultSupportedIdpConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/InboundSamlConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/InboundSamlConfig.java index 904aefd807..6960355608 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/InboundSamlConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/InboundSamlConfig.java @@ -214,13 +214,20 @@ public InboundSamlConfig(String name, InboundSamlConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public InboundSamlConfig(String name, InboundSamlConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/inboundSamlConfig:InboundSamlConfig", name, args == null ? InboundSamlConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/inboundSamlConfig:InboundSamlConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InboundSamlConfig(String name, Output id, @Nullable InboundSamlConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/inboundSamlConfig:InboundSamlConfig", name, state, makeResourceOptions(options, id)); } + private static InboundSamlConfigArgs makeArgs(InboundSamlConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InboundSamlConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/OauthIdpConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/OauthIdpConfig.java index f51bdb1a36..45c8d28f10 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/OauthIdpConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/OauthIdpConfig.java @@ -218,13 +218,20 @@ public OauthIdpConfig(String name, OauthIdpConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public OauthIdpConfig(String name, OauthIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/oauthIdpConfig:OauthIdpConfig", name, args == null ? OauthIdpConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/oauthIdpConfig:OauthIdpConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OauthIdpConfig(String name, Output id, @Nullable OauthIdpConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/oauthIdpConfig:OauthIdpConfig", name, state, makeResourceOptions(options, id)); } + private static OauthIdpConfigArgs makeArgs(OauthIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OauthIdpConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/ProjectDefaultConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/ProjectDefaultConfig.java index 3fcd932111..b3f8b1feda 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/ProjectDefaultConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/ProjectDefaultConfig.java @@ -176,13 +176,20 @@ public ProjectDefaultConfig(String name, @Nullable ProjectDefaultConfigArgs args * @param options A bag of options that control this resource's behavior. */ public ProjectDefaultConfig(String name, @Nullable ProjectDefaultConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/projectDefaultConfig:ProjectDefaultConfig", name, args == null ? ProjectDefaultConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/projectDefaultConfig:ProjectDefaultConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectDefaultConfig(String name, Output id, @Nullable ProjectDefaultConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/projectDefaultConfig:ProjectDefaultConfig", name, state, makeResourceOptions(options, id)); } + private static ProjectDefaultConfigArgs makeArgs(@Nullable ProjectDefaultConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectDefaultConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Tenant.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Tenant.java index cd96bc0fd2..df6cb58682 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Tenant.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/Tenant.java @@ -207,13 +207,20 @@ public Tenant(String name, TenantArgs args) { * @param options A bag of options that control this resource's behavior. */ public Tenant(String name, TenantArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/tenant:Tenant", name, args == null ? TenantArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/tenant:Tenant", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Tenant(String name, Output id, @Nullable TenantState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/tenant:Tenant", name, state, makeResourceOptions(options, id)); } + private static TenantArgs makeArgs(TenantArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TenantArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantDefaultSupportedIdpConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantDefaultSupportedIdpConfig.java index 4e50850aa7..6e6f85345c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantDefaultSupportedIdpConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantDefaultSupportedIdpConfig.java @@ -243,13 +243,20 @@ public TenantDefaultSupportedIdpConfig(String name, TenantDefaultSupportedIdpCon * @param options A bag of options that control this resource's behavior. */ public TenantDefaultSupportedIdpConfig(String name, TenantDefaultSupportedIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/tenantDefaultSupportedIdpConfig:TenantDefaultSupportedIdpConfig", name, args == null ? TenantDefaultSupportedIdpConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/tenantDefaultSupportedIdpConfig:TenantDefaultSupportedIdpConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TenantDefaultSupportedIdpConfig(String name, Output id, @Nullable TenantDefaultSupportedIdpConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/tenantDefaultSupportedIdpConfig:TenantDefaultSupportedIdpConfig", name, state, makeResourceOptions(options, id)); } + private static TenantDefaultSupportedIdpConfigArgs makeArgs(TenantDefaultSupportedIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TenantDefaultSupportedIdpConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantInboundSamlConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantInboundSamlConfig.java index 08c83d8f9f..380dd8a9db 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantInboundSamlConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantInboundSamlConfig.java @@ -235,13 +235,20 @@ public TenantInboundSamlConfig(String name, TenantInboundSamlConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public TenantInboundSamlConfig(String name, TenantInboundSamlConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/tenantInboundSamlConfig:TenantInboundSamlConfig", name, args == null ? TenantInboundSamlConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/tenantInboundSamlConfig:TenantInboundSamlConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TenantInboundSamlConfig(String name, Output id, @Nullable TenantInboundSamlConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/tenantInboundSamlConfig:TenantInboundSamlConfig", name, state, makeResourceOptions(options, id)); } + private static TenantInboundSamlConfigArgs makeArgs(TenantInboundSamlConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TenantInboundSamlConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantOauthIdpConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantOauthIdpConfig.java index 8a60287ab9..7859202f53 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantOauthIdpConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/identityplatform/TenantOauthIdpConfig.java @@ -239,13 +239,20 @@ public TenantOauthIdpConfig(String name, TenantOauthIdpConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public TenantOauthIdpConfig(String name, TenantOauthIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:identityplatform/tenantOauthIdpConfig:TenantOauthIdpConfig", name, args == null ? TenantOauthIdpConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:identityplatform/tenantOauthIdpConfig:TenantOauthIdpConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TenantOauthIdpConfig(String name, Output id, @Nullable TenantOauthIdpConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:identityplatform/tenantOauthIdpConfig:TenantOauthIdpConfig", name, state, makeResourceOptions(options, id)); } + private static TenantOauthIdpConfigArgs makeArgs(TenantOauthIdpConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TenantOauthIdpConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/Connection.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/Connection.java index 75b75a26b8..270cb0c3b3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/Connection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/Connection.java @@ -866,13 +866,20 @@ public Connection(String name, ConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public Connection(String name, ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:integrationconnectors/connection:Connection", name, args == null ? ConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:integrationconnectors/connection:Connection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Connection(String name, Output id, @Nullable ConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:integrationconnectors/connection:Connection", name, state, makeResourceOptions(options, id)); } + private static ConnectionArgs makeArgs(ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/EndpointAttachment.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/EndpointAttachment.java index 3ed99f7871..af65e9820c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/EndpointAttachment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/EndpointAttachment.java @@ -299,13 +299,20 @@ public EndpointAttachment(String name, EndpointAttachmentArgs args) { * @param options A bag of options that control this resource's behavior. */ public EndpointAttachment(String name, EndpointAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:integrationconnectors/endpointAttachment:EndpointAttachment", name, args == null ? EndpointAttachmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:integrationconnectors/endpointAttachment:EndpointAttachment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EndpointAttachment(String name, Output id, @Nullable EndpointAttachmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:integrationconnectors/endpointAttachment:EndpointAttachment", name, state, makeResourceOptions(options, id)); } + private static EndpointAttachmentArgs makeArgs(EndpointAttachmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EndpointAttachmentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/ManagedZone.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/ManagedZone.java index be7295b2ad..1e6c593848 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/ManagedZone.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/ManagedZone.java @@ -349,13 +349,20 @@ public ManagedZone(String name, ManagedZoneArgs args) { * @param options A bag of options that control this resource's behavior. */ public ManagedZone(String name, ManagedZoneArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:integrationconnectors/managedZone:ManagedZone", name, args == null ? ManagedZoneArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:integrationconnectors/managedZone:ManagedZone", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagedZone(String name, Output id, @Nullable ManagedZoneState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:integrationconnectors/managedZone:ManagedZone", name, state, makeResourceOptions(options, id)); } + private static ManagedZoneArgs makeArgs(ManagedZoneArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagedZoneArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.java index 294c40d40e..2cc3b6769b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs.java @@ -17,8 +17,8 @@ public final class ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs public static final ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs Empty = new ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs(); /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -26,8 +26,8 @@ public final class ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs private @Nullable Output kmsKeyName; /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -78,8 +78,8 @@ public Builder(ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgs defa } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder @@ -91,8 +91,8 @@ public Builder kmsKeyName(@Nullable Output kmsKeyName) { } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionConfigVariableEncryptionKeyValueArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionConfigVariableEncryptionKeyValueArgs.java index bff194ffac..5a5350ff33 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionConfigVariableEncryptionKeyValueArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionConfigVariableEncryptionKeyValueArgs.java @@ -17,8 +17,8 @@ public final class ConnectionConfigVariableEncryptionKeyValueArgs extends com.pu public static final ConnectionConfigVariableEncryptionKeyValueArgs Empty = new ConnectionConfigVariableEncryptionKeyValueArgs(); /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -26,8 +26,8 @@ public final class ConnectionConfigVariableEncryptionKeyValueArgs extends com.pu private @Nullable Output kmsKeyName; /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -78,8 +78,8 @@ public Builder(ConnectionConfigVariableEncryptionKeyValueArgs defaults) { } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder @@ -91,8 +91,8 @@ public Builder kmsKeyName(@Nullable Output kmsKeyName) { } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.java index 0be1823ec9..d8c44b484f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs.java @@ -16,8 +16,8 @@ public final class ConnectionEventingConfigAdditionalVariableEncryptionKeyValueA public static final ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs Empty = new ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs(); /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -25,8 +25,8 @@ public final class ConnectionEventingConfigAdditionalVariableEncryptionKeyValueA private @Nullable Output kmsKeyName; /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -77,8 +77,8 @@ public Builder(ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgs } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder @@ -90,8 +90,8 @@ public Builder kmsKeyName(@Nullable Output kmsKeyName) { } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.java index 46c3bf4b6c..fbd3d9b798 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs.java @@ -16,8 +16,8 @@ public final class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptio public static final ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs Empty = new ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgs(); /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -25,8 +25,8 @@ public final class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptio private @Nullable Output kmsKeyName; /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -77,8 +77,8 @@ public Builder(ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKey } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder @@ -90,8 +90,8 @@ public Builder kmsKeyName(@Nullable Output kmsKeyName) { } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.java index 66bda77aef..e5142d5782 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/inputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs.java @@ -16,8 +16,8 @@ public final class ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs e public static final ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs Empty = new ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs(); /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -25,8 +25,8 @@ public final class ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs e private @Nullable Output kmsKeyName; /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -77,8 +77,8 @@ public Builder(ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgs defau } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder @@ -90,8 +90,8 @@ public Builder kmsKeyName(@Nullable Output kmsKeyName) { } /** - * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @param kmsKeyName The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * * @return builder diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.java index e33be430fd..a5b8dd4337 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionAuthConfigAdditionalVariableEncryptionKeyValue.java @@ -13,8 +13,8 @@ @CustomType public final class ConnectionAuthConfigAdditionalVariableEncryptionKeyValue { /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -28,8 +28,8 @@ public final class ConnectionAuthConfigAdditionalVariableEncryptionKeyValue { private ConnectionAuthConfigAdditionalVariableEncryptionKeyValue() {} /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionConfigVariableEncryptionKeyValue.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionConfigVariableEncryptionKeyValue.java index 9b089a4648..222c30b709 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionConfigVariableEncryptionKeyValue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionConfigVariableEncryptionKeyValue.java @@ -13,8 +13,8 @@ @CustomType public final class ConnectionConfigVariableEncryptionKeyValue { /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -28,8 +28,8 @@ public final class ConnectionConfigVariableEncryptionKeyValue { private ConnectionConfigVariableEncryptionKeyValue() {} /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.java index 36a0f15590..d11198e7fc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAdditionalVariableEncryptionKeyValue.java @@ -12,8 +12,8 @@ @CustomType public final class ConnectionEventingConfigAdditionalVariableEncryptionKeyValue { /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -27,8 +27,8 @@ public final class ConnectionEventingConfigAdditionalVariableEncryptionKeyValue private ConnectionEventingConfigAdditionalVariableEncryptionKeyValue() {} /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.java index 7365573218..e1358000ee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue.java @@ -12,8 +12,8 @@ @CustomType public final class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue { /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -27,8 +27,8 @@ public final class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptio private ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue() {} /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.java b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.java index 962ea1f035..3b87df1313 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/integrationconnectors/outputs/ConnectionSslConfigAdditionalVariableEncryptionKeyValue.java @@ -12,8 +12,8 @@ @CustomType public final class ConnectionSslConfigAdditionalVariableEncryptionKeyValue { /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ @@ -27,8 +27,8 @@ public final class ConnectionSslConfigAdditionalVariableEncryptionKeyValue { private ConnectionSslConfigAdditionalVariableEncryptionKeyValue() {} /** - * @return The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. + * @return The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*{@literal /}locations/*{@literal /}keyRings/*{@literal /}cryptoKeys/*. * Will be empty string if google managed. * */ diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/AutokeyConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/AutokeyConfig.java index aa5c010c60..6c09879855 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/AutokeyConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/AutokeyConfig.java @@ -212,13 +212,20 @@ public AutokeyConfig(String name, AutokeyConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public AutokeyConfig(String name, AutokeyConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/autokeyConfig:AutokeyConfig", name, args == null ? AutokeyConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/autokeyConfig:AutokeyConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AutokeyConfig(String name, Output id, @Nullable AutokeyConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/autokeyConfig:AutokeyConfig", name, state, makeResourceOptions(options, id)); } + private static AutokeyConfigArgs makeArgs(AutokeyConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AutokeyConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKey.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKey.java index ae6e030d1a..6e77b63f62 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKey.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKey.java @@ -425,13 +425,20 @@ public CryptoKey(String name, CryptoKeyArgs args) { * @param options A bag of options that control this resource's behavior. */ public CryptoKey(String name, CryptoKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/cryptoKey:CryptoKey", name, args == null ? CryptoKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/cryptoKey:CryptoKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CryptoKey(String name, Output id, @Nullable CryptoKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/cryptoKey:CryptoKey", name, state, makeResourceOptions(options, id)); } + private static CryptoKeyArgs makeArgs(CryptoKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CryptoKeyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMBinding.java index 5adb41a0e5..78c6459e21 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMBinding.java @@ -430,13 +430,20 @@ public CryptoKeyIAMBinding(String name, CryptoKeyIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public CryptoKeyIAMBinding(String name, CryptoKeyIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/cryptoKeyIAMBinding:CryptoKeyIAMBinding", name, args == null ? CryptoKeyIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/cryptoKeyIAMBinding:CryptoKeyIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CryptoKeyIAMBinding(String name, Output id, @Nullable CryptoKeyIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/cryptoKeyIAMBinding:CryptoKeyIAMBinding", name, state, makeResourceOptions(options, id)); } + private static CryptoKeyIAMBindingArgs makeArgs(CryptoKeyIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CryptoKeyIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMMember.java index a81b5706ce..4b88995b32 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMMember.java @@ -429,13 +429,20 @@ public CryptoKeyIAMMember(String name, CryptoKeyIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public CryptoKeyIAMMember(String name, CryptoKeyIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/cryptoKeyIAMMember:CryptoKeyIAMMember", name, args == null ? CryptoKeyIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/cryptoKeyIAMMember:CryptoKeyIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CryptoKeyIAMMember(String name, Output id, @Nullable CryptoKeyIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/cryptoKeyIAMMember:CryptoKeyIAMMember", name, state, makeResourceOptions(options, id)); } + private static CryptoKeyIAMMemberArgs makeArgs(CryptoKeyIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CryptoKeyIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMPolicy.java index a47fcfc46f..7efc98c457 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyIAMPolicy.java @@ -383,13 +383,20 @@ public CryptoKeyIAMPolicy(String name, CryptoKeyIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public CryptoKeyIAMPolicy(String name, CryptoKeyIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/cryptoKeyIAMPolicy:CryptoKeyIAMPolicy", name, args == null ? CryptoKeyIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/cryptoKeyIAMPolicy:CryptoKeyIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CryptoKeyIAMPolicy(String name, Output id, @Nullable CryptoKeyIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/cryptoKeyIAMPolicy:CryptoKeyIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static CryptoKeyIAMPolicyArgs makeArgs(CryptoKeyIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CryptoKeyIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyVersion.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyVersion.java index a871fcbdfe..900e0c4786 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyVersion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/CryptoKeyVersion.java @@ -244,13 +244,20 @@ public CryptoKeyVersion(String name, CryptoKeyVersionArgs args) { * @param options A bag of options that control this resource's behavior. */ public CryptoKeyVersion(String name, CryptoKeyVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/cryptoKeyVersion:CryptoKeyVersion", name, args == null ? CryptoKeyVersionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/cryptoKeyVersion:CryptoKeyVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CryptoKeyVersion(String name, Output id, @Nullable CryptoKeyVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/cryptoKeyVersion:CryptoKeyVersion", name, state, makeResourceOptions(options, id)); } + private static CryptoKeyVersionArgs makeArgs(CryptoKeyVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CryptoKeyVersionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/EkmConnection.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/EkmConnection.java index 98b16e4d0e..dfb82c2a35 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/EkmConnection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/EkmConnection.java @@ -239,13 +239,20 @@ public EkmConnection(String name, EkmConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public EkmConnection(String name, EkmConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/ekmConnection:EkmConnection", name, args == null ? EkmConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/ekmConnection:EkmConnection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EkmConnection(String name, Output id, @Nullable EkmConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/ekmConnection:EkmConnection", name, state, makeResourceOptions(options, id)); } + private static EkmConnectionArgs makeArgs(EkmConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EkmConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyHandle.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyHandle.java index e49d2c2ef5..0c5280a7a0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyHandle.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyHandle.java @@ -293,13 +293,20 @@ public KeyHandle(String name, KeyHandleArgs args) { * @param options A bag of options that control this resource's behavior. */ public KeyHandle(String name, KeyHandleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/keyHandle:KeyHandle", name, args == null ? KeyHandleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/keyHandle:KeyHandle", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeyHandle(String name, Output id, @Nullable KeyHandleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/keyHandle:KeyHandle", name, state, makeResourceOptions(options, id)); } + private static KeyHandleArgs makeArgs(KeyHandleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeyHandleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRing.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRing.java index 46f8b116d8..63bc6a48c0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRing.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRing.java @@ -164,13 +164,20 @@ public KeyRing(String name, KeyRingArgs args) { * @param options A bag of options that control this resource's behavior. */ public KeyRing(String name, KeyRingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/keyRing:KeyRing", name, args == null ? KeyRingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/keyRing:KeyRing", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeyRing(String name, Output id, @Nullable KeyRingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/keyRing:KeyRing", name, state, makeResourceOptions(options, id)); } + private static KeyRingArgs makeArgs(KeyRingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeyRingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMBinding.java index 197ac7f759..796744710a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMBinding.java @@ -713,13 +713,20 @@ public KeyRingIAMBinding(String name, KeyRingIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public KeyRingIAMBinding(String name, KeyRingIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/keyRingIAMBinding:KeyRingIAMBinding", name, args == null ? KeyRingIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/keyRingIAMBinding:KeyRingIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeyRingIAMBinding(String name, Output id, @Nullable KeyRingIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/keyRingIAMBinding:KeyRingIAMBinding", name, state, makeResourceOptions(options, id)); } + private static KeyRingIAMBindingArgs makeArgs(KeyRingIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeyRingIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMMember.java index d39f15b5fa..56de028a5c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMMember.java @@ -712,13 +712,20 @@ public KeyRingIAMMember(String name, KeyRingIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public KeyRingIAMMember(String name, KeyRingIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/keyRingIAMMember:KeyRingIAMMember", name, args == null ? KeyRingIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/keyRingIAMMember:KeyRingIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeyRingIAMMember(String name, Output id, @Nullable KeyRingIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/keyRingIAMMember:KeyRingIAMMember", name, state, makeResourceOptions(options, id)); } + private static KeyRingIAMMemberArgs makeArgs(KeyRingIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeyRingIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMPolicy.java index d4e51ff684..e3c857960c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingIAMPolicy.java @@ -664,13 +664,20 @@ public KeyRingIAMPolicy(String name, KeyRingIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public KeyRingIAMPolicy(String name, KeyRingIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/keyRingIAMPolicy:KeyRingIAMPolicy", name, args == null ? KeyRingIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/keyRingIAMPolicy:KeyRingIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeyRingIAMPolicy(String name, Output id, @Nullable KeyRingIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/keyRingIAMPolicy:KeyRingIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static KeyRingIAMPolicyArgs makeArgs(KeyRingIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeyRingIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingImportJob.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingImportJob.java index 34a7d865ec..5208d9dbaa 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingImportJob.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/KeyRingImportJob.java @@ -220,13 +220,20 @@ public KeyRingImportJob(String name, KeyRingImportJobArgs args) { * @param options A bag of options that control this resource's behavior. */ public KeyRingImportJob(String name, KeyRingImportJobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/keyRingImportJob:KeyRingImportJob", name, args == null ? KeyRingImportJobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/keyRingImportJob:KeyRingImportJob", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private KeyRingImportJob(String name, Output id, @Nullable KeyRingImportJobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/keyRingImportJob:KeyRingImportJob", name, state, makeResourceOptions(options, id)); } + private static KeyRingImportJobArgs makeArgs(KeyRingImportJobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeyRingImportJobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/kms/SecretCiphertext.java b/sdk/java/src/main/java/com/pulumi/gcp/kms/SecretCiphertext.java index 24af466e4c..16175f2348 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/kms/SecretCiphertext.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/kms/SecretCiphertext.java @@ -199,13 +199,20 @@ public SecretCiphertext(String name, SecretCiphertextArgs args) { * @param options A bag of options that control this resource's behavior. */ public SecretCiphertext(String name, SecretCiphertextArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:kms/secretCiphertext:SecretCiphertext", name, args == null ? SecretCiphertextArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:kms/secretCiphertext:SecretCiphertext", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SecretCiphertext(String name, Output id, @Nullable SecretCiphertextState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:kms/secretCiphertext:SecretCiphertext", name, state, makeResourceOptions(options, id)); } + private static SecretCiphertextArgs makeArgs(SecretCiphertextArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SecretCiphertextArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountBucketConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountBucketConfig.java index 6e70f648cf..758fa2d732 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountBucketConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountBucketConfig.java @@ -242,13 +242,20 @@ public BillingAccountBucketConfig(String name, BillingAccountBucketConfigArgs ar * @param options A bag of options that control this resource's behavior. */ public BillingAccountBucketConfig(String name, BillingAccountBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/billingAccountBucketConfig:BillingAccountBucketConfig", name, args == null ? BillingAccountBucketConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/billingAccountBucketConfig:BillingAccountBucketConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BillingAccountBucketConfig(String name, Output id, @Nullable BillingAccountBucketConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/billingAccountBucketConfig:BillingAccountBucketConfig", name, state, makeResourceOptions(options, id)); } + private static BillingAccountBucketConfigArgs makeArgs(BillingAccountBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BillingAccountBucketConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountExclusion.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountExclusion.java index e933f6e0f0..0c3c83db91 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountExclusion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountExclusion.java @@ -168,13 +168,20 @@ public BillingAccountExclusion(String name, BillingAccountExclusionArgs args) { * @param options A bag of options that control this resource's behavior. */ public BillingAccountExclusion(String name, BillingAccountExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/billingAccountExclusion:BillingAccountExclusion", name, args == null ? BillingAccountExclusionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/billingAccountExclusion:BillingAccountExclusion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BillingAccountExclusion(String name, Output id, @Nullable BillingAccountExclusionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/billingAccountExclusion:BillingAccountExclusion", name, state, makeResourceOptions(options, id)); } + private static BillingAccountExclusionArgs makeArgs(BillingAccountExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BillingAccountExclusionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountSink.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountSink.java index b7f9e716b2..f15ba01399 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountSink.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/BillingAccountSink.java @@ -267,13 +267,20 @@ public BillingAccountSink(String name, BillingAccountSinkArgs args) { * @param options A bag of options that control this resource's behavior. */ public BillingAccountSink(String name, BillingAccountSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/billingAccountSink:BillingAccountSink", name, args == null ? BillingAccountSinkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/billingAccountSink:BillingAccountSink", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BillingAccountSink(String name, Output id, @Nullable BillingAccountSinkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/billingAccountSink:BillingAccountSink", name, state, makeResourceOptions(options, id)); } + private static BillingAccountSinkArgs makeArgs(BillingAccountSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BillingAccountSinkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderBucketConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderBucketConfig.java index 378083f433..0e4a421d57 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderBucketConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderBucketConfig.java @@ -243,13 +243,20 @@ public FolderBucketConfig(String name, FolderBucketConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public FolderBucketConfig(String name, FolderBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/folderBucketConfig:FolderBucketConfig", name, args == null ? FolderBucketConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/folderBucketConfig:FolderBucketConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FolderBucketConfig(String name, Output id, @Nullable FolderBucketConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/folderBucketConfig:FolderBucketConfig", name, state, makeResourceOptions(options, id)); } + private static FolderBucketConfigArgs makeArgs(FolderBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FolderBucketConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderExclusion.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderExclusion.java index 46d6c044c7..b046736846 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderExclusion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderExclusion.java @@ -185,13 +185,20 @@ public FolderExclusion(String name, FolderExclusionArgs args) { * @param options A bag of options that control this resource's behavior. */ public FolderExclusion(String name, FolderExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/folderExclusion:FolderExclusion", name, args == null ? FolderExclusionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/folderExclusion:FolderExclusion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FolderExclusion(String name, Output id, @Nullable FolderExclusionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/folderExclusion:FolderExclusion", name, state, makeResourceOptions(options, id)); } + private static FolderExclusionArgs makeArgs(FolderExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FolderExclusionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSettings.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSettings.java index 16bff18dde..cf6f13b6d9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSettings.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSettings.java @@ -233,13 +233,20 @@ public FolderSettings(String name, FolderSettingsArgs args) { * @param options A bag of options that control this resource's behavior. */ public FolderSettings(String name, FolderSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/folderSettings:FolderSettings", name, args == null ? FolderSettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/folderSettings:FolderSettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FolderSettings(String name, Output id, @Nullable FolderSettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/folderSettings:FolderSettings", name, state, makeResourceOptions(options, id)); } + private static FolderSettingsArgs makeArgs(FolderSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FolderSettingsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSink.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSink.java index 30fd103ed2..56b8a758fb 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSink.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/FolderSink.java @@ -305,13 +305,20 @@ public FolderSink(String name, FolderSinkArgs args) { * @param options A bag of options that control this resource's behavior. */ public FolderSink(String name, FolderSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/folderSink:FolderSink", name, args == null ? FolderSinkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/folderSink:FolderSink", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FolderSink(String name, Output id, @Nullable FolderSinkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/folderSink:FolderSink", name, state, makeResourceOptions(options, id)); } + private static FolderSinkArgs makeArgs(FolderSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FolderSinkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/LinkedDataset.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/LinkedDataset.java index 06a760f95a..a967ef235b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/LinkedDataset.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/LinkedDataset.java @@ -303,13 +303,20 @@ public LinkedDataset(String name, LinkedDatasetArgs args) { * @param options A bag of options that control this resource's behavior. */ public LinkedDataset(String name, LinkedDatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/linkedDataset:LinkedDataset", name, args == null ? LinkedDatasetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/linkedDataset:LinkedDataset", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LinkedDataset(String name, Output id, @Nullable LinkedDatasetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/linkedDataset:LinkedDataset", name, state, makeResourceOptions(options, id)); } + private static LinkedDatasetArgs makeArgs(LinkedDatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LinkedDatasetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogView.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogView.java index 3c2a8f9a5a..1e3b90c0f9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogView.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogView.java @@ -226,13 +226,20 @@ public LogView(String name, LogViewArgs args) { * @param options A bag of options that control this resource's behavior. */ public LogView(String name, LogViewArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/logView:LogView", name, args == null ? LogViewArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/logView:LogView", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LogView(String name, Output id, @Nullable LogViewState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/logView:LogView", name, state, makeResourceOptions(options, id)); } + private static LogViewArgs makeArgs(LogViewArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LogViewArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamBinding.java index c5c0ce6857..4a5eea2dbf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamBinding.java @@ -219,13 +219,20 @@ public LogViewIamBinding(String name, LogViewIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public LogViewIamBinding(String name, LogViewIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/logViewIamBinding:LogViewIamBinding", name, args == null ? LogViewIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/logViewIamBinding:LogViewIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LogViewIamBinding(String name, Output id, @Nullable LogViewIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/logViewIamBinding:LogViewIamBinding", name, state, makeResourceOptions(options, id)); } + private static LogViewIamBindingArgs makeArgs(LogViewIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LogViewIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamMember.java index 143c274afd..d21c0e748b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamMember.java @@ -218,13 +218,20 @@ public LogViewIamMember(String name, LogViewIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public LogViewIamMember(String name, LogViewIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/logViewIamMember:LogViewIamMember", name, args == null ? LogViewIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/logViewIamMember:LogViewIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LogViewIamMember(String name, Output id, @Nullable LogViewIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/logViewIamMember:LogViewIamMember", name, state, makeResourceOptions(options, id)); } + private static LogViewIamMemberArgs makeArgs(LogViewIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LogViewIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamPolicy.java index 7b3202786b..2c26ae3494 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/LogViewIamPolicy.java @@ -164,13 +164,20 @@ public LogViewIamPolicy(String name, LogViewIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public LogViewIamPolicy(String name, LogViewIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/logViewIamPolicy:LogViewIamPolicy", name, args == null ? LogViewIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/logViewIamPolicy:LogViewIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LogViewIamPolicy(String name, Output id, @Nullable LogViewIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/logViewIamPolicy:LogViewIamPolicy", name, state, makeResourceOptions(options, id)); } + private static LogViewIamPolicyArgs makeArgs(LogViewIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LogViewIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java index 3979bb8067..46457db22b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/Metric.java @@ -504,13 +504,20 @@ public Metric(String name, MetricArgs args) { * @param options A bag of options that control this resource's behavior. */ public Metric(String name, MetricArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/metric:Metric", name, args == null ? MetricArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/metric:Metric", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Metric(String name, Output id, @Nullable MetricState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/metric:Metric", name, state, makeResourceOptions(options, id)); } + private static MetricArgs makeArgs(MetricArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetricArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationBucketConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationBucketConfig.java index 8b63f663e8..6ab872f7d0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationBucketConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationBucketConfig.java @@ -242,13 +242,20 @@ public OrganizationBucketConfig(String name, OrganizationBucketConfigArgs args) * @param options A bag of options that control this resource's behavior. */ public OrganizationBucketConfig(String name, OrganizationBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/organizationBucketConfig:OrganizationBucketConfig", name, args == null ? OrganizationBucketConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/organizationBucketConfig:OrganizationBucketConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationBucketConfig(String name, Output id, @Nullable OrganizationBucketConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/organizationBucketConfig:OrganizationBucketConfig", name, state, makeResourceOptions(options, id)); } + private static OrganizationBucketConfigArgs makeArgs(OrganizationBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationBucketConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationExclusion.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationExclusion.java index abe6414494..7624b4b17e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationExclusion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationExclusion.java @@ -176,13 +176,20 @@ public OrganizationExclusion(String name, OrganizationExclusionArgs args) { * @param options A bag of options that control this resource's behavior. */ public OrganizationExclusion(String name, OrganizationExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/organizationExclusion:OrganizationExclusion", name, args == null ? OrganizationExclusionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/organizationExclusion:OrganizationExclusion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationExclusion(String name, Output id, @Nullable OrganizationExclusionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/organizationExclusion:OrganizationExclusion", name, state, makeResourceOptions(options, id)); } + private static OrganizationExclusionArgs makeArgs(OrganizationExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationExclusionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSettings.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSettings.java index 50ee9d271e..46e84c03ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSettings.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSettings.java @@ -226,13 +226,20 @@ public OrganizationSettings(String name, OrganizationSettingsArgs args) { * @param options A bag of options that control this resource's behavior. */ public OrganizationSettings(String name, OrganizationSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/organizationSettings:OrganizationSettings", name, args == null ? OrganizationSettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/organizationSettings:OrganizationSettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationSettings(String name, Output id, @Nullable OrganizationSettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/organizationSettings:OrganizationSettings", name, state, makeResourceOptions(options, id)); } + private static OrganizationSettingsArgs makeArgs(OrganizationSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationSettingsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSink.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSink.java index 11c7b51415..aeac0583cd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSink.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/OrganizationSink.java @@ -296,13 +296,20 @@ public OrganizationSink(String name, OrganizationSinkArgs args) { * @param options A bag of options that control this resource's behavior. */ public OrganizationSink(String name, OrganizationSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/organizationSink:OrganizationSink", name, args == null ? OrganizationSinkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/organizationSink:OrganizationSink", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationSink(String name, Output id, @Nullable OrganizationSinkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/organizationSink:OrganizationSink", name, state, makeResourceOptions(options, id)); } + private static OrganizationSinkArgs makeArgs(OrganizationSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationSinkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectBucketConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectBucketConfig.java index dc39793a12..a20299f1ea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectBucketConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectBucketConfig.java @@ -458,13 +458,20 @@ public ProjectBucketConfig(String name, ProjectBucketConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectBucketConfig(String name, ProjectBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/projectBucketConfig:ProjectBucketConfig", name, args == null ? ProjectBucketConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/projectBucketConfig:ProjectBucketConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectBucketConfig(String name, Output id, @Nullable ProjectBucketConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/projectBucketConfig:ProjectBucketConfig", name, state, makeResourceOptions(options, id)); } + private static ProjectBucketConfigArgs makeArgs(ProjectBucketConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectBucketConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectExclusion.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectExclusion.java index aa900dadd8..fd821968f8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectExclusion.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectExclusion.java @@ -177,13 +177,20 @@ public ProjectExclusion(String name, ProjectExclusionArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectExclusion(String name, ProjectExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/projectExclusion:ProjectExclusion", name, args == null ? ProjectExclusionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/projectExclusion:ProjectExclusion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectExclusion(String name, Output id, @Nullable ProjectExclusionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/projectExclusion:ProjectExclusion", name, state, makeResourceOptions(options, id)); } + private static ProjectExclusionArgs makeArgs(ProjectExclusionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectExclusionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectSink.java b/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectSink.java index 5e61d80c77..9892cde1ee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectSink.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/logging/ProjectSink.java @@ -245,13 +245,20 @@ public ProjectSink(String name, ProjectSinkArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectSink(String name, ProjectSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:logging/projectSink:ProjectSink", name, args == null ? ProjectSinkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:logging/projectSink:ProjectSink", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectSink(String name, Output id, @Nullable ProjectSinkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:logging/projectSink:ProjectSink", name, state, makeResourceOptions(options, id)); } + private static ProjectSinkArgs makeArgs(ProjectSinkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectSinkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java index 701fbeb18f..a4f199e8ca 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/looker/Instance.java @@ -755,13 +755,20 @@ public Instance(String name, @Nullable InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, @Nullable InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:looker/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:looker/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:looker/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(@Nullable InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Cluster.java index b8986476a2..313031d2a1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Cluster.java @@ -400,13 +400,20 @@ public Cluster(String name, ClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public Cluster(String name, ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:managedkafka/cluster:Cluster", name, args == null ? ClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:managedkafka/cluster:Cluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Cluster(String name, Output id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:managedkafka/cluster:Cluster", name, state, makeResourceOptions(options, id)); } + private static ClusterArgs makeArgs(ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Topic.java b/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Topic.java index 942eb363ce..47ca1cbbb4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Topic.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/managedkafka/Topic.java @@ -252,13 +252,20 @@ public Topic(String name, TopicArgs args) { * @param options A bag of options that control this resource's behavior. */ public Topic(String name, TopicArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:managedkafka/topic:Topic", name, args == null ? TopicArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:managedkafka/topic:Topic", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Topic(String name, Output id, @Nullable TopicState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:managedkafka/topic:Topic", name, state, makeResourceOptions(options, id)); } + private static TopicArgs makeArgs(TopicArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TopicArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/memcache/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/memcache/Instance.java index 3b7883bbab..8a7583a82e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/memcache/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/memcache/Instance.java @@ -468,13 +468,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:memcache/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:memcache/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:memcache/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/Group.java b/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/Group.java index b4f0b13d6b..3f220b8cd0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/Group.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/Group.java @@ -276,13 +276,20 @@ public Group(String name, GroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public Group(String name, GroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:migrationcenter/group:Group", name, args == null ? GroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:migrationcenter/group:Group", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Group(String name, Output id, @Nullable GroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:migrationcenter/group:Group", name, state, makeResourceOptions(options, id)); } + private static GroupArgs makeArgs(GroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/PreferenceSet.java b/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/PreferenceSet.java index 54e6842880..4ecd57209e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/PreferenceSet.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/migrationcenter/PreferenceSet.java @@ -329,13 +329,20 @@ public PreferenceSet(String name, PreferenceSetArgs args) { * @param options A bag of options that control this resource's behavior. */ public PreferenceSet(String name, PreferenceSetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:migrationcenter/preferenceSet:PreferenceSet", name, args == null ? PreferenceSetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:migrationcenter/preferenceSet:PreferenceSet", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PreferenceSet(String name, Output id, @Nullable PreferenceSetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:migrationcenter/preferenceSet:PreferenceSet", name, state, makeResourceOptions(options, id)); } + private static PreferenceSetArgs makeArgs(PreferenceSetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PreferenceSetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/ml/EngineModel.java b/sdk/java/src/main/java/com/pulumi/gcp/ml/EngineModel.java index b16f9609c4..b0d805eaa9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/ml/EngineModel.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/ml/EngineModel.java @@ -316,13 +316,20 @@ public EngineModel(String name, @Nullable EngineModelArgs args) { * @param options A bag of options that control this resource's behavior. */ public EngineModel(String name, @Nullable EngineModelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:ml/engineModel:EngineModel", name, args == null ? EngineModelArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:ml/engineModel:EngineModel", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EngineModel(String name, Output id, @Nullable EngineModelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:ml/engineModel:EngineModel", name, state, makeResourceOptions(options, id)); } + private static EngineModelArgs makeArgs(@Nullable EngineModelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EngineModelArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java index bfd9849e1e..963b8ce7cd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/AlertPolicy.java @@ -483,13 +483,20 @@ public AlertPolicy(String name, AlertPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AlertPolicy(String name, AlertPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/alertPolicy:AlertPolicy", name, args == null ? AlertPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/alertPolicy:AlertPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AlertPolicy(String name, Output id, @Nullable AlertPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/alertPolicy:AlertPolicy", name, state, makeResourceOptions(options, id)); } + private static AlertPolicyArgs makeArgs(AlertPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AlertPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java index a35a83d739..605cceff68 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/CustomService.java @@ -216,13 +216,20 @@ public CustomService(String name, @Nullable CustomServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public CustomService(String name, @Nullable CustomServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/customService:CustomService", name, args == null ? CustomServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/customService:CustomService", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private CustomService(String name, Output id, @Nullable CustomServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/customService:CustomService", name, state, makeResourceOptions(options, id)); } + private static CustomServiceArgs makeArgs(@Nullable CustomServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? CustomServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Dashboard.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Dashboard.java index ab13566a0c..966155c670 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Dashboard.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Dashboard.java @@ -242,13 +242,20 @@ public Dashboard(String name, DashboardArgs args) { * @param options A bag of options that control this resource's behavior. */ public Dashboard(String name, DashboardArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/dashboard:Dashboard", name, args == null ? DashboardArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/dashboard:Dashboard", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Dashboard(String name, Output id, @Nullable DashboardState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/dashboard:Dashboard", name, state, makeResourceOptions(options, id)); } + private static DashboardArgs makeArgs(DashboardArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DashboardArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/GenericService.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/GenericService.java index ef2e603441..1b9d81cbd1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/GenericService.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/GenericService.java @@ -255,13 +255,20 @@ public GenericService(String name, GenericServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public GenericService(String name, GenericServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/genericService:GenericService", name, args == null ? GenericServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/genericService:GenericService", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private GenericService(String name, Output id, @Nullable GenericServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/genericService:GenericService", name, state, makeResourceOptions(options, id)); } + private static GenericServiceArgs makeArgs(GenericServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GenericServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java index 3807459ccb..c67fbb70e1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Group.java @@ -248,13 +248,20 @@ public Group(String name, GroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public Group(String name, GroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/group:Group", name, args == null ? GroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/group:Group", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Group(String name, Output id, @Nullable GroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/group:Group", name, state, makeResourceOptions(options, id)); } + private static GroupArgs makeArgs(GroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java index 5538852b2e..e9efae43ad 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MetricDescriptor.java @@ -390,13 +390,20 @@ public MetricDescriptor(String name, MetricDescriptorArgs args) { * @param options A bag of options that control this resource's behavior. */ public MetricDescriptor(String name, MetricDescriptorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/metricDescriptor:MetricDescriptor", name, args == null ? MetricDescriptorArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/metricDescriptor:MetricDescriptor", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MetricDescriptor(String name, Output id, @Nullable MetricDescriptorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/metricDescriptor:MetricDescriptor", name, state, makeResourceOptions(options, id)); } + private static MetricDescriptorArgs makeArgs(MetricDescriptorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MetricDescriptorArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MonitoredProject.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MonitoredProject.java index 63495eb91b..ffe9160738 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MonitoredProject.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/MonitoredProject.java @@ -158,13 +158,20 @@ public MonitoredProject(String name, MonitoredProjectArgs args) { * @param options A bag of options that control this resource's behavior. */ public MonitoredProject(String name, MonitoredProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/monitoredProject:MonitoredProject", name, args == null ? MonitoredProjectArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/monitoredProject:MonitoredProject", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MonitoredProject(String name, Output id, @Nullable MonitoredProjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/monitoredProject:MonitoredProject", name, state, makeResourceOptions(options, id)); } + private static MonitoredProjectArgs makeArgs(MonitoredProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MonitoredProjectArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/NotificationChannel.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/NotificationChannel.java index a2c3c355dc..4a6952a2da 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/NotificationChannel.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/NotificationChannel.java @@ -354,13 +354,20 @@ public NotificationChannel(String name, NotificationChannelArgs args) { * @param options A bag of options that control this resource's behavior. */ public NotificationChannel(String name, NotificationChannelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/notificationChannel:NotificationChannel", name, args == null ? NotificationChannelArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/notificationChannel:NotificationChannel", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NotificationChannel(String name, Output id, @Nullable NotificationChannelState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/notificationChannel:NotificationChannel", name, state, makeResourceOptions(options, id)); } + private static NotificationChannelArgs makeArgs(NotificationChannelArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NotificationChannelArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java index edaf2c901f..b8e9f119dd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/Slo.java @@ -667,13 +667,20 @@ public Slo(String name, SloArgs args) { * @param options A bag of options that control this resource's behavior. */ public Slo(String name, SloArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/slo:Slo", name, args == null ? SloArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/slo:Slo", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Slo(String name, Output id, @Nullable SloState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/slo:Slo", name, state, makeResourceOptions(options, id)); } + private static SloArgs makeArgs(SloArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SloArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java index fbcd214676..073fec8075 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/monitoring/UptimeCheckConfig.java @@ -650,13 +650,20 @@ public UptimeCheckConfig(String name, UptimeCheckConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public UptimeCheckConfig(String name, UptimeCheckConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig", name, args == null ? UptimeCheckConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private UptimeCheckConfig(String name, Output id, @Nullable UptimeCheckConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:monitoring/uptimeCheckConfig:UptimeCheckConfig", name, state, makeResourceOptions(options, id)); } + private static UptimeCheckConfigArgs makeArgs(UptimeCheckConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? UptimeCheckConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/ActiveDirectory.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/ActiveDirectory.java index eb71ec1739..16035684e0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/ActiveDirectory.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/ActiveDirectory.java @@ -518,13 +518,20 @@ public ActiveDirectory(String name, ActiveDirectoryArgs args) { * @param options A bag of options that control this resource's behavior. */ public ActiveDirectory(String name, ActiveDirectoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/activeDirectory:ActiveDirectory", name, args == null ? ActiveDirectoryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/activeDirectory:ActiveDirectory", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ActiveDirectory(String name, Output id, @Nullable ActiveDirectoryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/activeDirectory:ActiveDirectory", name, state, makeResourceOptions(options, id)); } + private static ActiveDirectoryArgs makeArgs(ActiveDirectoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ActiveDirectoryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/Backup.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/Backup.java index 91f086b576..07c1ca0449 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/Backup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/Backup.java @@ -397,13 +397,20 @@ public Backup(String name, BackupArgs args) { * @param options A bag of options that control this resource's behavior. */ public Backup(String name, BackupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/backup:Backup", name, args == null ? BackupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/backup:Backup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Backup(String name, Output id, @Nullable BackupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/backup:Backup", name, state, makeResourceOptions(options, id)); } + private static BackupArgs makeArgs(BackupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupPolicy.java index 973e0a7601..bc90a2dfe1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupPolicy.java @@ -335,13 +335,20 @@ public BackupPolicy(String name, BackupPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackupPolicy(String name, BackupPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/backupPolicy:BackupPolicy", name, args == null ? BackupPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/backupPolicy:BackupPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackupPolicy(String name, Output id, @Nullable BackupPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/backupPolicy:BackupPolicy", name, state, makeResourceOptions(options, id)); } + private static BackupPolicyArgs makeArgs(BackupPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupVault.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupVault.java index 8a91440f65..bde9b2619e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupVault.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/BackupVault.java @@ -256,13 +256,20 @@ public BackupVault(String name, BackupVaultArgs args) { * @param options A bag of options that control this resource's behavior. */ public BackupVault(String name, BackupVaultArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/backupVault:BackupVault", name, args == null ? BackupVaultArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/backupVault:BackupVault", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BackupVault(String name, Output id, @Nullable BackupVaultState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/backupVault:BackupVault", name, state, makeResourceOptions(options, id)); } + private static BackupVaultArgs makeArgs(BackupVaultArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupVaultArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/Kmsconfig.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/Kmsconfig.java index eeb675bd5e..87937ddac9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/Kmsconfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/Kmsconfig.java @@ -287,13 +287,20 @@ public Kmsconfig(String name, KmsconfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public Kmsconfig(String name, KmsconfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/kmsconfig:Kmsconfig", name, args == null ? KmsconfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/kmsconfig:Kmsconfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Kmsconfig(String name, Output id, @Nullable KmsconfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/kmsconfig:Kmsconfig", name, state, makeResourceOptions(options, id)); } + private static KmsconfigArgs makeArgs(KmsconfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KmsconfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/StoragePool.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/StoragePool.java index 330c3ed3f6..6fd5322252 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/StoragePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/StoragePool.java @@ -432,13 +432,20 @@ public StoragePool(String name, StoragePoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public StoragePool(String name, StoragePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/storagePool:StoragePool", name, args == null ? StoragePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/storagePool:StoragePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private StoragePool(String name, Output id, @Nullable StoragePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/storagePool:StoragePool", name, state, makeResourceOptions(options, id)); } + private static StoragePoolArgs makeArgs(StoragePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? StoragePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/Volume.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/Volume.java index 6a511c8f8c..16fa45523f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/Volume.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/Volume.java @@ -554,15 +554,15 @@ public Output shareName() { * */ @Export(name="smbSettings", refs={List.class,String.class}, tree="[0,1]") - private Output> smbSettings; + private Output> smbSettings; /** * @return Settings for volumes with SMB access. * Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`. * */ - public Output>> smbSettings() { - return Codegen.optional(this.smbSettings); + public Output> smbSettings() { + return this.smbSettings; } /** * If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB. @@ -703,13 +703,20 @@ public Volume(String name, VolumeArgs args) { * @param options A bag of options that control this resource's behavior. */ public Volume(String name, VolumeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/volume:Volume", name, args == null ? VolumeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/volume:Volume", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Volume(String name, Output id, @Nullable VolumeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/volume:Volume", name, state, makeResourceOptions(options, id)); } + private static VolumeArgs makeArgs(VolumeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VolumeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeReplication.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeReplication.java index 2b959cd967..ab1256cdba 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeReplication.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeReplication.java @@ -511,13 +511,20 @@ public VolumeReplication(String name, VolumeReplicationArgs args) { * @param options A bag of options that control this resource's behavior. */ public VolumeReplication(String name, VolumeReplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/volumeReplication:VolumeReplication", name, args == null ? VolumeReplicationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/volumeReplication:VolumeReplication", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VolumeReplication(String name, Output id, @Nullable VolumeReplicationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/volumeReplication:VolumeReplication", name, state, makeResourceOptions(options, id)); } + private static VolumeReplicationArgs makeArgs(VolumeReplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VolumeReplicationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeSnapshot.java b/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeSnapshot.java index 3ef29d4529..9c610d9778 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeSnapshot.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/netapp/VolumeSnapshot.java @@ -290,13 +290,20 @@ public VolumeSnapshot(String name, VolumeSnapshotArgs args) { * @param options A bag of options that control this resource's behavior. */ public VolumeSnapshot(String name, VolumeSnapshotArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:netapp/volumeSnapshot:VolumeSnapshot", name, args == null ? VolumeSnapshotArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:netapp/volumeSnapshot:VolumeSnapshot", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VolumeSnapshot(String name, Output id, @Nullable VolumeSnapshotState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:netapp/volumeSnapshot:VolumeSnapshot", name, state, makeResourceOptions(options, id)); } + private static VolumeSnapshotArgs makeArgs(VolumeSnapshotArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VolumeSnapshotArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Hub.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Hub.java index 1b8a8c50ec..08a54bd6db 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Hub.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Hub.java @@ -11,7 +11,6 @@ import com.pulumi.gcp.networkconnectivity.HubArgs; import com.pulumi.gcp.networkconnectivity.inputs.HubState; import com.pulumi.gcp.networkconnectivity.outputs.HubRoutingVpc; -import java.lang.Object; import java.lang.String; import java.util.List; import java.util.Map; @@ -21,10 +20,16 @@ /** * The NetworkConnectivity Hub resource * + * To get more information about Hub, see: + * + * * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + * * ## Example Usage * - * ### Basic_hub - * A basic test of a networkconnectivity hub + * ### Network Connectivity Hub Basic + * * <!--Start PulumiCodeChooser --> *
  * {@code
@@ -49,9 +54,8 @@
  * 
  *     public static void stack(Context ctx) {
  *         var primary = new Hub("primary", HubArgs.builder()
- *             .name("hub")
+ *             .name("basic")
  *             .description("A sample hub")
- *             .project("my-project-name")
  *             .labels(Map.of("label-one", "value-one"))
  *             .build());
  * 
@@ -120,19 +124,18 @@ public Output> description() {
      * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
      * 
      */
-    @Export(name="effectiveLabels", refs={Map.class,String.class,Object.class}, tree="[0,1,2]")
-    private Output> effectiveLabels;
+    @Export(name="effectiveLabels", refs={Map.class,String.class}, tree="[0,1,1]")
+    private Output> effectiveLabels;
 
     /**
      * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
      * 
      */
-    public Output> effectiveLabels() {
+    public Output> effectiveLabels() {
         return this.effectiveLabels;
     }
     /**
      * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-     * 
      * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
      * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
@@ -142,7 +145,6 @@ public Output> effectiveLabels() {
 
     /**
      * @return Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-     * 
      * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
      * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
@@ -169,35 +171,40 @@ public Output name() {
         return this.name;
     }
     /**
-     * The project for the resource
+     * The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     @Export(name="project", refs={String.class}, tree="[0]")
     private Output project;
 
     /**
-     * @return The project for the resource
+     * @return The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     public Output project() {
         return this.project;
     }
     /**
-     * The combination of labels configured directly on the resource and default labels configured on the provider.
+     * The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
-    @Export(name="pulumiLabels", refs={Map.class,String.class,Object.class}, tree="[0,1,2]")
-    private Output> pulumiLabels;
+    @Export(name="pulumiLabels", refs={Map.class,String.class}, tree="[0,1,1]")
+    private Output> pulumiLabels;
 
     /**
-     * @return The combination of labels configured directly on the resource and default labels configured on the provider.
+     * @return The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
-    public Output> pulumiLabels() {
+    public Output> pulumiLabels() {
         return this.pulumiLabels;
     }
     /**
      * The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
+     * Structure is documented below.
      * 
      */
     @Export(name="routingVpcs", refs={List.class,HubRoutingVpc.class}, tree="[0,1]")
@@ -205,20 +212,21 @@ public Output> pulumiLabels() {
 
     /**
      * @return The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
+     * Structure is documented below.
      * 
      */
     public Output> routingVpcs() {
         return this.routingVpcs;
     }
     /**
-     * Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * Output only. The current lifecycle state of this hub.
      * 
      */
     @Export(name="state", refs={String.class}, tree="[0]")
     private Output state;
 
     /**
-     * @return Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * @return Output only. The current lifecycle state of this hub.
      * 
      */
     public Output state() {
@@ -275,13 +283,20 @@ public Hub(String name, @Nullable HubArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Hub(String name, @Nullable HubArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkconnectivity/hub:Hub", name, args == null ? HubArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkconnectivity/hub:Hub", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Hub(String name, Output id, @Nullable HubState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkconnectivity/hub:Hub", name, state, makeResourceOptions(options, id));
     }
 
+    private static HubArgs makeArgs(@Nullable HubArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? HubArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/HubArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/HubArgs.java
index dd132bb638..d36955f631 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/HubArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/HubArgs.java
@@ -33,7 +33,6 @@ public Optional> description() {
 
     /**
      * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-     * 
      * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
      * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
@@ -43,7 +42,6 @@ public Optional> description() {
 
     /**
      * @return Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-     * 
      * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
      * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
@@ -72,14 +70,16 @@ public Optional> name() {
     }
 
     /**
-     * The project for the resource
+     * The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     @Import(name="project")
     private @Nullable Output project;
 
     /**
-     * @return The project for the resource
+     * @return The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     public Optional> project() {
@@ -136,7 +136,6 @@ public Builder description(String description) {
 
         /**
          * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-         * 
          * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
          * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
@@ -150,7 +149,6 @@ public Builder labels(@Nullable Output> labels) {
 
         /**
          * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-         * 
          * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
          * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
@@ -187,7 +185,8 @@ public Builder name(String name) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
@@ -198,7 +197,8 @@ public Builder project(@Nullable Output project) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/InternalRange.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/InternalRange.java
index ebedddc1d8..e8b1e8cf53 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/InternalRange.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/InternalRange.java
@@ -501,13 +501,20 @@ public InternalRange(String name, InternalRangeArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public InternalRange(String name, InternalRangeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkconnectivity/internalRange:InternalRange", name, args == null ? InternalRangeArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkconnectivity/internalRange:InternalRange", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private InternalRange(String name, Output id, @Nullable InternalRangeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkconnectivity/internalRange:InternalRange", name, state, makeResourceOptions(options, id));
     }
 
+    private static InternalRangeArgs makeArgs(InternalRangeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? InternalRangeArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/PolicyBasedRoute.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/PolicyBasedRoute.java
index ba673610ad..818cc40230 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/PolicyBasedRoute.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/PolicyBasedRoute.java
@@ -438,13 +438,20 @@ public PolicyBasedRoute(String name, PolicyBasedRouteArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public PolicyBasedRoute(String name, PolicyBasedRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkconnectivity/policyBasedRoute:PolicyBasedRoute", name, args == null ? PolicyBasedRouteArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkconnectivity/policyBasedRoute:PolicyBasedRoute", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private PolicyBasedRoute(String name, Output id, @Nullable PolicyBasedRouteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkconnectivity/policyBasedRoute:PolicyBasedRoute", name, state, makeResourceOptions(options, id));
     }
 
+    private static PolicyBasedRouteArgs makeArgs(PolicyBasedRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? PolicyBasedRouteArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/RegionalEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/RegionalEndpoint.java
index 264a2d52f6..f537e6c29c 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/RegionalEndpoint.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/RegionalEndpoint.java
@@ -420,13 +420,20 @@ public RegionalEndpoint(String name, RegionalEndpointArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public RegionalEndpoint(String name, RegionalEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkconnectivity/regionalEndpoint:RegionalEndpoint", name, args == null ? RegionalEndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkconnectivity/regionalEndpoint:RegionalEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private RegionalEndpoint(String name, Output id, @Nullable RegionalEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkconnectivity/regionalEndpoint:RegionalEndpoint", name, state, makeResourceOptions(options, id));
     }
 
+    private static RegionalEndpointArgs makeArgs(RegionalEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? RegionalEndpointArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/ServiceConnectionPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/ServiceConnectionPolicy.java
index 12ba78c78f..3fc3ed6f76 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/ServiceConnectionPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/ServiceConnectionPolicy.java
@@ -369,13 +369,20 @@ public ServiceConnectionPolicy(String name, ServiceConnectionPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ServiceConnectionPolicy(String name, ServiceConnectionPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkconnectivity/serviceConnectionPolicy:ServiceConnectionPolicy", name, args == null ? ServiceConnectionPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkconnectivity/serviceConnectionPolicy:ServiceConnectionPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ServiceConnectionPolicy(String name, Output id, @Nullable ServiceConnectionPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkconnectivity/serviceConnectionPolicy:ServiceConnectionPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static ServiceConnectionPolicyArgs makeArgs(ServiceConnectionPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ServiceConnectionPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Spoke.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Spoke.java
index c055c9602d..c8d453f488 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Spoke.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/Spoke.java
@@ -14,7 +14,6 @@
 import com.pulumi.gcp.networkconnectivity.outputs.SpokeLinkedRouterApplianceInstances;
 import com.pulumi.gcp.networkconnectivity.outputs.SpokeLinkedVpcNetwork;
 import com.pulumi.gcp.networkconnectivity.outputs.SpokeLinkedVpnTunnels;
-import java.lang.Object;
 import java.lang.String;
 import java.util.List;
 import java.util.Map;
@@ -24,9 +23,16 @@
 /**
  * The NetworkConnectivity Spoke resource
  * 
+ * To get more information about Spoke, see:
+ * 
+ * * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes)
+ * * How-to Guides
+ *     * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview)
+ * 
  * ## Example Usage
  * 
- * ### Linked_vpc_network
+ * ### Network Connectivity Spoke Linked Vpc Network Basic
+ * 
  * <!--Start PulumiCodeChooser -->
  * 
  * {@code
@@ -56,20 +62,20 @@
  * 
  *     public static void stack(Context ctx) {
  *         var network = new Network("network", NetworkArgs.builder()
- *             .name("network")
+ *             .name("net")
  *             .autoCreateSubnetworks(false)
  *             .build());
  * 
  *         var basicHub = new Hub("basicHub", HubArgs.builder()
- *             .name("hub")
+ *             .name("hub1")
  *             .description("A sample hub")
  *             .labels(Map.of("label-two", "value-one"))
  *             .build());
  * 
  *         var primary = new Spoke("primary", SpokeArgs.builder()
- *             .name("name")
+ *             .name("spoke1")
  *             .location("global")
- *             .description("A sample spoke with a linked routher appliance instance")
+ *             .description("A sample spoke with a linked router appliance instance")
  *             .labels(Map.of("label-one", "value-one"))
  *             .hub(basicHub.id())
  *             .linkedVpcNetwork(SpokeLinkedVpcNetworkArgs.builder()
@@ -85,7 +91,8 @@
  * }
  * 
* <!--End PulumiCodeChooser --> - * ### Router_appliance + * ### Network Connectivity Spoke Router Appliance Basic + * * <!--Start PulumiCodeChooser --> *
  * {@code
@@ -122,22 +129,22 @@
  * 
  *     public static void stack(Context ctx) {
  *         var network = new Network("network", NetworkArgs.builder()
- *             .name("network")
+ *             .name("tf-test-network_2067")
  *             .autoCreateSubnetworks(false)
  *             .build());
  * 
  *         var subnetwork = new Subnetwork("subnetwork", SubnetworkArgs.builder()
- *             .name("subnet")
+ *             .name("tf-test-subnet_40785")
  *             .ipCidrRange("10.0.0.0/28")
- *             .region("us-west1")
+ *             .region("us-central1")
  *             .network(network.selfLink())
  *             .build());
  * 
  *         var instance = new Instance("instance", InstanceArgs.builder()
- *             .name("instance")
+ *             .name("tf-test-instance_79169")
  *             .machineType("e2-medium")
  *             .canIpForward(true)
- *             .zone("us-west1-a")
+ *             .zone("us-central1-a")
  *             .bootDisk(InstanceBootDiskArgs.builder()
  *                 .initializeParams(InstanceBootDiskInitializeParamsArgs.builder()
  *                     .image("projects/debian-cloud/global/images/debian-10-buster-v20210817")
@@ -153,14 +160,14 @@
  *             .build());
  * 
  *         var basicHub = new Hub("basicHub", HubArgs.builder()
- *             .name("hub")
+ *             .name("tf-test-hub_56529")
  *             .description("A sample hub")
  *             .labels(Map.of("label-two", "value-one"))
  *             .build());
  * 
  *         var primary = new Spoke("primary", SpokeArgs.builder()
- *             .name("name")
- *             .location("us-west1")
+ *             .name("tf-test-name_75413")
+ *             .location("us-central1")
  *             .description("A sample spoke with a linked routher appliance instance")
  *             .labels(Map.of("label-one", "value-one"))
  *             .hub(basicHub.id())
@@ -238,14 +245,14 @@ public Output> description() {
      * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
      * 
      */
-    @Export(name="effectiveLabels", refs={Map.class,String.class,Object.class}, tree="[0,1,2]")
-    private Output> effectiveLabels;
+    @Export(name="effectiveLabels", refs={Map.class,String.class}, tree="[0,1,1]")
+    private Output> effectiveLabels;
 
     /**
      * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
      * 
      */
-    public Output> effectiveLabels() {
+    public Output> effectiveLabels() {
         return this.effectiveLabels;
     }
     /**
@@ -263,38 +270,34 @@ public Output hub() {
         return this.hub;
     }
     /**
-     * Optional labels in key:value format. For more information about labels, see [Requirements for
-     * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-     * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-     * `effective_labels` for all of the labels present on the resource.
+     * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+     * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
      */
     @Export(name="labels", refs={Map.class,String.class}, tree="[0,1,1]")
     private Output> labels;
 
     /**
-     * @return Optional labels in key:value format. For more information about labels, see [Requirements for
-     * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-     * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-     * `effective_labels` for all of the labels present on the resource.
+     * @return Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+     * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
      */
     public Output>> labels() {
         return Codegen.optional(this.labels);
     }
     /**
-     * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-     * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-     * advertising the same prefixes.
+     * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+     * Structure is documented below.
      * 
      */
     @Export(name="linkedInterconnectAttachments", refs={SpokeLinkedInterconnectAttachments.class}, tree="[0]")
     private Output linkedInterconnectAttachments;
 
     /**
-     * @return A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-     * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-     * advertising the same prefixes.
+     * @return A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+     * Structure is documented below.
      * 
      */
     public Output> linkedInterconnectAttachments() {
@@ -302,6 +305,7 @@ public Output> linkedInterconnectAt
     }
     /**
      * The URIs of linked Router appliance resources
+     * Structure is documented below.
      * 
      */
     @Export(name="linkedRouterApplianceInstances", refs={SpokeLinkedRouterApplianceInstances.class}, tree="[0]")
@@ -309,6 +313,7 @@ public Output> linkedInterconnectAt
 
     /**
      * @return The URIs of linked Router appliance resources
+     * Structure is documented below.
      * 
      */
     public Output> linkedRouterApplianceInstances() {
@@ -316,6 +321,7 @@ public Output> linkedRouterApplian
     }
     /**
      * VPC network that is associated with the spoke.
+     * Structure is documented below.
      * 
      */
     @Export(name="linkedVpcNetwork", refs={SpokeLinkedVpcNetwork.class}, tree="[0]")
@@ -323,6 +329,7 @@ public Output> linkedRouterApplian
 
     /**
      * @return VPC network that is associated with the spoke.
+     * Structure is documented below.
      * 
      */
     public Output> linkedVpcNetwork() {
@@ -330,6 +337,7 @@ public Output> linkedVpcNetwork() {
     }
     /**
      * The URIs of linked VPN tunnel resources
+     * Structure is documented below.
      * 
      */
     @Export(name="linkedVpnTunnels", refs={SpokeLinkedVpnTunnels.class}, tree="[0]")
@@ -337,6 +345,7 @@ public Output> linkedVpcNetwork() {
 
     /**
      * @return The URIs of linked VPN tunnel resources
+     * Structure is documented below.
      * 
      */
     public Output> linkedVpnTunnels() {
@@ -345,6 +354,8 @@ public Output> linkedVpnTunnels() {
     /**
      * The location for the resource
      * 
+     * ***
+     * 
      */
     @Export(name="location", refs={String.class}, tree="[0]")
     private Output location;
@@ -352,6 +363,8 @@ public Output> linkedVpnTunnels() {
     /**
      * @return The location for the resource
      * 
+     * ***
+     * 
      */
     public Output location() {
         return this.location;
@@ -371,42 +384,46 @@ public Output name() {
         return this.name;
     }
     /**
-     * The project for the resource
+     * The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     @Export(name="project", refs={String.class}, tree="[0]")
     private Output project;
 
     /**
-     * @return The project for the resource
+     * @return The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     public Output project() {
         return this.project;
     }
     /**
-     * The combination of labels configured directly on the resource and default labels configured on the provider.
+     * The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
-    @Export(name="pulumiLabels", refs={Map.class,String.class,Object.class}, tree="[0,1,2]")
-    private Output> pulumiLabels;
+    @Export(name="pulumiLabels", refs={Map.class,String.class}, tree="[0,1,1]")
+    private Output> pulumiLabels;
 
     /**
-     * @return The combination of labels configured directly on the resource and default labels configured on the provider.
+     * @return The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
-    public Output> pulumiLabels() {
+    public Output> pulumiLabels() {
         return this.pulumiLabels;
     }
     /**
-     * Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * Output only. The current lifecycle state of this spoke.
      * 
      */
     @Export(name="state", refs={String.class}, tree="[0]")
     private Output state;
 
     /**
-     * @return Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * @return Output only. The current lifecycle state of this spoke.
      * 
      */
     public Output state() {
@@ -463,13 +480,20 @@ public Spoke(String name, SpokeArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Spoke(String name, SpokeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkconnectivity/spoke:Spoke", name, args == null ? SpokeArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkconnectivity/spoke:Spoke", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Spoke(String name, Output id, @Nullable SpokeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkconnectivity/spoke:Spoke", name, state, makeResourceOptions(options, id));
     }
 
+    private static SpokeArgs makeArgs(SpokeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SpokeArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/SpokeArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/SpokeArgs.java
index 8241683b18..d773c9faec 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/SpokeArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/SpokeArgs.java
@@ -52,20 +52,18 @@ public Output hub() {
     }
 
     /**
-     * Optional labels in key:value format. For more information about labels, see [Requirements for
-     * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-     * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-     * `effective_labels` for all of the labels present on the resource.
+     * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+     * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
      */
     @Import(name="labels")
     private @Nullable Output> labels;
 
     /**
-     * @return Optional labels in key:value format. For more information about labels, see [Requirements for
-     * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-     * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-     * `effective_labels` for all of the labels present on the resource.
+     * @return Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+     * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
      */
     public Optional>> labels() {
@@ -73,18 +71,16 @@ public Optional>> labels() {
     }
 
     /**
-     * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-     * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-     * advertising the same prefixes.
+     * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedInterconnectAttachments")
     private @Nullable Output linkedInterconnectAttachments;
 
     /**
-     * @return A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-     * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-     * advertising the same prefixes.
+     * @return A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+     * Structure is documented below.
      * 
      */
     public Optional> linkedInterconnectAttachments() {
@@ -93,6 +89,7 @@ public Optional> linkedInterconne
 
     /**
      * The URIs of linked Router appliance resources
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedRouterApplianceInstances")
@@ -100,6 +97,7 @@ public Optional> linkedInterconne
 
     /**
      * @return The URIs of linked Router appliance resources
+     * Structure is documented below.
      * 
      */
     public Optional> linkedRouterApplianceInstances() {
@@ -108,6 +106,7 @@ public Optional> linkedRouterApp
 
     /**
      * VPC network that is associated with the spoke.
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedVpcNetwork")
@@ -115,6 +114,7 @@ public Optional> linkedRouterApp
 
     /**
      * @return VPC network that is associated with the spoke.
+     * Structure is documented below.
      * 
      */
     public Optional> linkedVpcNetwork() {
@@ -123,6 +123,7 @@ public Optional> linkedVpcNetwork() {
 
     /**
      * The URIs of linked VPN tunnel resources
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedVpnTunnels")
@@ -130,6 +131,7 @@ public Optional> linkedVpcNetwork() {
 
     /**
      * @return The URIs of linked VPN tunnel resources
+     * Structure is documented below.
      * 
      */
     public Optional> linkedVpnTunnels() {
@@ -139,6 +141,8 @@ public Optional> linkedVpnTunnels() {
     /**
      * The location for the resource
      * 
+     * ***
+     * 
      */
     @Import(name="location", required=true)
     private Output location;
@@ -146,6 +150,8 @@ public Optional> linkedVpnTunnels() {
     /**
      * @return The location for the resource
      * 
+     * ***
+     * 
      */
     public Output location() {
         return this.location;
@@ -167,14 +173,16 @@ public Optional> name() {
     }
 
     /**
-     * The project for the resource
+     * The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     @Import(name="project")
     private @Nullable Output project;
 
     /**
-     * @return The project for the resource
+     * @return The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     public Optional> project() {
@@ -257,10 +265,9 @@ public Builder hub(String hub) {
         }
 
         /**
-         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for
-         * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-         * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-         * `effective_labels` for all of the labels present on the resource.
+         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+         * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+         * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
          * @return builder
          * 
@@ -271,10 +278,9 @@ public Builder labels(@Nullable Output> labels) {
         }
 
         /**
-         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for
-         * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-         * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-         * `effective_labels` for all of the labels present on the resource.
+         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+         * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+         * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
          * @return builder
          * 
@@ -284,9 +290,8 @@ public Builder labels(Map labels) {
         }
 
         /**
-         * @param linkedInterconnectAttachments A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-         * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-         * advertising the same prefixes.
+         * @param linkedInterconnectAttachments A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -297,9 +302,8 @@ public Builder linkedInterconnectAttachments(@Nullable Output link
 
         /**
          * @param linkedVpcNetwork VPC network that is associated with the spoke.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -352,6 +360,7 @@ public Builder linkedVpcNetwork(SpokeLinkedVpcNetworkArgs linkedVpcNetwork) {
 
         /**
          * @param linkedVpnTunnels The URIs of linked VPN tunnel resources
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -363,6 +372,7 @@ public Builder linkedVpnTunnels(@Nullable Output link
 
         /**
          * @param linkedVpnTunnels The URIs of linked VPN tunnel resources
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -374,6 +384,8 @@ public Builder linkedVpnTunnels(SpokeLinkedVpnTunnelsArgs linkedVpnTunnels) {
         /**
          * @param location The location for the resource
          * 
+         * ***
+         * 
          * @return builder
          * 
          */
@@ -385,6 +397,8 @@ public Builder location(Output location) {
         /**
          * @param location The location for the resource
          * 
+         * ***
+         * 
          * @return builder
          * 
          */
@@ -414,7 +428,8 @@ public Builder name(String name) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
@@ -425,7 +440,8 @@ public Builder project(@Nullable Output project) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/HubState.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/HubState.java
index ff1605c0ec..4f1a9654cc 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/HubState.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/HubState.java
@@ -6,7 +6,6 @@
 import com.pulumi.core.Output;
 import com.pulumi.core.annotations.Import;
 import com.pulumi.gcp.networkconnectivity.inputs.HubRoutingVpcArgs;
-import java.lang.Object;
 import java.lang.String;
 import java.util.List;
 import java.util.Map;
@@ -54,19 +53,18 @@ public Optional> description() {
      * 
      */
     @Import(name="effectiveLabels")
-    private @Nullable Output> effectiveLabels;
+    private @Nullable Output> effectiveLabels;
 
     /**
      * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
      * 
      */
-    public Optional>> effectiveLabels() {
+    public Optional>> effectiveLabels() {
         return Optional.ofNullable(this.effectiveLabels);
     }
 
     /**
      * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-     * 
      * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
      * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
@@ -76,7 +74,6 @@ public Optional>> effectiveLabels() {
 
     /**
      * @return Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-     * 
      * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
      * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
@@ -105,14 +102,16 @@ public Optional> name() {
     }
 
     /**
-     * The project for the resource
+     * The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     @Import(name="project")
     private @Nullable Output project;
 
     /**
-     * @return The project for the resource
+     * @return The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     public Optional> project() {
@@ -120,22 +119,25 @@ public Optional> project() {
     }
 
     /**
-     * The combination of labels configured directly on the resource and default labels configured on the provider.
+     * The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
     @Import(name="pulumiLabels")
-    private @Nullable Output> pulumiLabels;
+    private @Nullable Output> pulumiLabels;
 
     /**
-     * @return The combination of labels configured directly on the resource and default labels configured on the provider.
+     * @return The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
-    public Optional>> pulumiLabels() {
+    public Optional>> pulumiLabels() {
         return Optional.ofNullable(this.pulumiLabels);
     }
 
     /**
      * The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
+     * Structure is documented below.
      * 
      */
     @Import(name="routingVpcs")
@@ -143,6 +145,7 @@ public Optional>> pulumiLabels() {
 
     /**
      * @return The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
+     * Structure is documented below.
      * 
      */
     public Optional>> routingVpcs() {
@@ -150,14 +153,14 @@ public Optional>> routingVpcs() {
     }
 
     /**
-     * Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * Output only. The current lifecycle state of this hub.
      * 
      */
     @Import(name="state")
     private @Nullable Output state;
 
     /**
-     * @return Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * @return Output only. The current lifecycle state of this hub.
      * 
      */
     public Optional> state() {
@@ -276,7 +279,7 @@ public Builder description(String description) {
          * @return builder
          * 
          */
-        public Builder effectiveLabels(@Nullable Output> effectiveLabels) {
+        public Builder effectiveLabels(@Nullable Output> effectiveLabels) {
             $.effectiveLabels = effectiveLabels;
             return this;
         }
@@ -287,13 +290,12 @@ public Builder effectiveLabels(@Nullable Output> effectiveLab
          * @return builder
          * 
          */
-        public Builder effectiveLabels(Map effectiveLabels) {
+        public Builder effectiveLabels(Map effectiveLabels) {
             return effectiveLabels(Output.of(effectiveLabels));
         }
 
         /**
          * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-         * 
          * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
          * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
@@ -307,7 +309,6 @@ public Builder labels(@Nullable Output> labels) {
 
         /**
          * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
-         * 
          * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
          * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
@@ -344,7 +345,8 @@ public Builder name(String name) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
@@ -355,7 +357,8 @@ public Builder project(@Nullable Output project) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
@@ -365,28 +368,31 @@ public Builder project(String project) {
         }
 
         /**
-         * @param pulumiLabels The combination of labels configured directly on the resource and default labels configured on the provider.
+         * @param pulumiLabels The combination of labels configured directly on the resource
+         * and default labels configured on the provider.
          * 
          * @return builder
          * 
          */
-        public Builder pulumiLabels(@Nullable Output> pulumiLabels) {
+        public Builder pulumiLabels(@Nullable Output> pulumiLabels) {
             $.pulumiLabels = pulumiLabels;
             return this;
         }
 
         /**
-         * @param pulumiLabels The combination of labels configured directly on the resource and default labels configured on the provider.
+         * @param pulumiLabels The combination of labels configured directly on the resource
+         * and default labels configured on the provider.
          * 
          * @return builder
          * 
          */
-        public Builder pulumiLabels(Map pulumiLabels) {
+        public Builder pulumiLabels(Map pulumiLabels) {
             return pulumiLabels(Output.of(pulumiLabels));
         }
 
         /**
          * @param routingVpcs The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -398,6 +404,7 @@ public Builder routingVpcs(@Nullable Output> routingVpcs
 
         /**
          * @param routingVpcs The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -408,6 +415,7 @@ public Builder routingVpcs(List routingVpcs) {
 
         /**
          * @param routingVpcs The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -417,7 +425,7 @@ public Builder routingVpcs(HubRoutingVpcArgs... routingVpcs) {
         }
 
         /**
-         * @param state Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+         * @param state Output only. The current lifecycle state of this hub.
          * 
          * @return builder
          * 
@@ -428,7 +436,7 @@ public Builder state(@Nullable Output state) {
         }
 
         /**
-         * @param state Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+         * @param state Output only. The current lifecycle state of this hub.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesArgs.java
index 0d7332ae57..750ca2d76b 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesArgs.java
@@ -18,6 +18,7 @@ public final class SpokeLinkedRouterApplianceInstancesArgs extends com.pulumi.re
 
     /**
      * The list of router appliance instances
+     * Structure is documented below.
      * 
      */
     @Import(name="instances", required=true)
@@ -25,6 +26,7 @@ public final class SpokeLinkedRouterApplianceInstancesArgs extends com.pulumi.re
 
     /**
      * @return The list of router appliance instances
+     * Structure is documented below.
      * 
      */
     public Output> instances() {
@@ -73,6 +75,7 @@ public Builder(SpokeLinkedRouterApplianceInstancesArgs defaults) {
 
         /**
          * @param instances The list of router appliance instances
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -84,6 +87,7 @@ public Builder instances(Output i
 
         /**
          * @param instances The list of router appliance instances
+         * Structure is documented below.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.java
index 2822ec9795..2a32672d9d 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeLinkedRouterApplianceInstancesInstanceArgs.java
@@ -33,8 +33,6 @@ public Optional> ipAddress() {
     /**
      * The URI of the virtual machine resource
      * 
-     * ***
-     * 
      */
     @Import(name="virtualMachine")
     private @Nullable Output virtualMachine;
@@ -42,8 +40,6 @@ public Optional> ipAddress() {
     /**
      * @return The URI of the virtual machine resource
      * 
-     * ***
-     * 
      */
     public Optional> virtualMachine() {
         return Optional.ofNullable(this.virtualMachine);
@@ -98,8 +94,6 @@ public Builder ipAddress(String ipAddress) {
         /**
          * @param virtualMachine The URI of the virtual machine resource
          * 
-         * ***
-         * 
          * @return builder
          * 
          */
@@ -111,8 +105,6 @@ public Builder virtualMachine(@Nullable Output virtualMachine) {
         /**
          * @param virtualMachine The URI of the virtual machine resource
          * 
-         * ***
-         * 
          * @return builder
          * 
          */
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeState.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeState.java
index 3f57f86841..d32c830863 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeState.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/inputs/SpokeState.java
@@ -9,7 +9,6 @@
 import com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedRouterApplianceInstancesArgs;
 import com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedVpcNetworkArgs;
 import com.pulumi.gcp.networkconnectivity.inputs.SpokeLinkedVpnTunnelsArgs;
-import java.lang.Object;
 import java.lang.String;
 import java.util.Map;
 import java.util.Objects;
@@ -56,13 +55,13 @@ public Optional> description() {
      * 
      */
     @Import(name="effectiveLabels")
-    private @Nullable Output> effectiveLabels;
+    private @Nullable Output> effectiveLabels;
 
     /**
      * @return All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
      * 
      */
-    public Optional>> effectiveLabels() {
+    public Optional>> effectiveLabels() {
         return Optional.ofNullable(this.effectiveLabels);
     }
 
@@ -82,20 +81,18 @@ public Optional> hub() {
     }
 
     /**
-     * Optional labels in key:value format. For more information about labels, see [Requirements for
-     * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-     * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-     * `effective_labels` for all of the labels present on the resource.
+     * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+     * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
      */
     @Import(name="labels")
     private @Nullable Output> labels;
 
     /**
-     * @return Optional labels in key:value format. For more information about labels, see [Requirements for
-     * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-     * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-     * `effective_labels` for all of the labels present on the resource.
+     * @return Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+     * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+     * Please refer to the field `effective_labels` for all of the labels present on the resource.
      * 
      */
     public Optional>> labels() {
@@ -103,18 +100,16 @@ public Optional>> labels() {
     }
 
     /**
-     * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-     * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-     * advertising the same prefixes.
+     * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedInterconnectAttachments")
     private @Nullable Output linkedInterconnectAttachments;
 
     /**
-     * @return A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-     * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-     * advertising the same prefixes.
+     * @return A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+     * Structure is documented below.
      * 
      */
     public Optional> linkedInterconnectAttachments() {
@@ -123,6 +118,7 @@ public Optional> linkedInterconne
 
     /**
      * The URIs of linked Router appliance resources
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedRouterApplianceInstances")
@@ -130,6 +126,7 @@ public Optional> linkedInterconne
 
     /**
      * @return The URIs of linked Router appliance resources
+     * Structure is documented below.
      * 
      */
     public Optional> linkedRouterApplianceInstances() {
@@ -138,6 +135,7 @@ public Optional> linkedRouterApp
 
     /**
      * VPC network that is associated with the spoke.
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedVpcNetwork")
@@ -145,6 +143,7 @@ public Optional> linkedRouterApp
 
     /**
      * @return VPC network that is associated with the spoke.
+     * Structure is documented below.
      * 
      */
     public Optional> linkedVpcNetwork() {
@@ -153,6 +152,7 @@ public Optional> linkedVpcNetwork() {
 
     /**
      * The URIs of linked VPN tunnel resources
+     * Structure is documented below.
      * 
      */
     @Import(name="linkedVpnTunnels")
@@ -160,6 +160,7 @@ public Optional> linkedVpcNetwork() {
 
     /**
      * @return The URIs of linked VPN tunnel resources
+     * Structure is documented below.
      * 
      */
     public Optional> linkedVpnTunnels() {
@@ -169,6 +170,8 @@ public Optional> linkedVpnTunnels() {
     /**
      * The location for the resource
      * 
+     * ***
+     * 
      */
     @Import(name="location")
     private @Nullable Output location;
@@ -176,6 +179,8 @@ public Optional> linkedVpnTunnels() {
     /**
      * @return The location for the resource
      * 
+     * ***
+     * 
      */
     public Optional> location() {
         return Optional.ofNullable(this.location);
@@ -197,14 +202,16 @@ public Optional> name() {
     }
 
     /**
-     * The project for the resource
+     * The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     @Import(name="project")
     private @Nullable Output project;
 
     /**
-     * @return The project for the resource
+     * @return The ID of the project in which the resource belongs.
+     * If it is not provided, the provider project is used.
      * 
      */
     public Optional> project() {
@@ -212,29 +219,31 @@ public Optional> project() {
     }
 
     /**
-     * The combination of labels configured directly on the resource and default labels configured on the provider.
+     * The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
     @Import(name="pulumiLabels")
-    private @Nullable Output> pulumiLabels;
+    private @Nullable Output> pulumiLabels;
 
     /**
-     * @return The combination of labels configured directly on the resource and default labels configured on the provider.
+     * @return The combination of labels configured directly on the resource
+     * and default labels configured on the provider.
      * 
      */
-    public Optional>> pulumiLabels() {
+    public Optional>> pulumiLabels() {
         return Optional.ofNullable(this.pulumiLabels);
     }
 
     /**
-     * Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * Output only. The current lifecycle state of this spoke.
      * 
      */
     @Import(name="state")
     private @Nullable Output state;
 
     /**
-     * @return Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+     * @return Output only. The current lifecycle state of this spoke.
      * 
      */
     public Optional> state() {
@@ -358,7 +367,7 @@ public Builder description(String description) {
          * @return builder
          * 
          */
-        public Builder effectiveLabels(@Nullable Output> effectiveLabels) {
+        public Builder effectiveLabels(@Nullable Output> effectiveLabels) {
             $.effectiveLabels = effectiveLabels;
             return this;
         }
@@ -369,7 +378,7 @@ public Builder effectiveLabels(@Nullable Output> effectiveLab
          * @return builder
          * 
          */
-        public Builder effectiveLabels(Map effectiveLabels) {
+        public Builder effectiveLabels(Map effectiveLabels) {
             return effectiveLabels(Output.of(effectiveLabels));
         }
 
@@ -395,10 +404,9 @@ public Builder hub(String hub) {
         }
 
         /**
-         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for
-         * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-         * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-         * `effective_labels` for all of the labels present on the resource.
+         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+         * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+         * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
          * @return builder
          * 
@@ -409,10 +417,9 @@ public Builder labels(@Nullable Output> labels) {
         }
 
         /**
-         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for
-         * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is
-         * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field
-         * `effective_labels` for all of the labels present on the resource.
+         * @param labels Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
+         * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
+         * Please refer to the field `effective_labels` for all of the labels present on the resource.
          * 
          * @return builder
          * 
@@ -422,9 +429,8 @@ public Builder labels(Map labels) {
         }
 
         /**
-         * @param linkedInterconnectAttachments A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same
-         * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of
-         * advertising the same prefixes.
+         * @param linkedInterconnectAttachments A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -435,9 +441,8 @@ public Builder linkedInterconnectAttachments(@Nullable Output link
 
         /**
          * @param linkedVpcNetwork VPC network that is associated with the spoke.
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -490,6 +499,7 @@ public Builder linkedVpcNetwork(SpokeLinkedVpcNetworkArgs linkedVpcNetwork) {
 
         /**
          * @param linkedVpnTunnels The URIs of linked VPN tunnel resources
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -501,6 +511,7 @@ public Builder linkedVpnTunnels(@Nullable Output link
 
         /**
          * @param linkedVpnTunnels The URIs of linked VPN tunnel resources
+         * Structure is documented below.
          * 
          * @return builder
          * 
@@ -512,6 +523,8 @@ public Builder linkedVpnTunnels(SpokeLinkedVpnTunnelsArgs linkedVpnTunnels) {
         /**
          * @param location The location for the resource
          * 
+         * ***
+         * 
          * @return builder
          * 
          */
@@ -523,6 +536,8 @@ public Builder location(@Nullable Output location) {
         /**
          * @param location The location for the resource
          * 
+         * ***
+         * 
          * @return builder
          * 
          */
@@ -552,7 +567,8 @@ public Builder name(String name) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
@@ -563,7 +579,8 @@ public Builder project(@Nullable Output project) {
         }
 
         /**
-         * @param project The project for the resource
+         * @param project The ID of the project in which the resource belongs.
+         * If it is not provided, the provider project is used.
          * 
          * @return builder
          * 
@@ -573,28 +590,30 @@ public Builder project(String project) {
         }
 
         /**
-         * @param pulumiLabels The combination of labels configured directly on the resource and default labels configured on the provider.
+         * @param pulumiLabels The combination of labels configured directly on the resource
+         * and default labels configured on the provider.
          * 
          * @return builder
          * 
          */
-        public Builder pulumiLabels(@Nullable Output> pulumiLabels) {
+        public Builder pulumiLabels(@Nullable Output> pulumiLabels) {
             $.pulumiLabels = pulumiLabels;
             return this;
         }
 
         /**
-         * @param pulumiLabels The combination of labels configured directly on the resource and default labels configured on the provider.
+         * @param pulumiLabels The combination of labels configured directly on the resource
+         * and default labels configured on the provider.
          * 
          * @return builder
          * 
          */
-        public Builder pulumiLabels(Map pulumiLabels) {
+        public Builder pulumiLabels(Map pulumiLabels) {
             return pulumiLabels(Output.of(pulumiLabels));
         }
 
         /**
-         * @param state Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+         * @param state Output only. The current lifecycle state of this spoke.
          * 
          * @return builder
          * 
@@ -605,7 +624,7 @@ public Builder state(@Nullable Output state) {
         }
 
         /**
-         * @param state Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING
+         * @param state Output only. The current lifecycle state of this spoke.
          * 
          * @return builder
          * 
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstances.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstances.java
index 55506b5395..4819e45619 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstances.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstances.java
@@ -14,6 +14,7 @@
 public final class SpokeLinkedRouterApplianceInstances {
     /**
      * @return The list of router appliance instances
+     * Structure is documented below.
      * 
      */
     private List instances;
@@ -26,6 +27,7 @@ public final class SpokeLinkedRouterApplianceInstances {
     private SpokeLinkedRouterApplianceInstances() {}
     /**
      * @return The list of router appliance instances
+     * Structure is documented below.
      * 
      */
     public List instances() {
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstancesInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstancesInstance.java
index 3627f98597..0623436697 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstancesInstance.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkconnectivity/outputs/SpokeLinkedRouterApplianceInstancesInstance.java
@@ -19,8 +19,6 @@ public final class SpokeLinkedRouterApplianceInstancesInstance {
     /**
      * @return The URI of the virtual machine resource
      * 
-     * ***
-     * 
      */
     private @Nullable String virtualMachine;
 
@@ -35,8 +33,6 @@ public Optional ipAddress() {
     /**
      * @return The URI of the virtual machine resource
      * 
-     * ***
-     * 
      */
     public Optional virtualMachine() {
         return Optional.ofNullable(this.virtualMachine);
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/ConnectivityTest.java b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/ConnectivityTest.java
index b06787df89..ff6cc0f79a 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/ConnectivityTest.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkmanagement/ConnectivityTest.java
@@ -457,13 +457,20 @@ public ConnectivityTest(String name, ConnectivityTestArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ConnectivityTest(String name, ConnectivityTestArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkmanagement/connectivityTest:ConnectivityTest", name, args == null ? ConnectivityTestArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkmanagement/connectivityTest:ConnectivityTest", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ConnectivityTest(String name, Output id, @Nullable ConnectivityTestState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkmanagement/connectivityTest:ConnectivityTest", name, state, makeResourceOptions(options, id));
     }
 
+    private static ConnectivityTestArgs makeArgs(ConnectivityTestArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ConnectivityTestArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroup.java
index 5532e087a8..06708d41f4 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroup.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroup.java
@@ -435,13 +435,20 @@ public AddressGroup(String name, AddressGroupArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public AddressGroup(String name, AddressGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/addressGroup:AddressGroup", name, args == null ? AddressGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/addressGroup:AddressGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private AddressGroup(String name, Output id, @Nullable AddressGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/addressGroup:AddressGroup", name, state, makeResourceOptions(options, id));
     }
 
+    private static AddressGroupArgs makeArgs(AddressGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? AddressGroupArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamBinding.java
index e92cd80b29..0d5845f445 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamBinding.java
@@ -217,13 +217,20 @@ public AddressGroupIamBinding(String name, AddressGroupIamBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public AddressGroupIamBinding(String name, AddressGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/addressGroupIamBinding:AddressGroupIamBinding", name, args == null ? AddressGroupIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/addressGroupIamBinding:AddressGroupIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private AddressGroupIamBinding(String name, Output id, @Nullable AddressGroupIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/addressGroupIamBinding:AddressGroupIamBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static AddressGroupIamBindingArgs makeArgs(AddressGroupIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? AddressGroupIamBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamMember.java
index 0da8591e73..411a142e30 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamMember.java
@@ -216,13 +216,20 @@ public AddressGroupIamMember(String name, AddressGroupIamMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public AddressGroupIamMember(String name, AddressGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/addressGroupIamMember:AddressGroupIamMember", name, args == null ? AddressGroupIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/addressGroupIamMember:AddressGroupIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private AddressGroupIamMember(String name, Output id, @Nullable AddressGroupIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/addressGroupIamMember:AddressGroupIamMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static AddressGroupIamMemberArgs makeArgs(AddressGroupIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? AddressGroupIamMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamPolicy.java
index 95d05e07c9..c23c7d84f6 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AddressGroupIamPolicy.java
@@ -172,13 +172,20 @@ public AddressGroupIamPolicy(String name, AddressGroupIamPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public AddressGroupIamPolicy(String name, AddressGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/addressGroupIamPolicy:AddressGroupIamPolicy", name, args == null ? AddressGroupIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/addressGroupIamPolicy:AddressGroupIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private AddressGroupIamPolicy(String name, Output id, @Nullable AddressGroupIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/addressGroupIamPolicy:AddressGroupIamPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static AddressGroupIamPolicyArgs makeArgs(AddressGroupIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? AddressGroupIamPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AuthorizationPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AuthorizationPolicy.java
index 2f71e174f0..7af8d233c6 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AuthorizationPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/AuthorizationPolicy.java
@@ -342,13 +342,20 @@ public AuthorizationPolicy(String name, AuthorizationPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public AuthorizationPolicy(String name, AuthorizationPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/authorizationPolicy:AuthorizationPolicy", name, args == null ? AuthorizationPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/authorizationPolicy:AuthorizationPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private AuthorizationPolicy(String name, Output id, @Nullable AuthorizationPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/authorizationPolicy:AuthorizationPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static AuthorizationPolicyArgs makeArgs(AuthorizationPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? AuthorizationPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ClientTlsPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ClientTlsPolicy.java
index 43cb90de18..24f6b08576 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ClientTlsPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ClientTlsPolicy.java
@@ -351,13 +351,20 @@ public ClientTlsPolicy(String name, @Nullable ClientTlsPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ClientTlsPolicy(String name, @Nullable ClientTlsPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/clientTlsPolicy:ClientTlsPolicy", name, args == null ? ClientTlsPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/clientTlsPolicy:ClientTlsPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ClientTlsPolicy(String name, Output id, @Nullable ClientTlsPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/clientTlsPolicy:ClientTlsPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static ClientTlsPolicyArgs makeArgs(@Nullable ClientTlsPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ClientTlsPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpoint.java
index 88216a98f1..6376851cda 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpoint.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpoint.java
@@ -316,13 +316,20 @@ public FirewallEndpoint(String name, FirewallEndpointArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public FirewallEndpoint(String name, FirewallEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/firewallEndpoint:FirewallEndpoint", name, args == null ? FirewallEndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/firewallEndpoint:FirewallEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private FirewallEndpoint(String name, Output id, @Nullable FirewallEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/firewallEndpoint:FirewallEndpoint", name, state, makeResourceOptions(options, id));
     }
 
+    private static FirewallEndpointArgs makeArgs(FirewallEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? FirewallEndpointArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpointAssociation.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpointAssociation.java
index 27ca191625..fff6f7ce94 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpointAssociation.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/FirewallEndpointAssociation.java
@@ -345,13 +345,20 @@ public FirewallEndpointAssociation(String name, FirewallEndpointAssociationArgs
      * @param options A bag of options that control this resource's behavior.
      */
     public FirewallEndpointAssociation(String name, FirewallEndpointAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/firewallEndpointAssociation:FirewallEndpointAssociation", name, args == null ? FirewallEndpointAssociationArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/firewallEndpointAssociation:FirewallEndpointAssociation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private FirewallEndpointAssociation(String name, Output id, @Nullable FirewallEndpointAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/firewallEndpointAssociation:FirewallEndpointAssociation", name, state, makeResourceOptions(options, id));
     }
 
+    private static FirewallEndpointAssociationArgs makeArgs(FirewallEndpointAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? FirewallEndpointAssociationArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicy.java
index 2e1a051d1e..0eafc41787 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicy.java
@@ -385,13 +385,20 @@ public GatewaySecurityPolicy(String name, @Nullable GatewaySecurityPolicyArgs ar
      * @param options A bag of options that control this resource's behavior.
      */
     public GatewaySecurityPolicy(String name, @Nullable GatewaySecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/gatewaySecurityPolicy:GatewaySecurityPolicy", name, args == null ? GatewaySecurityPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/gatewaySecurityPolicy:GatewaySecurityPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private GatewaySecurityPolicy(String name, Output id, @Nullable GatewaySecurityPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/gatewaySecurityPolicy:GatewaySecurityPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static GatewaySecurityPolicyArgs makeArgs(@Nullable GatewaySecurityPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? GatewaySecurityPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicyRule.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicyRule.java
index 07eb9f2da5..ca3d804cfd 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicyRule.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/GatewaySecurityPolicyRule.java
@@ -393,13 +393,20 @@ public GatewaySecurityPolicyRule(String name, GatewaySecurityPolicyRuleArgs args
      * @param options A bag of options that control this resource's behavior.
      */
     public GatewaySecurityPolicyRule(String name, GatewaySecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/gatewaySecurityPolicyRule:GatewaySecurityPolicyRule", name, args == null ? GatewaySecurityPolicyRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/gatewaySecurityPolicyRule:GatewaySecurityPolicyRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private GatewaySecurityPolicyRule(String name, Output id, @Nullable GatewaySecurityPolicyRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/gatewaySecurityPolicyRule:GatewaySecurityPolicyRule", name, state, makeResourceOptions(options, id));
     }
 
+    private static GatewaySecurityPolicyRuleArgs makeArgs(GatewaySecurityPolicyRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? GatewaySecurityPolicyRuleArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfile.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfile.java
index b3566cd033..e2dbd10532 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfile.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfile.java
@@ -364,13 +364,20 @@ public SecurityProfile(String name, SecurityProfileArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SecurityProfile(String name, SecurityProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/securityProfile:SecurityProfile", name, args == null ? SecurityProfileArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/securityProfile:SecurityProfile", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SecurityProfile(String name, Output id, @Nullable SecurityProfileState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/securityProfile:SecurityProfile", name, state, makeResourceOptions(options, id));
     }
 
+    private static SecurityProfileArgs makeArgs(SecurityProfileArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SecurityProfileArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfileGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfileGroup.java
index ed584becab..9e99b5b203 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfileGroup.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/SecurityProfileGroup.java
@@ -288,13 +288,20 @@ public SecurityProfileGroup(String name, @Nullable SecurityProfileGroupArgs args
      * @param options A bag of options that control this resource's behavior.
      */
     public SecurityProfileGroup(String name, @Nullable SecurityProfileGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/securityProfileGroup:SecurityProfileGroup", name, args == null ? SecurityProfileGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/securityProfileGroup:SecurityProfileGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SecurityProfileGroup(String name, Output id, @Nullable SecurityProfileGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/securityProfileGroup:SecurityProfileGroup", name, state, makeResourceOptions(options, id));
     }
 
+    private static SecurityProfileGroupArgs makeArgs(@Nullable SecurityProfileGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SecurityProfileGroupArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ServerTlsPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ServerTlsPolicy.java
index bc617d7257..97c84ad57f 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ServerTlsPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/ServerTlsPolicy.java
@@ -484,13 +484,20 @@ public ServerTlsPolicy(String name, @Nullable ServerTlsPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ServerTlsPolicy(String name, @Nullable ServerTlsPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/serverTlsPolicy:ServerTlsPolicy", name, args == null ? ServerTlsPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/serverTlsPolicy:ServerTlsPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ServerTlsPolicy(String name, Output id, @Nullable ServerTlsPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/serverTlsPolicy:ServerTlsPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static ServerTlsPolicyArgs makeArgs(@Nullable ServerTlsPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ServerTlsPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/TlsInspectionPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/TlsInspectionPolicy.java
index 80b00d3904..14864b35c5 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/TlsInspectionPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/TlsInspectionPolicy.java
@@ -282,7 +282,7 @@
  *         var defaultCaPoolIamMember = new CaPoolIamMember("defaultCaPoolIamMember", CaPoolIamMemberArgs.builder()
  *             .caPool(default_.id())
  *             .role("roles/privateca.certificateManager")
- *             .member(nsSa.email().applyValue(email -> String.format("serviceAccount:%s", email)))
+ *             .member(nsSa.member())
  *             .build());
  * 
  *         var defaultTrustConfig = new TrustConfig("defaultTrustConfig", TrustConfigArgs.builder()
@@ -567,13 +567,20 @@ public TlsInspectionPolicy(String name, TlsInspectionPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public TlsInspectionPolicy(String name, TlsInspectionPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy", name, args == null ? TlsInspectionPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private TlsInspectionPolicy(String name, Output id, @Nullable TlsInspectionPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/tlsInspectionPolicy:TlsInspectionPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static TlsInspectionPolicyArgs makeArgs(TlsInspectionPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? TlsInspectionPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/UrlList.java b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/UrlList.java
index 9cd5d8c77f..ec27d716cd 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/UrlList.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networksecurity/UrlList.java
@@ -267,13 +267,20 @@ public UrlList(String name, UrlListArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public UrlList(String name, UrlListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networksecurity/urlList:UrlList", name, args == null ? UrlListArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networksecurity/urlList:UrlList", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private UrlList(String name, Output id, @Nullable UrlListState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networksecurity/urlList:UrlList", name, state, makeResourceOptions(options, id));
     }
 
+    private static UrlListArgs makeArgs(UrlListArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? UrlListArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheKeyset.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheKeyset.java
index 441710f245..710d534708 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheKeyset.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheKeyset.java
@@ -335,13 +335,20 @@ public EdgeCacheKeyset(String name, @Nullable EdgeCacheKeysetArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public EdgeCacheKeyset(String name, @Nullable EdgeCacheKeysetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/edgeCacheKeyset:EdgeCacheKeyset", name, args == null ? EdgeCacheKeysetArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/edgeCacheKeyset:EdgeCacheKeyset", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private EdgeCacheKeyset(String name, Output id, @Nullable EdgeCacheKeysetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/edgeCacheKeyset:EdgeCacheKeyset", name, state, makeResourceOptions(options, id));
     }
 
+    private static EdgeCacheKeysetArgs makeArgs(@Nullable EdgeCacheKeysetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? EdgeCacheKeysetArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheOrigin.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheOrigin.java
index 68fadabed3..c57dcc5ed5 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheOrigin.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheOrigin.java
@@ -572,13 +572,20 @@ public EdgeCacheOrigin(String name, EdgeCacheOriginArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public EdgeCacheOrigin(String name, EdgeCacheOriginArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/edgeCacheOrigin:EdgeCacheOrigin", name, args == null ? EdgeCacheOriginArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/edgeCacheOrigin:EdgeCacheOrigin", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private EdgeCacheOrigin(String name, Output id, @Nullable EdgeCacheOriginState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/edgeCacheOrigin:EdgeCacheOrigin", name, state, makeResourceOptions(options, id));
     }
 
+    private static EdgeCacheOriginArgs makeArgs(EdgeCacheOriginArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? EdgeCacheOriginArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheService.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheService.java
index eb37424847..d35ac6b4e5 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheService.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EdgeCacheService.java
@@ -795,13 +795,20 @@ public EdgeCacheService(String name, EdgeCacheServiceArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public EdgeCacheService(String name, EdgeCacheServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/edgeCacheService:EdgeCacheService", name, args == null ? EdgeCacheServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/edgeCacheService:EdgeCacheService", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private EdgeCacheService(String name, Output id, @Nullable EdgeCacheServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/edgeCacheService:EdgeCacheService", name, state, makeResourceOptions(options, id));
     }
 
+    private static EdgeCacheServiceArgs makeArgs(EdgeCacheServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? EdgeCacheServiceArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EndpointPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EndpointPolicy.java
index 6662f8f40c..368aa76b7e 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EndpointPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/EndpointPolicy.java
@@ -376,13 +376,20 @@ public EndpointPolicy(String name, EndpointPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public EndpointPolicy(String name, EndpointPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/endpointPolicy:EndpointPolicy", name, args == null ? EndpointPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/endpointPolicy:EndpointPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private EndpointPolicy(String name, Output id, @Nullable EndpointPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/endpointPolicy:EndpointPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static EndpointPolicyArgs makeArgs(EndpointPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? EndpointPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Gateway.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Gateway.java
index 8c55101e7e..d75100bafa 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Gateway.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Gateway.java
@@ -721,13 +721,20 @@ public Gateway(String name, GatewayArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Gateway(String name, GatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/gateway:Gateway", name, args == null ? GatewayArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/gateway:Gateway", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Gateway(String name, Output id, @Nullable GatewayState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/gateway:Gateway", name, state, makeResourceOptions(options, id));
     }
 
+    private static GatewayArgs makeArgs(GatewayArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? GatewayArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/GrpcRoute.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/GrpcRoute.java
index dee5015bf0..019774b1cf 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/GrpcRoute.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/GrpcRoute.java
@@ -447,13 +447,20 @@ public GrpcRoute(String name, GrpcRouteArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public GrpcRoute(String name, GrpcRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/grpcRoute:GrpcRoute", name, args == null ? GrpcRouteArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/grpcRoute:GrpcRoute", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private GrpcRoute(String name, Output id, @Nullable GrpcRouteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/grpcRoute:GrpcRoute", name, state, makeResourceOptions(options, id));
     }
 
+    private static GrpcRouteArgs makeArgs(GrpcRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? GrpcRouteArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/HttpRoute.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/HttpRoute.java
index 0fb4ebbf2f..5e87ee92cf 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/HttpRoute.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/HttpRoute.java
@@ -600,13 +600,20 @@ public HttpRoute(String name, HttpRouteArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public HttpRoute(String name, HttpRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/httpRoute:HttpRoute", name, args == null ? HttpRouteArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/httpRoute:HttpRoute", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private HttpRoute(String name, Output id, @Nullable HttpRouteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/httpRoute:HttpRoute", name, state, makeResourceOptions(options, id));
     }
 
+    private static HttpRouteArgs makeArgs(HttpRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? HttpRouteArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbRouteExtension.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbRouteExtension.java
index 1b2db4e7b0..a6402a32fa 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbRouteExtension.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbRouteExtension.java
@@ -232,13 +232,20 @@ public LbRouteExtension(String name, LbRouteExtensionArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public LbRouteExtension(String name, LbRouteExtensionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/lbRouteExtension:LbRouteExtension", name, args == null ? LbRouteExtensionArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/lbRouteExtension:LbRouteExtension", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private LbRouteExtension(String name, Output id, @Nullable LbRouteExtensionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/lbRouteExtension:LbRouteExtension", name, state, makeResourceOptions(options, id));
     }
 
+    private static LbRouteExtensionArgs makeArgs(LbRouteExtensionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? LbRouteExtensionArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbTrafficExtension.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbTrafficExtension.java
index 21ce133c72..5a87e983fd 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbTrafficExtension.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/LbTrafficExtension.java
@@ -234,13 +234,20 @@ public LbTrafficExtension(String name, LbTrafficExtensionArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public LbTrafficExtension(String name, LbTrafficExtensionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/lbTrafficExtension:LbTrafficExtension", name, args == null ? LbTrafficExtensionArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/lbTrafficExtension:LbTrafficExtension", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private LbTrafficExtension(String name, Output id, @Nullable LbTrafficExtensionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/lbTrafficExtension:LbTrafficExtension", name, state, makeResourceOptions(options, id));
     }
 
+    private static LbTrafficExtensionArgs makeArgs(LbTrafficExtensionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? LbTrafficExtensionArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Mesh.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Mesh.java
index 3d421275c3..f819b0d424 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Mesh.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/Mesh.java
@@ -304,13 +304,20 @@ public Mesh(String name, @Nullable MeshArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Mesh(String name, @Nullable MeshArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/mesh:Mesh", name, args == null ? MeshArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/mesh:Mesh", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Mesh(String name, Output id, @Nullable MeshState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/mesh:Mesh", name, state, makeResourceOptions(options, id));
     }
 
+    private static MeshArgs makeArgs(@Nullable MeshArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? MeshArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceBinding.java
index 3f03a0e332..d5abc73b22 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceBinding.java
@@ -265,13 +265,20 @@ public ServiceBinding(String name, ServiceBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ServiceBinding(String name, ServiceBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/serviceBinding:ServiceBinding", name, args == null ? ServiceBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/serviceBinding:ServiceBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ServiceBinding(String name, Output id, @Nullable ServiceBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/serviceBinding:ServiceBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static ServiceBindingArgs makeArgs(ServiceBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ServiceBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceLbPolicies.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceLbPolicies.java
index 135b30b13d..137d7b1864 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceLbPolicies.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/ServiceLbPolicies.java
@@ -349,13 +349,20 @@ public ServiceLbPolicies(String name, ServiceLbPoliciesArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ServiceLbPolicies(String name, ServiceLbPoliciesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/serviceLbPolicies:ServiceLbPolicies", name, args == null ? ServiceLbPoliciesArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/serviceLbPolicies:ServiceLbPolicies", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ServiceLbPolicies(String name, Output id, @Nullable ServiceLbPoliciesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/serviceLbPolicies:ServiceLbPolicies", name, state, makeResourceOptions(options, id));
     }
 
+    private static ServiceLbPoliciesArgs makeArgs(ServiceLbPoliciesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ServiceLbPoliciesArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TcpRoute.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TcpRoute.java
index e1b1d91d9d..732d9e9da2 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TcpRoute.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TcpRoute.java
@@ -534,13 +534,20 @@ public TcpRoute(String name, TcpRouteArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public TcpRoute(String name, TcpRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/tcpRoute:TcpRoute", name, args == null ? TcpRouteArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/tcpRoute:TcpRoute", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private TcpRoute(String name, Output id, @Nullable TcpRouteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/tcpRoute:TcpRoute", name, state, makeResourceOptions(options, id));
     }
 
+    private static TcpRouteArgs makeArgs(TcpRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? TcpRouteArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TlsRoute.java b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TlsRoute.java
index c5a13318cc..1de4af10bb 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TlsRoute.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/networkservices/TlsRoute.java
@@ -414,13 +414,20 @@ public TlsRoute(String name, TlsRouteArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public TlsRoute(String name, TlsRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:networkservices/tlsRoute:TlsRoute", name, args == null ? TlsRouteArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:networkservices/tlsRoute:TlsRoute", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private TlsRoute(String name, Output id, @Nullable TlsRouteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:networkservices/tlsRoute:TlsRoute", name, state, makeResourceOptions(options, id));
     }
 
+    private static TlsRouteArgs makeArgs(TlsRouteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? TlsRouteArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Environment.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Environment.java
index 2daa9b7c87..59dec22b88 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Environment.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Environment.java
@@ -257,13 +257,20 @@ public Environment(String name, EnvironmentArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Environment(String name, EnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/environment:Environment", name, args == null ? EnvironmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/environment:Environment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Environment(String name, Output id, @Nullable EnvironmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/environment:Environment", name, state, makeResourceOptions(options, id));
     }
 
+    private static EnvironmentArgs makeArgs(EnvironmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? EnvironmentArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Instance.java
index 1fda2bb3a0..8caca0a02f 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Instance.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Instance.java
@@ -952,13 +952,20 @@ public Instance(String name, InstanceArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/instance:Instance", name, state, makeResourceOptions(options, id));
     }
 
+    private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? InstanceArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamBinding.java
index aafddf3ee6..cf52e30aee 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamBinding.java
@@ -465,13 +465,20 @@ public InstanceIamBinding(String name, InstanceIamBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public InstanceIamBinding(String name, InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/instanceIamBinding:InstanceIamBinding", name, args == null ? InstanceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/instanceIamBinding:InstanceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private InstanceIamBinding(String name, Output id, @Nullable InstanceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/instanceIamBinding:InstanceIamBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static InstanceIamBindingArgs makeArgs(InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? InstanceIamBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamMember.java
index baddb0d5e3..7e87c07192 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamMember.java
@@ -464,13 +464,20 @@ public InstanceIamMember(String name, InstanceIamMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public InstanceIamMember(String name, InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/instanceIamMember:InstanceIamMember", name, args == null ? InstanceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/instanceIamMember:InstanceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private InstanceIamMember(String name, Output id, @Nullable InstanceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/instanceIamMember:InstanceIamMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static InstanceIamMemberArgs makeArgs(InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? InstanceIamMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamPolicy.java
index 1f9d15c85f..5846527a57 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/InstanceIamPolicy.java
@@ -420,13 +420,20 @@ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public InstanceIamPolicy(String name, InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/instanceIamPolicy:InstanceIamPolicy", name, args == null ? InstanceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/instanceIamPolicy:InstanceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private InstanceIamPolicy(String name, Output id, @Nullable InstanceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/instanceIamPolicy:InstanceIamPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static InstanceIamPolicyArgs makeArgs(InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? InstanceIamPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Location.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Location.java
index 903f1badd5..54d0bfaa16 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Location.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Location.java
@@ -110,13 +110,20 @@ public Location(String name, @Nullable LocationArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Location(String name, @Nullable LocationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/location:Location", name, args == null ? LocationArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/location:Location", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Location(String name, Output id, @Nullable LocationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/location:Location", name, state, makeResourceOptions(options, id));
     }
 
+    private static LocationArgs makeArgs(@Nullable LocationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? LocationArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Runtime.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Runtime.java
index 34d8c0e97d..30966e4b6d 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Runtime.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/Runtime.java
@@ -598,13 +598,20 @@ public Runtime(String name, RuntimeArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Runtime(String name, RuntimeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/runtime:Runtime", name, args == null ? RuntimeArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/runtime:Runtime", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Runtime(String name, Output id, @Nullable RuntimeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/runtime:Runtime", name, state, makeResourceOptions(options, id));
     }
 
+    private static RuntimeArgs makeArgs(RuntimeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? RuntimeArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamBinding.java
index e0b1054f3d..c281aab6d7 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamBinding.java
@@ -465,13 +465,20 @@ public RuntimeIamBinding(String name, RuntimeIamBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public RuntimeIamBinding(String name, RuntimeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/runtimeIamBinding:RuntimeIamBinding", name, args == null ? RuntimeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/runtimeIamBinding:RuntimeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private RuntimeIamBinding(String name, Output id, @Nullable RuntimeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/runtimeIamBinding:RuntimeIamBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static RuntimeIamBindingArgs makeArgs(RuntimeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? RuntimeIamBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamMember.java
index 30eb48b066..a6219ab771 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamMember.java
@@ -464,13 +464,20 @@ public RuntimeIamMember(String name, RuntimeIamMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public RuntimeIamMember(String name, RuntimeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/runtimeIamMember:RuntimeIamMember", name, args == null ? RuntimeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/runtimeIamMember:RuntimeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private RuntimeIamMember(String name, Output id, @Nullable RuntimeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/runtimeIamMember:RuntimeIamMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static RuntimeIamMemberArgs makeArgs(RuntimeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? RuntimeIamMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamPolicy.java
index 0e814ae3f3..e13d08021a 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/notebooks/RuntimeIamPolicy.java
@@ -420,13 +420,20 @@ public RuntimeIamPolicy(String name, RuntimeIamPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public RuntimeIamPolicy(String name, RuntimeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:notebooks/runtimeIamPolicy:RuntimeIamPolicy", name, args == null ? RuntimeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:notebooks/runtimeIamPolicy:RuntimeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private RuntimeIamPolicy(String name, Output id, @Nullable RuntimeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:notebooks/runtimeIamPolicy:RuntimeIamPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static RuntimeIamPolicyArgs makeArgs(RuntimeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? RuntimeIamPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/AccessApprovalSettings.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/AccessApprovalSettings.java
index 192ee604a2..257e78751e 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/AccessApprovalSettings.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/AccessApprovalSettings.java
@@ -337,13 +337,20 @@ public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/accessApprovalSettings:AccessApprovalSettings", name, args == null ? AccessApprovalSettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/accessApprovalSettings:AccessApprovalSettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private AccessApprovalSettings(String name, Output id, @Nullable AccessApprovalSettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/accessApprovalSettings:AccessApprovalSettings", name, state, makeResourceOptions(options, id));
     }
 
+    private static AccessApprovalSettingsArgs makeArgs(AccessApprovalSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? AccessApprovalSettingsArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/Folder.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/Folder.java
index 0db76c9e61..c9035793f0 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/Folder.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/Folder.java
@@ -205,13 +205,20 @@ public Folder(String name, FolderArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Folder(String name, FolderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/folder:Folder", name, args == null ? FolderArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/folder:Folder", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Folder(String name, Output id, @Nullable FolderState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/folder:Folder", name, state, makeResourceOptions(options, id));
     }
 
+    private static FolderArgs makeArgs(FolderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? FolderArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMBinding.java
index edb1608e66..e6e85c9b35 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMBinding.java
@@ -169,13 +169,20 @@ public IAMBinding(String name, IAMBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMBinding(String name, IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/iAMBinding:IAMBinding", name, args == null ? IAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/iAMBinding:IAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMBinding(String name, Output id, @Nullable IAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/iAMBinding:IAMBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMBindingArgs makeArgs(IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMCustomRole.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMCustomRole.java
index fc82e46599..f34cbffcd7 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMCustomRole.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMCustomRole.java
@@ -223,13 +223,20 @@ public IAMCustomRole(String name, IAMCustomRoleArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMCustomRole(String name, IAMCustomRoleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/iAMCustomRole:IAMCustomRole", name, args == null ? IAMCustomRoleArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/iAMCustomRole:IAMCustomRole", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMCustomRole(String name, Output id, @Nullable IAMCustomRoleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/iAMCustomRole:IAMCustomRole", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMCustomRoleArgs makeArgs(IAMCustomRoleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMCustomRoleArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMMember.java
index 3c8dc28eee..a3fe9b20fb 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMMember.java
@@ -793,13 +793,20 @@ public IAMMember(String name, IAMMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMMember(String name, IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/iAMMember:IAMMember", name, args == null ? IAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/iAMMember:IAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMMember(String name, Output id, @Nullable IAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/iAMMember:IAMMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMMemberArgs makeArgs(IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMPolicy.java
index 65bb8d7e31..94ea67c0d1 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IAMPolicy.java
@@ -761,13 +761,20 @@ public IAMPolicy(String name, IAMPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMPolicy(String name, IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/iAMPolicy:IAMPolicy", name, args == null ? IAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/iAMPolicy:IAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMPolicy(String name, Output id, @Nullable IAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/iAMPolicy:IAMPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMPolicyArgs makeArgs(IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IamAuditConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IamAuditConfig.java
index 6efe78dbd5..681515e061 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/IamAuditConfig.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/IamAuditConfig.java
@@ -149,13 +149,20 @@ public IamAuditConfig(String name, IamAuditConfigArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IamAuditConfig(String name, IamAuditConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/iamAuditConfig:IamAuditConfig", name, args == null ? IamAuditConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/iamAuditConfig:IamAuditConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IamAuditConfig(String name, Output id, @Nullable IamAuditConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/iamAuditConfig:IamAuditConfig", name, state, makeResourceOptions(options, id));
     }
 
+    private static IamAuditConfigArgs makeArgs(IamAuditConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IamAuditConfigArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/Policy.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/Policy.java
index ecbcdb37e4..382ab9ebe7 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/Policy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/Policy.java
@@ -366,13 +366,20 @@ public Policy(String name, PolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Policy(String name, PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/policy:Policy", name, args == null ? PolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/policy:Policy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Policy(String name, Output id, @Nullable PolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/policy:Policy", name, state, makeResourceOptions(options, id));
     }
 
+    private static PolicyArgs makeArgs(PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? PolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/organizations/Project.java b/sdk/java/src/main/java/com/pulumi/gcp/organizations/Project.java
index 04b9471100..6ddf55a196 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/organizations/Project.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/organizations/Project.java
@@ -345,13 +345,20 @@ public Project(String name, @Nullable ProjectArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Project(String name, @Nullable ProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:organizations/project:Project", name, args == null ? ProjectArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:organizations/project:Project", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Project(String name, Output id, @Nullable ProjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:organizations/project:Project", name, state, makeResourceOptions(options, id));
     }
 
+    private static ProjectArgs makeArgs(@Nullable ProjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ProjectArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/CustomConstraint.java b/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/CustomConstraint.java
index 055dac9a61..37b9bd6360 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/CustomConstraint.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/CustomConstraint.java
@@ -295,13 +295,20 @@ public CustomConstraint(String name, CustomConstraintArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public CustomConstraint(String name, CustomConstraintArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:orgpolicy/customConstraint:CustomConstraint", name, args == null ? CustomConstraintArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:orgpolicy/customConstraint:CustomConstraint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private CustomConstraint(String name, Output id, @Nullable CustomConstraintState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:orgpolicy/customConstraint:CustomConstraint", name, state, makeResourceOptions(options, id));
     }
 
+    private static CustomConstraintArgs makeArgs(CustomConstraintArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? CustomConstraintArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/Policy.java b/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/Policy.java
index 3b18b29452..961bcb40bf 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/Policy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/orgpolicy/Policy.java
@@ -207,7 +207,7 @@
  *                     PolicySpecRuleArgs.builder()
  *                         .condition(PolicySpecRuleConditionArgs.builder()
  *                             .description("A sample condition for the policy")
- *                             .expression("resource.matchLabels('labelKeys/123', 'labelValues/345')")
+ *                             .expression("resource.matchTagId('tagKeys/123', 'tagValues/345')")
  *                             .location("sample-location.log")
  *                             .title("sample-condition")
  *                             .build())
@@ -257,7 +257,7 @@
  * 
  *     public static void stack(Context ctx) {
  *         var constraint = new CustomConstraint("constraint", CustomConstraintArgs.builder()
- *             .name("custom.disableGkeAutoUpgrade_40785")
+ *             .name("custom.disableGkeAutoUpgrade_37559")
  *             .parent("organizations/123456789")
  *             .displayName("Disable GKE auto upgrade")
  *             .description("Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.")
@@ -406,13 +406,20 @@ public Policy(String name, PolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Policy(String name, PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:orgpolicy/policy:Policy", name, args == null ? PolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:orgpolicy/policy:Policy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Policy(String name, Output id, @Nullable PolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:orgpolicy/policy:Policy", name, state, makeResourceOptions(options, id));
     }
 
+    private static PolicyArgs makeArgs(PolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? PolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/GuestPolicies.java b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/GuestPolicies.java
index e3bba77120..bc441218f1 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/GuestPolicies.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/GuestPolicies.java
@@ -480,13 +480,20 @@ public GuestPolicies(String name, GuestPoliciesArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public GuestPolicies(String name, GuestPoliciesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:osconfig/guestPolicies:GuestPolicies", name, args == null ? GuestPoliciesArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:osconfig/guestPolicies:GuestPolicies", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private GuestPolicies(String name, Output id, @Nullable GuestPoliciesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:osconfig/guestPolicies:GuestPolicies", name, state, makeResourceOptions(options, id));
     }
 
+    private static GuestPoliciesArgs makeArgs(GuestPoliciesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? GuestPoliciesArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/OsPolicyAssignment.java b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/OsPolicyAssignment.java
index cecd87a1a3..f8258b35b0 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/OsPolicyAssignment.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/OsPolicyAssignment.java
@@ -450,13 +450,20 @@ public OsPolicyAssignment(String name, OsPolicyAssignmentArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public OsPolicyAssignment(String name, OsPolicyAssignmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:osconfig/osPolicyAssignment:OsPolicyAssignment", name, args == null ? OsPolicyAssignmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:osconfig/osPolicyAssignment:OsPolicyAssignment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private OsPolicyAssignment(String name, Output id, @Nullable OsPolicyAssignmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:osconfig/osPolicyAssignment:OsPolicyAssignment", name, state, makeResourceOptions(options, id));
     }
 
+    private static OsPolicyAssignmentArgs makeArgs(OsPolicyAssignmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? OsPolicyAssignmentArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java
index 5fc020be99..5444a4f151 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/osconfig/PatchDeployment.java
@@ -524,13 +524,20 @@ public PatchDeployment(String name, PatchDeploymentArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public PatchDeployment(String name, PatchDeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:osconfig/patchDeployment:PatchDeployment", name, args == null ? PatchDeploymentArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:osconfig/patchDeployment:PatchDeployment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private PatchDeployment(String name, Output id, @Nullable PatchDeploymentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:osconfig/patchDeployment:PatchDeployment", name, state, makeResourceOptions(options, id));
     }
 
+    private static PatchDeploymentArgs makeArgs(PatchDeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? PatchDeploymentArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/oslogin/SshPublicKey.java b/sdk/java/src/main/java/com/pulumi/gcp/oslogin/SshPublicKey.java
index 7acf14196a..655e097382 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/oslogin/SshPublicKey.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/oslogin/SshPublicKey.java
@@ -184,13 +184,20 @@ public SshPublicKey(String name, SshPublicKeyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SshPublicKey(String name, SshPublicKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:oslogin/sshPublicKey:SshPublicKey", name, args == null ? SshPublicKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:oslogin/sshPublicKey:SshPublicKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SshPublicKey(String name, Output id, @Nullable SshPublicKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:oslogin/sshPublicKey:SshPublicKey", name, state, makeResourceOptions(options, id));
     }
 
+    private static SshPublicKeyArgs makeArgs(SshPublicKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SshPublicKeyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/parallelstore/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/parallelstore/Instance.java
index 736e15895b..3ce8a4a4e4 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/parallelstore/Instance.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/parallelstore/Instance.java
@@ -466,13 +466,20 @@ public Instance(String name, InstanceArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:parallelstore/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:parallelstore/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:parallelstore/instance:Instance", name, state, makeResourceOptions(options, id));
     }
 
+    private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? InstanceArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/privilegedaccessmanager/Entitlement.java b/sdk/java/src/main/java/com/pulumi/gcp/privilegedaccessmanager/Entitlement.java
index f5583eaf66..c8317ef524 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/privilegedaccessmanager/Entitlement.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/privilegedaccessmanager/Entitlement.java
@@ -359,13 +359,20 @@ public Entitlement(String name, EntitlementArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Entitlement(String name, EntitlementArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:privilegedaccessmanager/entitlement:entitlement", name, args == null ? EntitlementArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:privilegedaccessmanager/entitlement:entitlement", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Entitlement(String name, Output id, @Nullable EntitlementState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:privilegedaccessmanager/entitlement:entitlement", name, state, makeResourceOptions(options, id));
     }
 
+    private static EntitlementArgs makeArgs(EntitlementArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? EntitlementArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/AccessApprovalSettings.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/AccessApprovalSettings.java
index 894bd33642..2c6c306df6 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/AccessApprovalSettings.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/AccessApprovalSettings.java
@@ -347,13 +347,20 @@ public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/accessApprovalSettings:AccessApprovalSettings", name, args == null ? AccessApprovalSettingsArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/accessApprovalSettings:AccessApprovalSettings", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private AccessApprovalSettings(String name, Output id, @Nullable AccessApprovalSettingsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/accessApprovalSettings:AccessApprovalSettings", name, state, makeResourceOptions(options, id));
     }
 
+    private static AccessApprovalSettingsArgs makeArgs(AccessApprovalSettingsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? AccessApprovalSettingsArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/ApiKey.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/ApiKey.java
index a8f9376095..955e3a0d58 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/ApiKey.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/ApiKey.java
@@ -423,13 +423,20 @@ public ApiKey(String name, @Nullable ApiKeyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ApiKey(String name, @Nullable ApiKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/apiKey:ApiKey", name, args == null ? ApiKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/apiKey:ApiKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ApiKey(String name, Output id, @Nullable ApiKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/apiKey:ApiKey", name, state, makeResourceOptions(options, id));
     }
 
+    private static ApiKeyArgs makeArgs(@Nullable ApiKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ApiKeyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/DefaultServiceAccounts.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/DefaultServiceAccounts.java
index e8345717c6..d189c7eceb 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/DefaultServiceAccounts.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/DefaultServiceAccounts.java
@@ -197,13 +197,20 @@ public DefaultServiceAccounts(String name, DefaultServiceAccountsArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public DefaultServiceAccounts(String name, DefaultServiceAccountsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/defaultServiceAccounts:DefaultServiceAccounts", name, args == null ? DefaultServiceAccountsArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/defaultServiceAccounts:DefaultServiceAccounts", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private DefaultServiceAccounts(String name, Output id, @Nullable DefaultServiceAccountsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/defaultServiceAccounts:DefaultServiceAccounts", name, state, makeResourceOptions(options, id));
     }
 
+    private static DefaultServiceAccountsArgs makeArgs(DefaultServiceAccountsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? DefaultServiceAccountsArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMAuditConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMAuditConfig.java
index cd49213eb5..bf5be0614d 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMAuditConfig.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMAuditConfig.java
@@ -756,13 +756,20 @@ public IAMAuditConfig(String name, IAMAuditConfigArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMAuditConfig(String name, IAMAuditConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/iAMAuditConfig:IAMAuditConfig", name, args == null ? IAMAuditConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/iAMAuditConfig:IAMAuditConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMAuditConfig(String name, Output id, @Nullable IAMAuditConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/iAMAuditConfig:IAMAuditConfig", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMAuditConfigArgs makeArgs(IAMAuditConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMAuditConfigArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMBinding.java
index 73f8c0d3ea..e795fc7587 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMBinding.java
@@ -787,13 +787,20 @@ public IAMBinding(String name, IAMBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMBinding(String name, IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/iAMBinding:IAMBinding", name, args == null ? IAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/iAMBinding:IAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMBinding(String name, Output id, @Nullable IAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/iAMBinding:IAMBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMBindingArgs makeArgs(IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMCustomRole.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMCustomRole.java
index 6e11612587..e9ecac3bb6 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMCustomRole.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMCustomRole.java
@@ -240,13 +240,20 @@ public IAMCustomRole(String name, IAMCustomRoleArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMCustomRole(String name, IAMCustomRoleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/iAMCustomRole:IAMCustomRole", name, args == null ? IAMCustomRoleArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/iAMCustomRole:IAMCustomRole", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMCustomRole(String name, Output id, @Nullable IAMCustomRoleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/iAMCustomRole:IAMCustomRole", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMCustomRoleArgs makeArgs(IAMCustomRoleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMCustomRoleArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMMember.java
index 19b1903691..62383c8c5a 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMMember.java
@@ -786,13 +786,20 @@ public IAMMember(String name, IAMMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMMember(String name, IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/iAMMember:IAMMember", name, args == null ? IAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/iAMMember:IAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMMember(String name, Output id, @Nullable IAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/iAMMember:IAMMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMMemberArgs makeArgs(IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMPolicy.java
index 6eee8df4de..a2e6e05992 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/IAMPolicy.java
@@ -754,13 +754,20 @@ public IAMPolicy(String name, IAMPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IAMPolicy(String name, IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/iAMPolicy:IAMPolicy", name, args == null ? IAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/iAMPolicy:IAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IAMPolicy(String name, Output id, @Nullable IAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/iAMPolicy:IAMPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static IAMPolicyArgs makeArgs(IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IAMPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/IamMemberRemove.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/IamMemberRemove.java
index 6179df395f..a013e91aff 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/IamMemberRemove.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/IamMemberRemove.java
@@ -112,13 +112,20 @@ public IamMemberRemove(String name, IamMemberRemoveArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public IamMemberRemove(String name, IamMemberRemoveArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/iamMemberRemove:IamMemberRemove", name, args == null ? IamMemberRemoveArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/iamMemberRemove:IamMemberRemove", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private IamMemberRemove(String name, Output id, @Nullable IamMemberRemoveState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/iamMemberRemove:IamMemberRemove", name, state, makeResourceOptions(options, id));
     }
 
+    private static IamMemberRemoveArgs makeArgs(IamMemberRemoveArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? IamMemberRemoveArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/OrganizationPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/OrganizationPolicy.java
index 45370f9dd3..b705e401fc 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/OrganizationPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/OrganizationPolicy.java
@@ -374,13 +374,20 @@ public OrganizationPolicy(String name, OrganizationPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public OrganizationPolicy(String name, OrganizationPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/organizationPolicy:OrganizationPolicy", name, args == null ? OrganizationPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/organizationPolicy:OrganizationPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private OrganizationPolicy(String name, Output id, @Nullable OrganizationPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/organizationPolicy:OrganizationPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static OrganizationPolicyArgs makeArgs(OrganizationPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? OrganizationPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/Service.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/Service.java
index a4324dbc5c..fd47a0e369 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/Service.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/Service.java
@@ -78,6 +78,26 @@
  */
 @ResourceType(type="gcp:projects/service:Service")
 public class Service extends com.pulumi.resources.CustomResource {
+    /**
+     * Beta
+     * If `true`, the usage of the service to be disabled will be checked and an error
+     * will be returned if the service to be disabled has usage in last 30 days.
+     * Defaults to `false`.
+     * 
+     */
+    @Export(name="checkIfServiceHasUsageOnDestroy", refs={Boolean.class}, tree="[0]")
+    private Output checkIfServiceHasUsageOnDestroy;
+
+    /**
+     * @return Beta
+     * If `true`, the usage of the service to be disabled will be checked and an error
+     * will be returned if the service to be disabled has usage in last 30 days.
+     * Defaults to `false`.
+     * 
+     */
+    public Output> checkIfServiceHasUsageOnDestroy() {
+        return Codegen.optional(this.checkIfServiceHasUsageOnDestroy);
+    }
     /**
      * If `true`, services that are enabled
      * and which depend on this service should also be disabled when this service is
@@ -157,13 +177,20 @@ public Service(String name, ServiceArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Service(String name, ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/service:Service", name, args == null ? ServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/service:Service", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Service(String name, Output id, @Nullable ServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/service:Service", name, state, makeResourceOptions(options, id));
     }
 
+    private static ServiceArgs makeArgs(ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ServiceArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceArgs.java
index 8839ccab8a..50b02550d1 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceArgs.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceArgs.java
@@ -17,6 +17,27 @@ public final class ServiceArgs extends com.pulumi.resources.ResourceArgs {
 
     public static final ServiceArgs Empty = new ServiceArgs();
 
+    /**
+     * Beta
+     * If `true`, the usage of the service to be disabled will be checked and an error
+     * will be returned if the service to be disabled has usage in last 30 days.
+     * Defaults to `false`.
+     * 
+     */
+    @Import(name="checkIfServiceHasUsageOnDestroy")
+    private @Nullable Output checkIfServiceHasUsageOnDestroy;
+
+    /**
+     * @return Beta
+     * If `true`, the usage of the service to be disabled will be checked and an error
+     * will be returned if the service to be disabled has usage in last 30 days.
+     * Defaults to `false`.
+     * 
+     */
+    public Optional> checkIfServiceHasUsageOnDestroy() {
+        return Optional.ofNullable(this.checkIfServiceHasUsageOnDestroy);
+    }
+
     /**
      * If `true`, services that are enabled
      * and which depend on this service should also be disabled when this service is
@@ -80,6 +101,7 @@ public Output service() {
     private ServiceArgs() {}
 
     private ServiceArgs(ServiceArgs $) {
+        this.checkIfServiceHasUsageOnDestroy = $.checkIfServiceHasUsageOnDestroy;
         this.disableDependentServices = $.disableDependentServices;
         this.disableOnDestroy = $.disableOnDestroy;
         this.project = $.project;
@@ -104,6 +126,33 @@ public Builder(ServiceArgs defaults) {
             $ = new ServiceArgs(Objects.requireNonNull(defaults));
         }
 
+        /**
+         * @param checkIfServiceHasUsageOnDestroy Beta
+         * If `true`, the usage of the service to be disabled will be checked and an error
+         * will be returned if the service to be disabled has usage in last 30 days.
+         * Defaults to `false`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder checkIfServiceHasUsageOnDestroy(@Nullable Output checkIfServiceHasUsageOnDestroy) {
+            $.checkIfServiceHasUsageOnDestroy = checkIfServiceHasUsageOnDestroy;
+            return this;
+        }
+
+        /**
+         * @param checkIfServiceHasUsageOnDestroy Beta
+         * If `true`, the usage of the service to be disabled will be checked and an error
+         * will be returned if the service to be disabled has usage in last 30 days.
+         * Defaults to `false`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder checkIfServiceHasUsageOnDestroy(Boolean checkIfServiceHasUsageOnDestroy) {
+            return checkIfServiceHasUsageOnDestroy(Output.of(checkIfServiceHasUsageOnDestroy));
+        }
+
         /**
          * @param disableDependentServices If `true`, services that are enabled
          * and which depend on this service should also be disabled when this service is
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceIdentity.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceIdentity.java
index c896d4a169..e3bfebff46 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceIdentity.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/ServiceIdentity.java
@@ -68,7 +68,7 @@
  *         var hcSaBqJobuser = new IAMMember("hcSaBqJobuser", IAMMemberArgs.builder()
  *             .project(project.applyValue(getProjectResult -> getProjectResult.projectId()))
  *             .role("roles/bigquery.jobUser")
- *             .member(hcSa.email().applyValue(email -> String.format("serviceAccount:%s", email)))
+ *             .member(hcSa.member())
  *             .build());
  * 
  *     }
@@ -98,6 +98,20 @@ public class ServiceIdentity extends com.pulumi.resources.CustomResource {
     public Output email() {
         return this.email;
     }
+    /**
+     * The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.
+     * 
+     */
+    @Export(name="member", refs={String.class}, tree="[0]")
+    private Output member;
+
+    /**
+     * @return The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.
+     * 
+     */
+    public Output member() {
+        return this.member;
+    }
     /**
      * The ID of the project in which the resource belongs.
      * If it is not provided, the provider project is used.
@@ -155,13 +169,20 @@ public ServiceIdentity(String name, ServiceIdentityArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ServiceIdentity(String name, ServiceIdentityArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/serviceIdentity:ServiceIdentity", name, args == null ? ServiceIdentityArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/serviceIdentity:ServiceIdentity", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ServiceIdentity(String name, Output id, @Nullable ServiceIdentityState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/serviceIdentity:ServiceIdentity", name, state, makeResourceOptions(options, id));
     }
 
+    private static ServiceIdentityArgs makeArgs(ServiceIdentityArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ServiceIdentityArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/UsageExportBucket.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/UsageExportBucket.java
index 30ba004b7f..82feb40204 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/UsageExportBucket.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/UsageExportBucket.java
@@ -194,13 +194,20 @@ public UsageExportBucket(String name, UsageExportBucketArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public UsageExportBucket(String name, UsageExportBucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:projects/usageExportBucket:UsageExportBucket", name, args == null ? UsageExportBucketArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:projects/usageExportBucket:UsageExportBucket", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private UsageExportBucket(String name, Output id, @Nullable UsageExportBucketState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:projects/usageExportBucket:UsageExportBucket", name, state, makeResourceOptions(options, id));
     }
 
+    private static UsageExportBucketArgs makeArgs(UsageExportBucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? UsageExportBucketArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceIdentityState.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceIdentityState.java
index 91db21aec1..30e35dbe17 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceIdentityState.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceIdentityState.java
@@ -30,6 +30,21 @@ public Optional> email() {
         return Optional.ofNullable(this.email);
     }
 
+    /**
+     * The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.
+     * 
+     */
+    @Import(name="member")
+    private @Nullable Output member;
+
+    /**
+     * @return The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.
+     * 
+     */
+    public Optional> member() {
+        return Optional.ofNullable(this.member);
+    }
+
     /**
      * The ID of the project in which the resource belongs.
      * If it is not provided, the provider project is used.
@@ -70,6 +85,7 @@ private ServiceIdentityState() {}
 
     private ServiceIdentityState(ServiceIdentityState $) {
         this.email = $.email;
+        this.member = $.member;
         this.project = $.project;
         this.service = $.service;
     }
@@ -113,6 +129,27 @@ public Builder email(String email) {
             return email(Output.of(email));
         }
 
+        /**
+         * @param member The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder member(@Nullable Output member) {
+            $.member = member;
+            return this;
+        }
+
+        /**
+         * @param member The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder member(String member) {
+            return member(Output.of(member));
+        }
+
         /**
          * @param project The ID of the project in which the resource belongs.
          * If it is not provided, the provider project is used.
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceState.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceState.java
index 285a899cf5..649b2c3739 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceState.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/inputs/ServiceState.java
@@ -16,6 +16,27 @@ public final class ServiceState extends com.pulumi.resources.ResourceArgs {
 
     public static final ServiceState Empty = new ServiceState();
 
+    /**
+     * Beta
+     * If `true`, the usage of the service to be disabled will be checked and an error
+     * will be returned if the service to be disabled has usage in last 30 days.
+     * Defaults to `false`.
+     * 
+     */
+    @Import(name="checkIfServiceHasUsageOnDestroy")
+    private @Nullable Output checkIfServiceHasUsageOnDestroy;
+
+    /**
+     * @return Beta
+     * If `true`, the usage of the service to be disabled will be checked and an error
+     * will be returned if the service to be disabled has usage in last 30 days.
+     * Defaults to `false`.
+     * 
+     */
+    public Optional> checkIfServiceHasUsageOnDestroy() {
+        return Optional.ofNullable(this.checkIfServiceHasUsageOnDestroy);
+    }
+
     /**
      * If `true`, services that are enabled
      * and which depend on this service should also be disabled when this service is
@@ -79,6 +100,7 @@ public Optional> service() {
     private ServiceState() {}
 
     private ServiceState(ServiceState $) {
+        this.checkIfServiceHasUsageOnDestroy = $.checkIfServiceHasUsageOnDestroy;
         this.disableDependentServices = $.disableDependentServices;
         this.disableOnDestroy = $.disableOnDestroy;
         this.project = $.project;
@@ -103,6 +125,33 @@ public Builder(ServiceState defaults) {
             $ = new ServiceState(Objects.requireNonNull(defaults));
         }
 
+        /**
+         * @param checkIfServiceHasUsageOnDestroy Beta
+         * If `true`, the usage of the service to be disabled will be checked and an error
+         * will be returned if the service to be disabled has usage in last 30 days.
+         * Defaults to `false`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder checkIfServiceHasUsageOnDestroy(@Nullable Output checkIfServiceHasUsageOnDestroy) {
+            $.checkIfServiceHasUsageOnDestroy = checkIfServiceHasUsageOnDestroy;
+            return this;
+        }
+
+        /**
+         * @param checkIfServiceHasUsageOnDestroy Beta
+         * If `true`, the usage of the service to be disabled will be checked and an error
+         * will be returned if the service to be disabled has usage in last 30 days.
+         * Defaults to `false`.
+         * 
+         * @return builder
+         * 
+         */
+        public Builder checkIfServiceHasUsageOnDestroy(Boolean checkIfServiceHasUsageOnDestroy) {
+            return checkIfServiceHasUsageOnDestroy(Output.of(checkIfServiceHasUsageOnDestroy));
+        }
+
         /**
          * @param disableDependentServices If `true`, services that are enabled
          * and which depend on this service should also be disabled when this service is
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/projects/outputs/GetProjectServiceResult.java b/sdk/java/src/main/java/com/pulumi/gcp/projects/outputs/GetProjectServiceResult.java
index e467b4ba0c..2a5d8ced0f 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/projects/outputs/GetProjectServiceResult.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/projects/outputs/GetProjectServiceResult.java
@@ -13,6 +13,7 @@
 
 @CustomType
 public final class GetProjectServiceResult {
+    private Boolean checkIfServiceHasUsageOnDestroy;
     private Boolean disableDependentServices;
     private Boolean disableOnDestroy;
     /**
@@ -24,6 +25,9 @@ public final class GetProjectServiceResult {
     private String service;
 
     private GetProjectServiceResult() {}
+    public Boolean checkIfServiceHasUsageOnDestroy() {
+        return this.checkIfServiceHasUsageOnDestroy;
+    }
     public Boolean disableDependentServices() {
         return this.disableDependentServices;
     }
@@ -53,6 +57,7 @@ public static Builder builder(GetProjectServiceResult defaults) {
     }
     @CustomType.Builder
     public static final class Builder {
+        private Boolean checkIfServiceHasUsageOnDestroy;
         private Boolean disableDependentServices;
         private Boolean disableOnDestroy;
         private String id;
@@ -61,6 +66,7 @@ public static final class Builder {
         public Builder() {}
         public Builder(GetProjectServiceResult defaults) {
     	      Objects.requireNonNull(defaults);
+    	      this.checkIfServiceHasUsageOnDestroy = defaults.checkIfServiceHasUsageOnDestroy;
     	      this.disableDependentServices = defaults.disableDependentServices;
     	      this.disableOnDestroy = defaults.disableOnDestroy;
     	      this.id = defaults.id;
@@ -68,6 +74,14 @@ public Builder(GetProjectServiceResult defaults) {
     	      this.service = defaults.service;
         }
 
+        @CustomType.Setter
+        public Builder checkIfServiceHasUsageOnDestroy(Boolean checkIfServiceHasUsageOnDestroy) {
+            if (checkIfServiceHasUsageOnDestroy == null) {
+              throw new MissingRequiredPropertyException("GetProjectServiceResult", "checkIfServiceHasUsageOnDestroy");
+            }
+            this.checkIfServiceHasUsageOnDestroy = checkIfServiceHasUsageOnDestroy;
+            return this;
+        }
         @CustomType.Setter
         public Builder disableDependentServices(Boolean disableDependentServices) {
             if (disableDependentServices == null) {
@@ -108,6 +122,7 @@ public Builder service(String service) {
         }
         public GetProjectServiceResult build() {
             final var _resultValue = new GetProjectServiceResult();
+            _resultValue.checkIfServiceHasUsageOnDestroy = checkIfServiceHasUsageOnDestroy;
             _resultValue.disableDependentServices = disableDependentServices;
             _resultValue.disableOnDestroy = disableOnDestroy;
             _resultValue.id = id;
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteReservation.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteReservation.java
index bf3ba854f6..ec1d5bf7e6 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteReservation.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteReservation.java
@@ -189,13 +189,20 @@ public LiteReservation(String name, LiteReservationArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public LiteReservation(String name, LiteReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/liteReservation:LiteReservation", name, args == null ? LiteReservationArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/liteReservation:LiteReservation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private LiteReservation(String name, Output id, @Nullable LiteReservationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/liteReservation:LiteReservation", name, state, makeResourceOptions(options, id));
     }
 
+    private static LiteReservationArgs makeArgs(LiteReservationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? LiteReservationArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteSubscription.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteSubscription.java
index 824a7664cf..fb059be17c 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteSubscription.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteSubscription.java
@@ -239,13 +239,20 @@ public LiteSubscription(String name, LiteSubscriptionArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public LiteSubscription(String name, LiteSubscriptionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/liteSubscription:LiteSubscription", name, args == null ? LiteSubscriptionArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/liteSubscription:LiteSubscription", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private LiteSubscription(String name, Output id, @Nullable LiteSubscriptionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/liteSubscription:LiteSubscription", name, state, makeResourceOptions(options, id));
     }
 
+    private static LiteSubscriptionArgs makeArgs(LiteSubscriptionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? LiteSubscriptionArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteTopic.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteTopic.java
index a071d9d171..8b37d220db 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteTopic.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/LiteTopic.java
@@ -259,13 +259,20 @@ public LiteTopic(String name, @Nullable LiteTopicArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public LiteTopic(String name, @Nullable LiteTopicArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/liteTopic:LiteTopic", name, args == null ? LiteTopicArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/liteTopic:LiteTopic", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private LiteTopic(String name, Output id, @Nullable LiteTopicState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/liteTopic:LiteTopic", name, state, makeResourceOptions(options, id));
     }
 
+    private static LiteTopicArgs makeArgs(@Nullable LiteTopicArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? LiteTopicArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Schema.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Schema.java
index 3393a49f1a..b0bffc383e 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Schema.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Schema.java
@@ -263,13 +263,20 @@ public Schema(String name, @Nullable SchemaArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Schema(String name, @Nullable SchemaArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/schema:Schema", name, args == null ? SchemaArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/schema:Schema", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Schema(String name, Output id, @Nullable SchemaState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/schema:Schema", name, state, makeResourceOptions(options, id));
     }
 
+    private static SchemaArgs makeArgs(@Nullable SchemaArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SchemaArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamBinding.java
index ee9102028e..3ad8d96d9f 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamBinding.java
@@ -439,13 +439,20 @@ public SchemaIamBinding(String name, SchemaIamBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SchemaIamBinding(String name, SchemaIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/schemaIamBinding:SchemaIamBinding", name, args == null ? SchemaIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/schemaIamBinding:SchemaIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SchemaIamBinding(String name, Output id, @Nullable SchemaIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/schemaIamBinding:SchemaIamBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static SchemaIamBindingArgs makeArgs(SchemaIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SchemaIamBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamMember.java
index ca62a0bc43..3e63efee45 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamMember.java
@@ -438,13 +438,20 @@ public SchemaIamMember(String name, SchemaIamMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SchemaIamMember(String name, SchemaIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/schemaIamMember:SchemaIamMember", name, args == null ? SchemaIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/schemaIamMember:SchemaIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SchemaIamMember(String name, Output id, @Nullable SchemaIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/schemaIamMember:SchemaIamMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static SchemaIamMemberArgs makeArgs(SchemaIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SchemaIamMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamPolicy.java
index 5009a43405..472e0df492 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SchemaIamPolicy.java
@@ -394,13 +394,20 @@ public SchemaIamPolicy(String name, SchemaIamPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SchemaIamPolicy(String name, SchemaIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/schemaIamPolicy:SchemaIamPolicy", name, args == null ? SchemaIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/schemaIamPolicy:SchemaIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SchemaIamPolicy(String name, Output id, @Nullable SchemaIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/schemaIamPolicy:SchemaIamPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static SchemaIamPolicyArgs makeArgs(SchemaIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SchemaIamPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Subscription.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Subscription.java
index 1f67c461d1..0b99a90df6 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Subscription.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Subscription.java
@@ -551,7 +551,7 @@
  *             .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()
  *                 .bucket(example.name())
  *                 .filenamePrefix("pre-")
- *                 .filenameSuffix("-_79169")
+ *                 .filenameSuffix("-_91980")
  *                 .filenameDatetimeFormat("YYYY-MM-DD/hh_mm_ssZ")
  *                 .maxBytes(1000)
  *                 .maxDuration("300s")
@@ -627,7 +627,7 @@
  *             .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()
  *                 .bucket(example.name())
  *                 .filenamePrefix("pre-")
- *                 .filenameSuffix("-_56529")
+ *                 .filenameSuffix("-_37118")
  *                 .filenameDatetimeFormat("YYYY-MM-DD/hh_mm_ssZ")
  *                 .maxBytes(1000)
  *                 .maxDuration("300s")
@@ -710,7 +710,7 @@
  *             .cloudStorageConfig(SubscriptionCloudStorageConfigArgs.builder()
  *                 .bucket(example.name())
  *                 .filenamePrefix("pre-")
- *                 .filenameSuffix("-_75413")
+ *                 .filenameSuffix("-_80332")
  *                 .filenameDatetimeFormat("YYYY-MM-DD/hh_mm_ssZ")
  *                 .maxBytes(1000)
  *                 .maxDuration("300s")
@@ -1171,13 +1171,20 @@ public Subscription(String name, SubscriptionArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Subscription(String name, SubscriptionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/subscription:Subscription", name, args == null ? SubscriptionArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/subscription:Subscription", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Subscription(String name, Output id, @Nullable SubscriptionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/subscription:Subscription", name, state, makeResourceOptions(options, id));
     }
 
+    private static SubscriptionArgs makeArgs(SubscriptionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SubscriptionArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMBinding.java
index 5ceefec5d9..047854c840 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMBinding.java
@@ -413,13 +413,20 @@ public SubscriptionIAMBinding(String name, SubscriptionIAMBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SubscriptionIAMBinding(String name, SubscriptionIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/subscriptionIAMBinding:SubscriptionIAMBinding", name, args == null ? SubscriptionIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/subscriptionIAMBinding:SubscriptionIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SubscriptionIAMBinding(String name, Output id, @Nullable SubscriptionIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/subscriptionIAMBinding:SubscriptionIAMBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static SubscriptionIAMBindingArgs makeArgs(SubscriptionIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SubscriptionIAMBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMMember.java
index 01dd39f4b5..e1ee630817 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMMember.java
@@ -412,13 +412,20 @@ public SubscriptionIAMMember(String name, SubscriptionIAMMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SubscriptionIAMMember(String name, SubscriptionIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/subscriptionIAMMember:SubscriptionIAMMember", name, args == null ? SubscriptionIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/subscriptionIAMMember:SubscriptionIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SubscriptionIAMMember(String name, Output id, @Nullable SubscriptionIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/subscriptionIAMMember:SubscriptionIAMMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static SubscriptionIAMMemberArgs makeArgs(SubscriptionIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SubscriptionIAMMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMPolicy.java
index 36a8c9921f..a04106c8ca 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/SubscriptionIAMPolicy.java
@@ -378,13 +378,20 @@ public SubscriptionIAMPolicy(String name, SubscriptionIAMPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SubscriptionIAMPolicy(String name, SubscriptionIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/subscriptionIAMPolicy:SubscriptionIAMPolicy", name, args == null ? SubscriptionIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/subscriptionIAMPolicy:SubscriptionIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SubscriptionIAMPolicy(String name, Output id, @Nullable SubscriptionIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/subscriptionIAMPolicy:SubscriptionIAMPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static SubscriptionIAMPolicyArgs makeArgs(SubscriptionIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SubscriptionIAMPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Topic.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Topic.java
index 140f1c06f7..1d90fc3da6 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Topic.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/Topic.java
@@ -502,13 +502,20 @@ public Topic(String name, @Nullable TopicArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Topic(String name, @Nullable TopicArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/topic:Topic", name, args == null ? TopicArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/topic:Topic", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Topic(String name, Output id, @Nullable TopicState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/topic:Topic", name, state, makeResourceOptions(options, id));
     }
 
+    private static TopicArgs makeArgs(@Nullable TopicArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? TopicArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMBinding.java
index a324444d21..5963b90366 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMBinding.java
@@ -439,13 +439,20 @@ public TopicIAMBinding(String name, TopicIAMBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public TopicIAMBinding(String name, TopicIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/topicIAMBinding:TopicIAMBinding", name, args == null ? TopicIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/topicIAMBinding:TopicIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private TopicIAMBinding(String name, Output id, @Nullable TopicIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/topicIAMBinding:TopicIAMBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static TopicIAMBindingArgs makeArgs(TopicIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? TopicIAMBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMMember.java
index 39f824dc97..126bc2e3e2 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMMember.java
@@ -438,13 +438,20 @@ public TopicIAMMember(String name, TopicIAMMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public TopicIAMMember(String name, TopicIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/topicIAMMember:TopicIAMMember", name, args == null ? TopicIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/topicIAMMember:TopicIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private TopicIAMMember(String name, Output id, @Nullable TopicIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/topicIAMMember:TopicIAMMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static TopicIAMMemberArgs makeArgs(TopicIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? TopicIAMMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMPolicy.java
index 735b42342f..260fb2110b 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/pubsub/TopicIAMPolicy.java
@@ -394,13 +394,20 @@ public TopicIAMPolicy(String name, TopicIAMPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public TopicIAMPolicy(String name, TopicIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:pubsub/topicIAMPolicy:TopicIAMPolicy", name, args == null ? TopicIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:pubsub/topicIAMPolicy:TopicIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private TopicIAMPolicy(String name, Output id, @Nullable TopicIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:pubsub/topicIAMPolicy:TopicIAMPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static TopicIAMPolicyArgs makeArgs(TopicIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? TopicIAMPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/recaptcha/EnterpriseKey.java b/sdk/java/src/main/java/com/pulumi/gcp/recaptcha/EnterpriseKey.java
index 3df420eef3..0538916844 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/recaptcha/EnterpriseKey.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/recaptcha/EnterpriseKey.java
@@ -535,13 +535,20 @@ public EnterpriseKey(String name, EnterpriseKeyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public EnterpriseKey(String name, EnterpriseKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:recaptcha/enterpriseKey:EnterpriseKey", name, args == null ? EnterpriseKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:recaptcha/enterpriseKey:EnterpriseKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private EnterpriseKey(String name, Output id, @Nullable EnterpriseKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:recaptcha/enterpriseKey:EnterpriseKey", name, state, makeResourceOptions(options, id));
     }
 
+    private static EnterpriseKeyArgs makeArgs(EnterpriseKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? EnterpriseKeyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/redis/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/redis/Cluster.java
index 295135e91c..6cc254b30b 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/redis/Cluster.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/redis/Cluster.java
@@ -545,13 +545,20 @@ public Cluster(String name, ClusterArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Cluster(String name, ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:redis/cluster:Cluster", name, args == null ? ClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:redis/cluster:Cluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Cluster(String name, Output id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:redis/cluster:Cluster", name, state, makeResourceOptions(options, id));
     }
 
+    private static ClusterArgs makeArgs(ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ClusterArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/redis/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/redis/Instance.java
index 5f646dc67e..77ddb73efe 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/redis/Instance.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/redis/Instance.java
@@ -1087,13 +1087,20 @@ public Instance(String name, InstanceArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:redis/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:redis/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:redis/instance:Instance", name, state, makeResourceOptions(options, id));
     }
 
+    private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? InstanceArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/resourcemanager/Lien.java b/sdk/java/src/main/java/com/pulumi/gcp/resourcemanager/Lien.java
index 26b58a1ecd..0462463e9c 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/resourcemanager/Lien.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/resourcemanager/Lien.java
@@ -210,13 +210,20 @@ public Lien(String name, LienArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Lien(String name, LienArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:resourcemanager/lien:Lien", name, args == null ? LienArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:resourcemanager/lien:Lien", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Lien(String name, Output id, @Nullable LienState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:resourcemanager/lien:Lien", name, state, makeResourceOptions(options, id));
     }
 
+    private static LienArgs makeArgs(LienArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? LienArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Config.java b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Config.java
index 0008a26988..f2a726a401 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Config.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Config.java
@@ -149,13 +149,20 @@ public Config(String name, @Nullable ConfigArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Config(String name, @Nullable ConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:runtimeconfig/config:Config", name, args == null ? ConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:runtimeconfig/config:Config", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Config(String name, Output id, @Nullable ConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:runtimeconfig/config:Config", name, state, makeResourceOptions(options, id));
     }
 
+    private static ConfigArgs makeArgs(@Nullable ConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ConfigArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamBinding.java
index dee66cd5d5..c1148cd993 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamBinding.java
@@ -181,13 +181,20 @@ public ConfigIamBinding(String name, ConfigIamBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ConfigIamBinding(String name, ConfigIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:runtimeconfig/configIamBinding:ConfigIamBinding", name, args == null ? ConfigIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:runtimeconfig/configIamBinding:ConfigIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ConfigIamBinding(String name, Output id, @Nullable ConfigIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:runtimeconfig/configIamBinding:ConfigIamBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static ConfigIamBindingArgs makeArgs(ConfigIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ConfigIamBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamMember.java
index ad4ad9c82c..551d801528 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamMember.java
@@ -180,13 +180,20 @@ public ConfigIamMember(String name, ConfigIamMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ConfigIamMember(String name, ConfigIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:runtimeconfig/configIamMember:ConfigIamMember", name, args == null ? ConfigIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:runtimeconfig/configIamMember:ConfigIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ConfigIamMember(String name, Output id, @Nullable ConfigIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:runtimeconfig/configIamMember:ConfigIamMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static ConfigIamMemberArgs makeArgs(ConfigIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ConfigIamMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamPolicy.java
index a07ac1699a..537613037c 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/ConfigIamPolicy.java
@@ -136,13 +136,20 @@ public ConfigIamPolicy(String name, ConfigIamPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public ConfigIamPolicy(String name, ConfigIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:runtimeconfig/configIamPolicy:ConfigIamPolicy", name, args == null ? ConfigIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:runtimeconfig/configIamPolicy:ConfigIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private ConfigIamPolicy(String name, Output id, @Nullable ConfigIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:runtimeconfig/configIamPolicy:ConfigIamPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static ConfigIamPolicyArgs makeArgs(ConfigIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? ConfigIamPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Variable.java b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Variable.java
index a8fca2d982..ff5bddafcc 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Variable.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/runtimeconfig/Variable.java
@@ -253,13 +253,20 @@ public Variable(String name, VariableArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Variable(String name, VariableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:runtimeconfig/variable:Variable", name, args == null ? VariableArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:runtimeconfig/variable:Variable", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Variable(String name, Output id, @Nullable VariableState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:runtimeconfig/variable:Variable", name, state, makeResourceOptions(options, id));
     }
 
+    private static VariableArgs makeArgs(VariableArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? VariableArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/Secret.java b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/Secret.java
index edf093e8f9..b210758baf 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/Secret.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/Secret.java
@@ -537,13 +537,20 @@ public Secret(String name, SecretArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public Secret(String name, SecretArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:secretmanager/secret:Secret", name, args == null ? SecretArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:secretmanager/secret:Secret", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private Secret(String name, Output id, @Nullable SecretState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:secretmanager/secret:Secret", name, state, makeResourceOptions(options, id));
     }
 
+    private static SecretArgs makeArgs(SecretArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SecretArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamBinding.java
index deaa0844f4..0fb0a5e5f5 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamBinding.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamBinding.java
@@ -717,13 +717,20 @@ public SecretIamBinding(String name, SecretIamBindingArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SecretIamBinding(String name, SecretIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:secretmanager/secretIamBinding:SecretIamBinding", name, args == null ? SecretIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:secretmanager/secretIamBinding:SecretIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SecretIamBinding(String name, Output id, @Nullable SecretIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:secretmanager/secretIamBinding:SecretIamBinding", name, state, makeResourceOptions(options, id));
     }
 
+    private static SecretIamBindingArgs makeArgs(SecretIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SecretIamBindingArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamMember.java
index b16b9edb50..f8cff1e4b7 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamMember.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamMember.java
@@ -716,13 +716,20 @@ public SecretIamMember(String name, SecretIamMemberArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SecretIamMember(String name, SecretIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:secretmanager/secretIamMember:SecretIamMember", name, args == null ? SecretIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:secretmanager/secretIamMember:SecretIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SecretIamMember(String name, Output id, @Nullable SecretIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:secretmanager/secretIamMember:SecretIamMember", name, state, makeResourceOptions(options, id));
     }
 
+    private static SecretIamMemberArgs makeArgs(SecretIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SecretIamMemberArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamPolicy.java
index e399a50cf5..4b58551c7e 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamPolicy.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretIamPolicy.java
@@ -662,13 +662,20 @@ public SecretIamPolicy(String name, SecretIamPolicyArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SecretIamPolicy(String name, SecretIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:secretmanager/secretIamPolicy:SecretIamPolicy", name, args == null ? SecretIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:secretmanager/secretIamPolicy:SecretIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SecretIamPolicy(String name, Output id, @Nullable SecretIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:secretmanager/secretIamPolicy:SecretIamPolicy", name, state, makeResourceOptions(options, id));
     }
 
+    private static SecretIamPolicyArgs makeArgs(SecretIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SecretIamPolicyArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretVersion.java b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretVersion.java
index 1275f53b66..61ce8c1572 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretVersion.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/secretmanager/SecretVersion.java
@@ -406,13 +406,20 @@ public SecretVersion(String name, SecretVersionArgs args) {
      * @param options A bag of options that control this resource's behavior.
      */
     public SecretVersion(String name, SecretVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
-        super("gcp:secretmanager/secretVersion:SecretVersion", name, args == null ? SecretVersionArgs.Empty : args, makeResourceOptions(options, Codegen.empty()));
+        super("gcp:secretmanager/secretVersion:SecretVersion", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()));
     }
 
     private SecretVersion(String name, Output id, @Nullable SecretVersionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
         super("gcp:secretmanager/secretVersion:SecretVersion", name, state, makeResourceOptions(options, id));
     }
 
+    private static SecretVersionArgs makeArgs(SecretVersionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
+        if (options != null && options.getUrn().isPresent()) {
+            return null;
+        }
+        return args == null ? SecretVersionArgs.Empty : args;
+    }
+
     private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
         var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
             .version(Utilities.getVersion())
diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Instance.java
index d31da741d1..9f8ffe7c14 100644
--- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Instance.java
+++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Instance.java
@@ -230,8 +230,8 @@
  *             .build());
  * 
  *         // ca pool IAM permissions can take time to propagate
- *         var wait60Seconds = new Sleep("wait60Seconds", SleepArgs.builder()
- *             .createDuration("60s")
+ *         var wait120Seconds = new Sleep("wait120Seconds", SleepArgs.builder()
+ *             .createDuration("120s")
  *             .build(), CustomResourceOptions.builder()
  *                 .dependsOn(caPoolBinding)
  *                 .build());
@@ -246,7 +246,7 @@
  *             .build(), CustomResourceOptions.builder()
  *                 .dependsOn(                
  *                     rootCa,
- *                     wait60Seconds)
+ *                     wait120Seconds)
  *                 .build());
  * 
  *     }
@@ -254,6 +254,452 @@
  * }
  * 
* <!--End PulumiCodeChooser --> + * ### Secure Source Manager Instance Private Psc Backend + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.certificateauthority.CaPool;
+ * import com.pulumi.gcp.certificateauthority.CaPoolArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;
+ * import com.pulumi.gcp.certificateauthority.Authority;
+ * import com.pulumi.gcp.certificateauthority.AuthorityArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;
+ * import com.pulumi.gcp.certificateauthority.CaPoolIamBinding;
+ * import com.pulumi.gcp.certificateauthority.CaPoolIamBindingArgs;
+ * import com.pulumi.time.sleep;
+ * import com.pulumi.time.SleepArgs;
+ * import com.pulumi.gcp.securesourcemanager.Instance;
+ * import com.pulumi.gcp.securesourcemanager.InstanceArgs;
+ * import com.pulumi.gcp.securesourcemanager.inputs.InstancePrivateConfigArgs;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.Subnetwork;
+ * import com.pulumi.gcp.compute.SubnetworkArgs;
+ * import com.pulumi.gcp.compute.RegionNetworkEndpointGroup;
+ * import com.pulumi.gcp.compute.RegionNetworkEndpointGroupArgs;
+ * import com.pulumi.gcp.compute.RegionBackendService;
+ * import com.pulumi.gcp.compute.RegionBackendServiceArgs;
+ * import com.pulumi.gcp.compute.inputs.RegionBackendServiceBackendArgs;
+ * import com.pulumi.gcp.compute.RegionTargetTcpProxy;
+ * import com.pulumi.gcp.compute.RegionTargetTcpProxyArgs;
+ * import com.pulumi.gcp.compute.ForwardingRule;
+ * import com.pulumi.gcp.compute.ForwardingRuleArgs;
+ * import com.pulumi.gcp.dns.ManagedZone;
+ * import com.pulumi.gcp.dns.ManagedZoneArgs;
+ * import com.pulumi.gcp.dns.inputs.ManagedZonePrivateVisibilityConfigArgs;
+ * import com.pulumi.gcp.dns.RecordSet;
+ * import com.pulumi.gcp.dns.RecordSetArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var caPool = new CaPool("caPool", CaPoolArgs.builder()
+ *             .name("ca-pool")
+ *             .location("us-central1")
+ *             .tier("ENTERPRISE")
+ *             .publishingOptions(CaPoolPublishingOptionsArgs.builder()
+ *                 .publishCaCert(true)
+ *                 .publishCrl(true)
+ *                 .build())
+ *             .build());
+ * 
+ *         var rootCa = new Authority("rootCa", AuthorityArgs.builder()
+ *             .pool(caPool.name())
+ *             .certificateAuthorityId("root-ca")
+ *             .location("us-central1")
+ *             .config(AuthorityConfigArgs.builder()
+ *                 .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()
+ *                     .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()
+ *                         .organization("google")
+ *                         .commonName("my-certificate-authority")
+ *                         .build())
+ *                     .build())
+ *                 .x509Config(AuthorityConfigX509ConfigArgs.builder()
+ *                     .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()
+ *                         .isCa(true)
+ *                         .build())
+ *                     .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()
+ *                         .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()
+ *                             .certSign(true)
+ *                             .crlSign(true)
+ *                             .build())
+ *                         .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()
+ *                             .serverAuth(true)
+ *                             .build())
+ *                         .build())
+ *                     .build())
+ *                 .build())
+ *             .keySpec(AuthorityKeySpecArgs.builder()
+ *                 .algorithm("RSA_PKCS1_4096_SHA256")
+ *                 .build())
+ *             .deletionProtection(false)
+ *             .ignoreActiveCertificatesOnDeletion(true)
+ *             .skipGracePeriod(true)
+ *             .build());
+ * 
+ *         var caPoolBinding = new CaPoolIamBinding("caPoolBinding", CaPoolIamBindingArgs.builder()
+ *             .caPool(caPool.id())
+ *             .role("roles/privateca.certificateRequester")
+ *             .members(String.format("serviceAccount:service-%s{@literal @}gcp-sa-sourcemanager.iam.gserviceaccount.com", project.applyValue(getProjectResult -> getProjectResult.number())))
+ *             .build());
+ * 
+ *         // ca pool IAM permissions can take time to propagate
+ *         var wait120Seconds = new Sleep("wait120Seconds", SleepArgs.builder()
+ *             .createDuration("120s")
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(caPoolBinding)
+ *                 .build());
+ * 
+ *         // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api
+ *         var default_ = new Instance("default", InstanceArgs.builder()
+ *             .instanceId("my-instance")
+ *             .location("us-central1")
+ *             .privateConfig(InstancePrivateConfigArgs.builder()
+ *                 .isPrivate(true)
+ *                 .caPool(caPool.id())
+ *                 .build())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     rootCa,
+ *                     wait120Seconds)
+ *                 .build());
+ * 
+ *         // Connect SSM private instance with L4 proxy ILB.
+ *         var network = new Network("network", NetworkArgs.builder()
+ *             .name("my-network")
+ *             .autoCreateSubnetworks(false)
+ *             .build());
+ * 
+ *         var subnet = new Subnetwork("subnet", SubnetworkArgs.builder()
+ *             .name("my-subnet")
+ *             .region("us-central1")
+ *             .network(network.id())
+ *             .ipCidrRange("10.0.1.0/24")
+ *             .privateIpGoogleAccess(true)
+ *             .build());
+ * 
+ *         var pscNeg = new RegionNetworkEndpointGroup("pscNeg", RegionNetworkEndpointGroupArgs.builder()
+ *             .name("my-neg")
+ *             .region("us-central1")
+ *             .networkEndpointType("PRIVATE_SERVICE_CONNECT")
+ *             .pscTargetService(default_.privateConfig().applyValue(privateConfig -> privateConfig.httpServiceAttachment()))
+ *             .network(network.id())
+ *             .subnetwork(subnet.id())
+ *             .build());
+ * 
+ *         var backendService = new RegionBackendService("backendService", RegionBackendServiceArgs.builder()
+ *             .name("my-backend-service")
+ *             .region("us-central1")
+ *             .protocol("TCP")
+ *             .loadBalancingScheme("INTERNAL_MANAGED")
+ *             .backends(RegionBackendServiceBackendArgs.builder()
+ *                 .group(pscNeg.id())
+ *                 .balancingMode("UTILIZATION")
+ *                 .capacityScaler(1)
+ *                 .build())
+ *             .build());
+ * 
+ *         var proxySubnet = new Subnetwork("proxySubnet", SubnetworkArgs.builder()
+ *             .name("my-proxy-subnet")
+ *             .region("us-central1")
+ *             .network(network.id())
+ *             .ipCidrRange("10.0.2.0/24")
+ *             .purpose("REGIONAL_MANAGED_PROXY")
+ *             .role("ACTIVE")
+ *             .build());
+ * 
+ *         var targetProxy = new RegionTargetTcpProxy("targetProxy", RegionTargetTcpProxyArgs.builder()
+ *             .name("my-target-proxy")
+ *             .region("us-central1")
+ *             .backendService(backendService.id())
+ *             .build());
+ * 
+ *         var fwRuleTargetProxy = new ForwardingRule("fwRuleTargetProxy", ForwardingRuleArgs.builder()
+ *             .name("fw-rule-target-proxy")
+ *             .region("us-central1")
+ *             .loadBalancingScheme("INTERNAL_MANAGED")
+ *             .ipProtocol("TCP")
+ *             .portRange("443")
+ *             .target(targetProxy.id())
+ *             .network(network.id())
+ *             .subnetwork(subnet.id())
+ *             .networkTier("PREMIUM")
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(proxySubnet)
+ *                 .build());
+ * 
+ *         var privateZone = new ManagedZone("privateZone", ManagedZoneArgs.builder()
+ *             .name("my-dns-zone")
+ *             .dnsName("p.sourcemanager.dev.")
+ *             .visibility("private")
+ *             .privateVisibilityConfig(ManagedZonePrivateVisibilityConfigArgs.builder()
+ *                 .networks(ManagedZonePrivateVisibilityConfigNetworkArgs.builder()
+ *                     .networkUrl(network.id())
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *         var ssmInstanceHtmlRecord = new RecordSet("ssmInstanceHtmlRecord", RecordSetArgs.builder()
+ *             .name(default_.hostConfigs().applyValue(hostConfigs -> String.format("%s.", hostConfigs[0].html())))
+ *             .type("A")
+ *             .ttl(300)
+ *             .managedZone(privateZone.name())
+ *             .rrdatas(fwRuleTargetProxy.ipAddress())
+ *             .build());
+ * 
+ *         var ssmInstanceApiRecord = new RecordSet("ssmInstanceApiRecord", RecordSetArgs.builder()
+ *             .name(default_.hostConfigs().applyValue(hostConfigs -> String.format("%s.", hostConfigs[0].api())))
+ *             .type("A")
+ *             .ttl(300)
+ *             .managedZone(privateZone.name())
+ *             .rrdatas(fwRuleTargetProxy.ipAddress())
+ *             .build());
+ * 
+ *         var ssmInstanceGitRecord = new RecordSet("ssmInstanceGitRecord", RecordSetArgs.builder()
+ *             .name(default_.hostConfigs().applyValue(hostConfigs -> String.format("%s.", hostConfigs[0].gitHttp())))
+ *             .type("A")
+ *             .ttl(300)
+ *             .managedZone(privateZone.name())
+ *             .rrdatas(fwRuleTargetProxy.ipAddress())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * ### Secure Source Manager Instance Private Psc Endpoint + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.organizations.OrganizationsFunctions;
+ * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
+ * import com.pulumi.gcp.certificateauthority.CaPool;
+ * import com.pulumi.gcp.certificateauthority.CaPoolArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.CaPoolPublishingOptionsArgs;
+ * import com.pulumi.gcp.certificateauthority.Authority;
+ * import com.pulumi.gcp.certificateauthority.AuthorityArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigSubjectConfigSubjectArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigCaOptionsArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs;
+ * import com.pulumi.gcp.certificateauthority.inputs.AuthorityKeySpecArgs;
+ * import com.pulumi.gcp.certificateauthority.CaPoolIamBinding;
+ * import com.pulumi.gcp.certificateauthority.CaPoolIamBindingArgs;
+ * import com.pulumi.time.sleep;
+ * import com.pulumi.time.SleepArgs;
+ * import com.pulumi.gcp.securesourcemanager.Instance;
+ * import com.pulumi.gcp.securesourcemanager.InstanceArgs;
+ * import com.pulumi.gcp.securesourcemanager.inputs.InstancePrivateConfigArgs;
+ * import com.pulumi.gcp.compute.Network;
+ * import com.pulumi.gcp.compute.NetworkArgs;
+ * import com.pulumi.gcp.compute.Subnetwork;
+ * import com.pulumi.gcp.compute.SubnetworkArgs;
+ * import com.pulumi.gcp.compute.Address;
+ * import com.pulumi.gcp.compute.AddressArgs;
+ * import com.pulumi.gcp.compute.ForwardingRule;
+ * import com.pulumi.gcp.compute.ForwardingRuleArgs;
+ * import com.pulumi.gcp.dns.ManagedZone;
+ * import com.pulumi.gcp.dns.ManagedZoneArgs;
+ * import com.pulumi.gcp.dns.inputs.ManagedZonePrivateVisibilityConfigArgs;
+ * import com.pulumi.gcp.dns.RecordSet;
+ * import com.pulumi.gcp.dns.RecordSetArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         final var project = OrganizationsFunctions.getProject();
+ * 
+ *         var caPool = new CaPool("caPool", CaPoolArgs.builder()
+ *             .name("ca-pool")
+ *             .location("us-central1")
+ *             .tier("ENTERPRISE")
+ *             .publishingOptions(CaPoolPublishingOptionsArgs.builder()
+ *                 .publishCaCert(true)
+ *                 .publishCrl(true)
+ *                 .build())
+ *             .build());
+ * 
+ *         var rootCa = new Authority("rootCa", AuthorityArgs.builder()
+ *             .pool(caPool.name())
+ *             .certificateAuthorityId("root-ca")
+ *             .location("us-central1")
+ *             .config(AuthorityConfigArgs.builder()
+ *                 .subjectConfig(AuthorityConfigSubjectConfigArgs.builder()
+ *                     .subject(AuthorityConfigSubjectConfigSubjectArgs.builder()
+ *                         .organization("google")
+ *                         .commonName("my-certificate-authority")
+ *                         .build())
+ *                     .build())
+ *                 .x509Config(AuthorityConfigX509ConfigArgs.builder()
+ *                     .caOptions(AuthorityConfigX509ConfigCaOptionsArgs.builder()
+ *                         .isCa(true)
+ *                         .build())
+ *                     .keyUsage(AuthorityConfigX509ConfigKeyUsageArgs.builder()
+ *                         .baseKeyUsage(AuthorityConfigX509ConfigKeyUsageBaseKeyUsageArgs.builder()
+ *                             .certSign(true)
+ *                             .crlSign(true)
+ *                             .build())
+ *                         .extendedKeyUsage(AuthorityConfigX509ConfigKeyUsageExtendedKeyUsageArgs.builder()
+ *                             .serverAuth(true)
+ *                             .build())
+ *                         .build())
+ *                     .build())
+ *                 .build())
+ *             .keySpec(AuthorityKeySpecArgs.builder()
+ *                 .algorithm("RSA_PKCS1_4096_SHA256")
+ *                 .build())
+ *             .deletionProtection(false)
+ *             .ignoreActiveCertificatesOnDeletion(true)
+ *             .skipGracePeriod(true)
+ *             .build());
+ * 
+ *         var caPoolBinding = new CaPoolIamBinding("caPoolBinding", CaPoolIamBindingArgs.builder()
+ *             .caPool(caPool.id())
+ *             .role("roles/privateca.certificateRequester")
+ *             .members(String.format("serviceAccount:service-%s{@literal @}gcp-sa-sourcemanager.iam.gserviceaccount.com", project.applyValue(getProjectResult -> getProjectResult.number())))
+ *             .build());
+ * 
+ *         // ca pool IAM permissions can take time to propagate
+ *         var wait120Seconds = new Sleep("wait120Seconds", SleepArgs.builder()
+ *             .createDuration("120s")
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(caPoolBinding)
+ *                 .build());
+ * 
+ *         // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api
+ *         var default_ = new Instance("default", InstanceArgs.builder()
+ *             .instanceId("my-instance")
+ *             .location("us-central1")
+ *             .privateConfig(InstancePrivateConfigArgs.builder()
+ *                 .isPrivate(true)
+ *                 .caPool(caPool.id())
+ *                 .build())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     rootCa,
+ *                     wait120Seconds)
+ *                 .build());
+ * 
+ *         // Connect SSM private instance with endpoint.
+ *         var network = new Network("network", NetworkArgs.builder()
+ *             .name("my-network")
+ *             .autoCreateSubnetworks(false)
+ *             .build());
+ * 
+ *         var subnet = new Subnetwork("subnet", SubnetworkArgs.builder()
+ *             .name("my-subnet")
+ *             .region("us-central1")
+ *             .network(network.id())
+ *             .ipCidrRange("10.0.60.0/24")
+ *             .privateIpGoogleAccess(true)
+ *             .build());
+ * 
+ *         var address = new Address("address", AddressArgs.builder()
+ *             .name("my-address")
+ *             .region("us-central1")
+ *             .address("10.0.60.100")
+ *             .addressType("INTERNAL")
+ *             .subnetwork(subnet.id())
+ *             .build());
+ * 
+ *         var fwRuleServiceAttachment = new ForwardingRule("fwRuleServiceAttachment", ForwardingRuleArgs.builder()
+ *             .name("fw-rule-service-attachment")
+ *             .region("us-central1")
+ *             .loadBalancingScheme("")
+ *             .ipAddress(address.id())
+ *             .network(network.id())
+ *             .target(default_.privateConfig().applyValue(privateConfig -> privateConfig.httpServiceAttachment()))
+ *             .build());
+ * 
+ *         var privateZone = new ManagedZone("privateZone", ManagedZoneArgs.builder()
+ *             .name("my-dns-zone")
+ *             .dnsName("p.sourcemanager.dev.")
+ *             .visibility("private")
+ *             .privateVisibilityConfig(ManagedZonePrivateVisibilityConfigArgs.builder()
+ *                 .networks(ManagedZonePrivateVisibilityConfigNetworkArgs.builder()
+ *                     .networkUrl(network.id())
+ *                     .build())
+ *                 .build())
+ *             .build());
+ * 
+ *         var ssmInstanceHtmlRecord = new RecordSet("ssmInstanceHtmlRecord", RecordSetArgs.builder()
+ *             .name(default_.hostConfigs().applyValue(hostConfigs -> String.format("%s.", hostConfigs[0].html())))
+ *             .type("A")
+ *             .ttl(300)
+ *             .managedZone(privateZone.name())
+ *             .rrdatas(fwRuleServiceAttachment.ipAddress())
+ *             .build());
+ * 
+ *         var ssmInstanceApiRecord = new RecordSet("ssmInstanceApiRecord", RecordSetArgs.builder()
+ *             .name(default_.hostConfigs().applyValue(hostConfigs -> String.format("%s.", hostConfigs[0].api())))
+ *             .type("A")
+ *             .ttl(300)
+ *             .managedZone(privateZone.name())
+ *             .rrdatas(fwRuleServiceAttachment.ipAddress())
+ *             .build());
+ * 
+ *         var ssmInstanceGitRecord = new RecordSet("ssmInstanceGitRecord", RecordSetArgs.builder()
+ *             .name(default_.hostConfigs().applyValue(hostConfigs -> String.format("%s.", hostConfigs[0].gitHttp())))
+ *             .type("A")
+ *             .ttl(300)
+ *             .managedZone(privateZone.name())
+ *             .rrdatas(fwRuleServiceAttachment.ipAddress())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> * * ## Import * @@ -525,13 +971,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamBinding.java index 349c826605..4801626aed 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamBinding.java @@ -83,13 +83,20 @@ public InstanceIamBinding(String name, InstanceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamBinding(String name, InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/instanceIamBinding:InstanceIamBinding", name, args == null ? InstanceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/instanceIamBinding:InstanceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamBinding(String name, Output id, @Nullable InstanceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/instanceIamBinding:InstanceIamBinding", name, state, makeResourceOptions(options, id)); } + private static InstanceIamBindingArgs makeArgs(InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamMember.java index d0901eef73..f666dc40fc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamMember.java @@ -82,13 +82,20 @@ public InstanceIamMember(String name, InstanceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamMember(String name, InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/instanceIamMember:InstanceIamMember", name, args == null ? InstanceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/instanceIamMember:InstanceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamMember(String name, Output id, @Nullable InstanceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/instanceIamMember:InstanceIamMember", name, state, makeResourceOptions(options, id)); } + private static InstanceIamMemberArgs makeArgs(InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamPolicy.java index 68a677482d..fb03a00860 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/InstanceIamPolicy.java @@ -68,13 +68,20 @@ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/instanceIamPolicy:InstanceIamPolicy", name, args == null ? InstanceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/instanceIamPolicy:InstanceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamPolicy(String name, Output id, @Nullable InstanceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/instanceIamPolicy:InstanceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static InstanceIamPolicyArgs makeArgs(InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Repository.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Repository.java index 4756fdd00e..764d63552e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Repository.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/Repository.java @@ -342,13 +342,20 @@ public Repository(String name, RepositoryArgs args) { * @param options A bag of options that control this resource's behavior. */ public Repository(String name, RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/repository:Repository", name, args == null ? RepositoryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/repository:Repository", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Repository(String name, Output id, @Nullable RepositoryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/repository:Repository", name, state, makeResourceOptions(options, id)); } + private static RepositoryArgs makeArgs(RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamBinding.java index 35aa4ad860..b675e76878 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamBinding.java @@ -469,13 +469,20 @@ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/repositoryIamBinding:RepositoryIamBinding", name, args == null ? RepositoryIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/repositoryIamBinding:RepositoryIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamBinding(String name, Output id, @Nullable RepositoryIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/repositoryIamBinding:RepositoryIamBinding", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamBindingArgs makeArgs(RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamMember.java index 4a2a9c30a2..62ee3538f5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamMember.java @@ -468,13 +468,20 @@ public RepositoryIamMember(String name, RepositoryIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamMember(String name, RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/repositoryIamMember:RepositoryIamMember", name, args == null ? RepositoryIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/repositoryIamMember:RepositoryIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamMember(String name, Output id, @Nullable RepositoryIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/repositoryIamMember:RepositoryIamMember", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamMemberArgs makeArgs(RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamPolicy.java index 54bb519795..7744129dc8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securesourcemanager/RepositoryIamPolicy.java @@ -424,13 +424,20 @@ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy", name, args == null ? RepositoryIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamPolicy(String name, Output id, @Nullable RepositoryIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securesourcemanager/repositoryIamPolicy:RepositoryIamPolicy", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamPolicyArgs makeArgs(RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/EventThreatDetectionCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/EventThreatDetectionCustomModule.java index 1c5df71250..5a35f06a9e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/EventThreatDetectionCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/EventThreatDetectionCustomModule.java @@ -202,13 +202,20 @@ public EventThreatDetectionCustomModule(String name, EventThreatDetectionCustomM * @param options A bag of options that control this resource's behavior. */ public EventThreatDetectionCustomModule(String name, EventThreatDetectionCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/eventThreatDetectionCustomModule:EventThreatDetectionCustomModule", name, args == null ? EventThreatDetectionCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/eventThreatDetectionCustomModule:EventThreatDetectionCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private EventThreatDetectionCustomModule(String name, Output id, @Nullable EventThreatDetectionCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/eventThreatDetectionCustomModule:EventThreatDetectionCustomModule", name, state, makeResourceOptions(options, id)); } + private static EventThreatDetectionCustomModuleArgs makeArgs(EventThreatDetectionCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EventThreatDetectionCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/FolderCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/FolderCustomModule.java index e54cd43af8..240fb68d5b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/FolderCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/FolderCustomModule.java @@ -337,13 +337,20 @@ public FolderCustomModule(String name, FolderCustomModuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public FolderCustomModule(String name, FolderCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/folderCustomModule:FolderCustomModule", name, args == null ? FolderCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/folderCustomModule:FolderCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private FolderCustomModule(String name, Output id, @Nullable FolderCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/folderCustomModule:FolderCustomModule", name, state, makeResourceOptions(options, id)); } + private static FolderCustomModuleArgs makeArgs(FolderCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? FolderCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java index c8640d8f0a..39588f4470 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamBinding.java @@ -526,13 +526,20 @@ public InstanceIamBinding(String name, InstanceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamBinding(String name, InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/instanceIamBinding:InstanceIamBinding", name, args == null ? InstanceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/instanceIamBinding:InstanceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamBinding(String name, Output id, @Nullable InstanceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/instanceIamBinding:InstanceIamBinding", name, state, makeResourceOptions(options, id)); } + private static InstanceIamBindingArgs makeArgs(InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java index f4f09f65bf..20c895a2ab 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamMember.java @@ -525,13 +525,20 @@ public InstanceIamMember(String name, InstanceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamMember(String name, InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/instanceIamMember:InstanceIamMember", name, args == null ? InstanceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/instanceIamMember:InstanceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamMember(String name, Output id, @Nullable InstanceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/instanceIamMember:InstanceIamMember", name, state, makeResourceOptions(options, id)); } + private static InstanceIamMemberArgs makeArgs(InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java index d48c4eee3a..724b3c142d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/InstanceIamPolicy.java @@ -511,13 +511,20 @@ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy", name, args == null ? InstanceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamPolicy(String name, Output id, @Nullable InstanceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/instanceIamPolicy:InstanceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static InstanceIamPolicyArgs makeArgs(InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementFolderSecurityHealthAnalyticsCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementFolderSecurityHealthAnalyticsCustomModule.java index 6aafe65148..c7fc8b402d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementFolderSecurityHealthAnalyticsCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementFolderSecurityHealthAnalyticsCustomModule.java @@ -358,13 +358,20 @@ public ManagementFolderSecurityHealthAnalyticsCustomModule(String name, Manageme * @param options A bag of options that control this resource's behavior. */ public ManagementFolderSecurityHealthAnalyticsCustomModule(String name, ManagementFolderSecurityHealthAnalyticsCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/managementFolderSecurityHealthAnalyticsCustomModule:ManagementFolderSecurityHealthAnalyticsCustomModule", name, args == null ? ManagementFolderSecurityHealthAnalyticsCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/managementFolderSecurityHealthAnalyticsCustomModule:ManagementFolderSecurityHealthAnalyticsCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagementFolderSecurityHealthAnalyticsCustomModule(String name, Output id, @Nullable ManagementFolderSecurityHealthAnalyticsCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/managementFolderSecurityHealthAnalyticsCustomModule:ManagementFolderSecurityHealthAnalyticsCustomModule", name, state, makeResourceOptions(options, id)); } + private static ManagementFolderSecurityHealthAnalyticsCustomModuleArgs makeArgs(ManagementFolderSecurityHealthAnalyticsCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagementFolderSecurityHealthAnalyticsCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationEventThreatDetectionCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationEventThreatDetectionCustomModule.java index 8df27e61c3..c1872a445b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationEventThreatDetectionCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationEventThreatDetectionCustomModule.java @@ -216,13 +216,20 @@ public ManagementOrganizationEventThreatDetectionCustomModule(String name, Manag * @param options A bag of options that control this resource's behavior. */ public ManagementOrganizationEventThreatDetectionCustomModule(String name, ManagementOrganizationEventThreatDetectionCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/managementOrganizationEventThreatDetectionCustomModule:ManagementOrganizationEventThreatDetectionCustomModule", name, args == null ? ManagementOrganizationEventThreatDetectionCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/managementOrganizationEventThreatDetectionCustomModule:ManagementOrganizationEventThreatDetectionCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagementOrganizationEventThreatDetectionCustomModule(String name, Output id, @Nullable ManagementOrganizationEventThreatDetectionCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/managementOrganizationEventThreatDetectionCustomModule:ManagementOrganizationEventThreatDetectionCustomModule", name, state, makeResourceOptions(options, id)); } + private static ManagementOrganizationEventThreatDetectionCustomModuleArgs makeArgs(ManagementOrganizationEventThreatDetectionCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagementOrganizationEventThreatDetectionCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationSecurityHealthAnalyticsCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationSecurityHealthAnalyticsCustomModule.java index add91bddd3..85f3070698 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationSecurityHealthAnalyticsCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementOrganizationSecurityHealthAnalyticsCustomModule.java @@ -344,13 +344,20 @@ public ManagementOrganizationSecurityHealthAnalyticsCustomModule(String name, Ma * @param options A bag of options that control this resource's behavior. */ public ManagementOrganizationSecurityHealthAnalyticsCustomModule(String name, ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule", name, args == null ? ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagementOrganizationSecurityHealthAnalyticsCustomModule(String name, Output id, @Nullable ManagementOrganizationSecurityHealthAnalyticsCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/managementOrganizationSecurityHealthAnalyticsCustomModule:ManagementOrganizationSecurityHealthAnalyticsCustomModule", name, state, makeResourceOptions(options, id)); } + private static ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs makeArgs(ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagementOrganizationSecurityHealthAnalyticsCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementProjectSecurityHealthAnalyticsCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementProjectSecurityHealthAnalyticsCustomModule.java index 21d91d738a..00735aa001 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementProjectSecurityHealthAnalyticsCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ManagementProjectSecurityHealthAnalyticsCustomModule.java @@ -346,13 +346,20 @@ public ManagementProjectSecurityHealthAnalyticsCustomModule(String name, @Nullab * @param options A bag of options that control this resource's behavior. */ public ManagementProjectSecurityHealthAnalyticsCustomModule(String name, @Nullable ManagementProjectSecurityHealthAnalyticsCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/managementProjectSecurityHealthAnalyticsCustomModule:ManagementProjectSecurityHealthAnalyticsCustomModule", name, args == null ? ManagementProjectSecurityHealthAnalyticsCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/managementProjectSecurityHealthAnalyticsCustomModule:ManagementProjectSecurityHealthAnalyticsCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagementProjectSecurityHealthAnalyticsCustomModule(String name, Output id, @Nullable ManagementProjectSecurityHealthAnalyticsCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/managementProjectSecurityHealthAnalyticsCustomModule:ManagementProjectSecurityHealthAnalyticsCustomModule", name, state, makeResourceOptions(options, id)); } + private static ManagementProjectSecurityHealthAnalyticsCustomModuleArgs makeArgs(@Nullable ManagementProjectSecurityHealthAnalyticsCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagementProjectSecurityHealthAnalyticsCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/MuteConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/MuteConfig.java index 907fdea0a7..df4c8765df 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/MuteConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/MuteConfig.java @@ -246,13 +246,20 @@ public MuteConfig(String name, MuteConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public MuteConfig(String name, MuteConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/muteConfig:MuteConfig", name, args == null ? MuteConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/muteConfig:MuteConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private MuteConfig(String name, Output id, @Nullable MuteConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/muteConfig:MuteConfig", name, state, makeResourceOptions(options, id)); } + private static MuteConfigArgs makeArgs(MuteConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MuteConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java index 2a6b726d42..1ac047b38e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/NotificationConfig.java @@ -232,13 +232,20 @@ public NotificationConfig(String name, NotificationConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public NotificationConfig(String name, NotificationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/notificationConfig:NotificationConfig", name, args == null ? NotificationConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/notificationConfig:NotificationConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NotificationConfig(String name, Output id, @Nullable NotificationConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/notificationConfig:NotificationConfig", name, state, makeResourceOptions(options, id)); } + private static NotificationConfigArgs makeArgs(NotificationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NotificationConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/OrganizationCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/OrganizationCustomModule.java index 2395a5f860..eae6d412d0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/OrganizationCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/OrganizationCustomModule.java @@ -323,13 +323,20 @@ public OrganizationCustomModule(String name, OrganizationCustomModuleArgs args) * @param options A bag of options that control this resource's behavior. */ public OrganizationCustomModule(String name, OrganizationCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/organizationCustomModule:OrganizationCustomModule", name, args == null ? OrganizationCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/organizationCustomModule:OrganizationCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private OrganizationCustomModule(String name, Output id, @Nullable OrganizationCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/organizationCustomModule:OrganizationCustomModule", name, state, makeResourceOptions(options, id)); } + private static OrganizationCustomModuleArgs makeArgs(OrganizationCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? OrganizationCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectCustomModule.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectCustomModule.java index 8649b8d6fa..c5c3a6136e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectCustomModule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectCustomModule.java @@ -319,13 +319,20 @@ public ProjectCustomModule(String name, ProjectCustomModuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public ProjectCustomModule(String name, ProjectCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/projectCustomModule:ProjectCustomModule", name, args == null ? ProjectCustomModuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/projectCustomModule:ProjectCustomModule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectCustomModule(String name, Output id, @Nullable ProjectCustomModuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/projectCustomModule:ProjectCustomModule", name, state, makeResourceOptions(options, id)); } + private static ProjectCustomModuleArgs makeArgs(ProjectCustomModuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectCustomModuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java index b1de0012dd..44de2accd8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/ProjectNotificationConfig.java @@ -228,13 +228,20 @@ public ProjectNotificationConfig(String name, ProjectNotificationConfigArgs args * @param options A bag of options that control this resource's behavior. */ public ProjectNotificationConfig(String name, ProjectNotificationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig", name, args == null ? ProjectNotificationConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ProjectNotificationConfig(String name, Output id, @Nullable ProjectNotificationConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/projectNotificationConfig:ProjectNotificationConfig", name, state, makeResourceOptions(options, id)); } + private static ProjectNotificationConfigArgs makeArgs(ProjectNotificationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ProjectNotificationConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/Source.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/Source.java index e925ed5186..3a6064e367 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/Source.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/Source.java @@ -181,13 +181,20 @@ public Source(String name, SourceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Source(String name, SourceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/source:Source", name, args == null ? SourceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/source:Source", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Source(String name, Output id, @Nullable SourceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/source:Source", name, state, makeResourceOptions(options, id)); } + private static SourceArgs makeArgs(SourceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SourceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamBinding.java index f4c8f707d0..e4207f0a9b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamBinding.java @@ -161,13 +161,20 @@ public SourceIamBinding(String name, SourceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public SourceIamBinding(String name, SourceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/sourceIamBinding:SourceIamBinding", name, args == null ? SourceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/sourceIamBinding:SourceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SourceIamBinding(String name, Output id, @Nullable SourceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/sourceIamBinding:SourceIamBinding", name, state, makeResourceOptions(options, id)); } + private static SourceIamBindingArgs makeArgs(SourceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SourceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamMember.java index d83f79caf5..b3d67b6b5e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamMember.java @@ -160,13 +160,20 @@ public SourceIamMember(String name, SourceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public SourceIamMember(String name, SourceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/sourceIamMember:SourceIamMember", name, args == null ? SourceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/sourceIamMember:SourceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SourceIamMember(String name, Output id, @Nullable SourceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/sourceIamMember:SourceIamMember", name, state, makeResourceOptions(options, id)); } + private static SourceIamMemberArgs makeArgs(SourceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SourceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamPolicy.java index 18e8177e3a..7b71adbe94 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/SourceIamPolicy.java @@ -146,13 +146,20 @@ public SourceIamPolicy(String name, SourceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public SourceIamPolicy(String name, SourceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/sourceIamPolicy:SourceIamPolicy", name, args == null ? SourceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/sourceIamPolicy:SourceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SourceIamPolicy(String name, Output id, @Nullable SourceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/sourceIamPolicy:SourceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static SourceIamPolicyArgs makeArgs(SourceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SourceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationMuteConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationMuteConfig.java new file mode 100644 index 0000000000..b0c28ecad2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationMuteConfig.java @@ -0,0 +1,316 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.securitycenter; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.gcp.Utilities; +import com.pulumi.gcp.securitycenter.V2OrganizationMuteConfigArgs; +import com.pulumi.gcp.securitycenter.inputs.V2OrganizationMuteConfigState; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Mute Findings is a volume management feature in Security Command Center + * that lets you manually or programmatically hide irrelevant findings, + * and create filters to automatically silence existing and future + * findings based on criteria you specify. + * + * To get more information about OrganizationMuteConfig, see: + * + * * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.muteConfigs) + * + * ## Example Usage + * + * ### Scc V2 Organization Mute Config Basic + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.gcp.securitycenter.V2OrganizationMuteConfig;
+ * import com.pulumi.gcp.securitycenter.V2OrganizationMuteConfigArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var default_ = new V2OrganizationMuteConfig("default", V2OrganizationMuteConfigArgs.builder()
+ *             .muteConfigId("my-config")
+ *             .organization("123456789")
+ *             .location("global")
+ *             .description("My custom Cloud Security Command Center Finding Organization mute Configuration")
+ *             .filter("severity = \"HIGH\"")
+ *             .type("STATIC")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * OrganizationMuteConfig can be imported using any of these accepted formats: + * + * * `organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}` + * + * * `{{organization}}/{{location}}/{{mute_config_id}}` + * + * When using the `pulumi import` command, OrganizationMuteConfig can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default {{organization}}/{{location}}/{{mute_config_id}} + * ``` + * + */ +@ResourceType(type="gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig") +public class V2OrganizationMuteConfig extends com.pulumi.resources.CustomResource { + /** + * The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + * + */ + @Export(name="createTime", refs={String.class}, tree="[0]") + private Output createTime; + + /** + * @return The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + * + */ + public Output createTime() { + return this.createTime; + } + /** + * A description of the mute config. + * + */ + @Export(name="description", refs={String.class}, tree="[0]") + private Output description; + + /** + * @return A description of the mute config. + * + */ + public Output> description() { + return Codegen.optional(this.description); + } + /** + * An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + */ + @Export(name="filter", refs={String.class}, tree="[0]") + private Output filter; + + /** + * @return An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + */ + public Output filter() { + return this.filter; + } + /** + * location Id is provided by organization. If not provided, Use global as default. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return location Id is provided by organization. If not provided, Use global as default. + * + */ + public Output> location() { + return Codegen.optional(this.location); + } + /** + * Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + * + */ + @Export(name="mostRecentEditor", refs={String.class}, tree="[0]") + private Output mostRecentEditor; + + /** + * @return Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + * + */ + public Output mostRecentEditor() { + return this.mostRecentEditor; + } + /** + * Unique identifier provided by the client within the parent scope. + * + * *** + * + */ + @Export(name="muteConfigId", refs={String.class}, tree="[0]") + private Output muteConfigId; + + /** + * @return Unique identifier provided by the client within the parent scope. + * + * *** + * + */ + public Output muteConfigId() { + return this.muteConfigId; + } + /** + * Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + * + */ + public Output name() { + return this.name; + } + /** + * The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + */ + @Export(name="organization", refs={String.class}, tree="[0]") + private Output organization; + + /** + * @return The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + */ + public Output organization() { + return this.organization; + } + /** + * The type of the mute config. + * + */ + @Export(name="type", refs={String.class}, tree="[0]") + private Output type; + + /** + * @return The type of the mute config. + * + */ + public Output type() { + return this.type; + } + /** + * Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + * + */ + @Export(name="updateTime", refs={String.class}, tree="[0]") + private Output updateTime; + + /** + * @return Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + * + */ + public Output updateTime() { + return this.updateTime; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public V2OrganizationMuteConfig(String name) { + this(name, V2OrganizationMuteConfigArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public V2OrganizationMuteConfig(String name, V2OrganizationMuteConfigArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public V2OrganizationMuteConfig(String name, V2OrganizationMuteConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); + } + + private V2OrganizationMuteConfig(String name, Output id, @Nullable V2OrganizationMuteConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig", name, state, makeResourceOptions(options, id)); + } + + private static V2OrganizationMuteConfigArgs makeArgs(V2OrganizationMuteConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? V2OrganizationMuteConfigArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static V2OrganizationMuteConfig get(String name, Output id, @Nullable V2OrganizationMuteConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new V2OrganizationMuteConfig(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationMuteConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationMuteConfigArgs.java new file mode 100644 index 0000000000..25a3f0a275 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationMuteConfigArgs.java @@ -0,0 +1,309 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.securitycenter; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class V2OrganizationMuteConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final V2OrganizationMuteConfigArgs Empty = new V2OrganizationMuteConfigArgs(); + + /** + * A description of the mute config. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return A description of the mute config. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + */ + @Import(name="filter", required=true) + private Output filter; + + /** + * @return An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + */ + public Output filter() { + return this.filter; + } + + /** + * location Id is provided by organization. If not provided, Use global as default. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return location Id is provided by organization. If not provided, Use global as default. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Unique identifier provided by the client within the parent scope. + * + * *** + * + */ + @Import(name="muteConfigId", required=true) + private Output muteConfigId; + + /** + * @return Unique identifier provided by the client within the parent scope. + * + * *** + * + */ + public Output muteConfigId() { + return this.muteConfigId; + } + + /** + * The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + */ + @Import(name="organization", required=true) + private Output organization; + + /** + * @return The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + */ + public Output organization() { + return this.organization; + } + + /** + * The type of the mute config. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return The type of the mute config. + * + */ + public Output type() { + return this.type; + } + + private V2OrganizationMuteConfigArgs() {} + + private V2OrganizationMuteConfigArgs(V2OrganizationMuteConfigArgs $) { + this.description = $.description; + this.filter = $.filter; + this.location = $.location; + this.muteConfigId = $.muteConfigId; + this.organization = $.organization; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(V2OrganizationMuteConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private V2OrganizationMuteConfigArgs $; + + public Builder() { + $ = new V2OrganizationMuteConfigArgs(); + } + + public Builder(V2OrganizationMuteConfigArgs defaults) { + $ = new V2OrganizationMuteConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param description A description of the mute config. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description A description of the mute config. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param filter An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + * @return builder + * + */ + public Builder filter(Output filter) { + $.filter = filter; + return this; + } + + /** + * @param filter An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + * @return builder + * + */ + public Builder filter(String filter) { + return filter(Output.of(filter)); + } + + /** + * @param location location Id is provided by organization. If not provided, Use global as default. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location location Id is provided by organization. If not provided, Use global as default. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param muteConfigId Unique identifier provided by the client within the parent scope. + * + * *** + * + * @return builder + * + */ + public Builder muteConfigId(Output muteConfigId) { + $.muteConfigId = muteConfigId; + return this; + } + + /** + * @param muteConfigId Unique identifier provided by the client within the parent scope. + * + * *** + * + * @return builder + * + */ + public Builder muteConfigId(String muteConfigId) { + return muteConfigId(Output.of(muteConfigId)); + } + + /** + * @param organization The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + * @return builder + * + */ + public Builder organization(Output organization) { + $.organization = organization; + return this; + } + + /** + * @param organization The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + * @return builder + * + */ + public Builder organization(String organization) { + return organization(Output.of(organization)); + } + + /** + * @param type The type of the mute config. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of the mute config. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public V2OrganizationMuteConfigArgs build() { + if ($.filter == null) { + throw new MissingRequiredPropertyException("V2OrganizationMuteConfigArgs", "filter"); + } + if ($.muteConfigId == null) { + throw new MissingRequiredPropertyException("V2OrganizationMuteConfigArgs", "muteConfigId"); + } + if ($.organization == null) { + throw new MissingRequiredPropertyException("V2OrganizationMuteConfigArgs", "organization"); + } + if ($.type == null) { + throw new MissingRequiredPropertyException("V2OrganizationMuteConfigArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java index 1791384331..a68159853b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/V2OrganizationNotificationConfig.java @@ -247,13 +247,20 @@ public V2OrganizationNotificationConfig(String name, V2OrganizationNotificationC * @param options A bag of options that control this resource's behavior. */ public V2OrganizationNotificationConfig(String name, V2OrganizationNotificationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig", name, args == null ? V2OrganizationNotificationConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private V2OrganizationNotificationConfig(String name, Output id, @Nullable V2OrganizationNotificationConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig", name, state, makeResourceOptions(options, id)); } + private static V2OrganizationNotificationConfigArgs makeArgs(V2OrganizationNotificationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? V2OrganizationNotificationConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/inputs/V2OrganizationMuteConfigState.java b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/inputs/V2OrganizationMuteConfigState.java new file mode 100644 index 0000000000..8258dbb94d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/securitycenter/inputs/V2OrganizationMuteConfigState.java @@ -0,0 +1,476 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.securitycenter.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class V2OrganizationMuteConfigState extends com.pulumi.resources.ResourceArgs { + + public static final V2OrganizationMuteConfigState Empty = new V2OrganizationMuteConfigState(); + + /** + * The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + * + */ + @Import(name="createTime") + private @Nullable Output createTime; + + /** + * @return The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + * + */ + public Optional> createTime() { + return Optional.ofNullable(this.createTime); + } + + /** + * A description of the mute config. + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return A description of the mute config. + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + */ + @Import(name="filter") + private @Nullable Output filter; + + /** + * @return An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + */ + public Optional> filter() { + return Optional.ofNullable(this.filter); + } + + /** + * location Id is provided by organization. If not provided, Use global as default. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return location Id is provided by organization. If not provided, Use global as default. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + * + */ + @Import(name="mostRecentEditor") + private @Nullable Output mostRecentEditor; + + /** + * @return Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + * + */ + public Optional> mostRecentEditor() { + return Optional.ofNullable(this.mostRecentEditor); + } + + /** + * Unique identifier provided by the client within the parent scope. + * + * *** + * + */ + @Import(name="muteConfigId") + private @Nullable Output muteConfigId; + + /** + * @return Unique identifier provided by the client within the parent scope. + * + * *** + * + */ + public Optional> muteConfigId() { + return Optional.ofNullable(this.muteConfigId); + } + + /** + * Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + */ + @Import(name="organization") + private @Nullable Output organization; + + /** + * @return The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + */ + public Optional> organization() { + return Optional.ofNullable(this.organization); + } + + /** + * The type of the mute config. + * + */ + @Import(name="type") + private @Nullable Output type; + + /** + * @return The type of the mute config. + * + */ + public Optional> type() { + return Optional.ofNullable(this.type); + } + + /** + * Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + * + */ + @Import(name="updateTime") + private @Nullable Output updateTime; + + /** + * @return Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + * + */ + public Optional> updateTime() { + return Optional.ofNullable(this.updateTime); + } + + private V2OrganizationMuteConfigState() {} + + private V2OrganizationMuteConfigState(V2OrganizationMuteConfigState $) { + this.createTime = $.createTime; + this.description = $.description; + this.filter = $.filter; + this.location = $.location; + this.mostRecentEditor = $.mostRecentEditor; + this.muteConfigId = $.muteConfigId; + this.name = $.name; + this.organization = $.organization; + this.type = $.type; + this.updateTime = $.updateTime; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(V2OrganizationMuteConfigState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private V2OrganizationMuteConfigState $; + + public Builder() { + $ = new V2OrganizationMuteConfigState(); + } + + public Builder(V2OrganizationMuteConfigState defaults) { + $ = new V2OrganizationMuteConfigState(Objects.requireNonNull(defaults)); + } + + /** + * @param createTime The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + * + * @return builder + * + */ + public Builder createTime(@Nullable Output createTime) { + $.createTime = createTime; + return this; + } + + /** + * @param createTime The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + * + * @return builder + * + */ + public Builder createTime(String createTime) { + return createTime(Output.of(createTime)); + } + + /** + * @param description A description of the mute config. + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description A description of the mute config. + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param filter An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + * @return builder + * + */ + public Builder filter(@Nullable Output filter) { + $.filter = filter; + return this; + } + + /** + * @param filter An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + * + * @return builder + * + */ + public Builder filter(String filter) { + return filter(Output.of(filter)); + } + + /** + * @param location location Id is provided by organization. If not provided, Use global as default. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location location Id is provided by organization. If not provided, Use global as default. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param mostRecentEditor Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + * + * @return builder + * + */ + public Builder mostRecentEditor(@Nullable Output mostRecentEditor) { + $.mostRecentEditor = mostRecentEditor; + return this; + } + + /** + * @param mostRecentEditor Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + * + * @return builder + * + */ + public Builder mostRecentEditor(String mostRecentEditor) { + return mostRecentEditor(Output.of(mostRecentEditor)); + } + + /** + * @param muteConfigId Unique identifier provided by the client within the parent scope. + * + * *** + * + * @return builder + * + */ + public Builder muteConfigId(@Nullable Output muteConfigId) { + $.muteConfigId = muteConfigId; + return this; + } + + /** + * @param muteConfigId Unique identifier provided by the client within the parent scope. + * + * *** + * + * @return builder + * + */ + public Builder muteConfigId(String muteConfigId) { + return muteConfigId(Output.of(muteConfigId)); + } + + /** + * @param name Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param organization The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + * @return builder + * + */ + public Builder organization(@Nullable Output organization) { + $.organization = organization; + return this; + } + + /** + * @param organization The organization whose Cloud Security Command Center the Mute + * Config lives in. + * + * @return builder + * + */ + public Builder organization(String organization) { + return organization(Output.of(organization)); + } + + /** + * @param type The type of the mute config. + * + * @return builder + * + */ + public Builder type(@Nullable Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of the mute config. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + /** + * @param updateTime Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + * + * @return builder + * + */ + public Builder updateTime(@Nullable Output updateTime) { + $.updateTime = updateTime; + return this; + } + + /** + * @param updateTime Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + * + * @return builder + * + */ + public Builder updateTime(String updateTime) { + return updateTime(Output.of(updateTime)); + } + + public V2OrganizationMuteConfigState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securityposture/Posture.java b/sdk/java/src/main/java/com/pulumi/gcp/securityposture/Posture.java index 4e1b34c5f4..d5bea9b7df 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securityposture/Posture.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securityposture/Posture.java @@ -373,13 +373,20 @@ public Posture(String name, PostureArgs args) { * @param options A bag of options that control this resource's behavior. */ public Posture(String name, PostureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securityposture/posture:Posture", name, args == null ? PostureArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securityposture/posture:Posture", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Posture(String name, Output id, @Nullable PostureState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securityposture/posture:Posture", name, state, makeResourceOptions(options, id)); } + private static PostureArgs makeArgs(PostureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PostureArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/securityposture/PostureDeployment.java b/sdk/java/src/main/java/com/pulumi/gcp/securityposture/PostureDeployment.java index cc455af740..c513f6485f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/securityposture/PostureDeployment.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/securityposture/PostureDeployment.java @@ -317,13 +317,20 @@ public PostureDeployment(String name, PostureDeploymentArgs args) { * @param options A bag of options that control this resource's behavior. */ public PostureDeployment(String name, PostureDeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:securityposture/postureDeployment:PostureDeployment", name, args == null ? PostureDeploymentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:securityposture/postureDeployment:PostureDeployment", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PostureDeployment(String name, Output id, @Nullable PostureDeploymentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:securityposture/postureDeployment:PostureDeployment", name, state, makeResourceOptions(options, id)); } + private static PostureDeploymentArgs makeArgs(PostureDeploymentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PostureDeploymentArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Account.java b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Account.java index cc50e7c35e..0e296941d9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Account.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Account.java @@ -264,13 +264,20 @@ public Account(String name, AccountArgs args) { * @param options A bag of options that control this resource's behavior. */ public Account(String name, AccountArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:serviceaccount/account:Account", name, args == null ? AccountArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:serviceaccount/account:Account", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Account(String name, Output id, @Nullable AccountState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:serviceaccount/account:Account", name, state, makeResourceOptions(options, id)); } + private static AccountArgs makeArgs(AccountArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccountArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMBinding.java index c4ea589e2d..535b9c3d41 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMBinding.java @@ -666,13 +666,20 @@ public IAMBinding(String name, IAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public IAMBinding(String name, IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:serviceaccount/iAMBinding:IAMBinding", name, args == null ? IAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:serviceaccount/iAMBinding:IAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IAMBinding(String name, Output id, @Nullable IAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:serviceaccount/iAMBinding:IAMBinding", name, state, makeResourceOptions(options, id)); } + private static IAMBindingArgs makeArgs(IAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMMember.java index a1b620aa82..00eed21b90 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMMember.java @@ -666,13 +666,20 @@ public IAMMember(String name, IAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public IAMMember(String name, IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:serviceaccount/iAMMember:IAMMember", name, args == null ? IAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:serviceaccount/iAMMember:IAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IAMMember(String name, Output id, @Nullable IAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:serviceaccount/iAMMember:IAMMember", name, state, makeResourceOptions(options, id)); } + private static IAMMemberArgs makeArgs(IAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMPolicy.java index 0ade96d5c6..32701a7cd1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/IAMPolicy.java @@ -618,13 +618,20 @@ public IAMPolicy(String name, IAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public IAMPolicy(String name, IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:serviceaccount/iAMPolicy:IAMPolicy", name, args == null ? IAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:serviceaccount/iAMPolicy:IAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private IAMPolicy(String name, Output id, @Nullable IAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:serviceaccount/iAMPolicy:IAMPolicy", name, state, makeResourceOptions(options, id)); } + private static IAMPolicyArgs makeArgs(IAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? IAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Key.java b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Key.java index dfcd59b415..897daf4f1c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Key.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/serviceaccount/Key.java @@ -372,13 +372,20 @@ public Key(String name, KeyArgs args) { * @param options A bag of options that control this resource's behavior. */ public Key(String name, KeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:serviceaccount/key:Key", name, args == null ? KeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:serviceaccount/key:Key", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Key(String name, Output id, @Nullable KeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:serviceaccount/key:Key", name, state, makeResourceOptions(options, id)); } + private static KeyArgs makeArgs(KeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? KeyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Endpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Endpoint.java index e2b27971ca..d780ef71f7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Endpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Endpoint.java @@ -313,13 +313,20 @@ public Endpoint(String name, EndpointArgs args) { * @param options A bag of options that control this resource's behavior. */ public Endpoint(String name, EndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/endpoint:Endpoint", name, args == null ? EndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/endpoint:Endpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Endpoint(String name, Output id, @Nullable EndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/endpoint:Endpoint", name, state, makeResourceOptions(options, id)); } + private static EndpointArgs makeArgs(EndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? EndpointArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Namespace.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Namespace.java index 9289170da7..8f4edf1f4c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Namespace.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Namespace.java @@ -242,13 +242,20 @@ public Namespace(String name, NamespaceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Namespace(String name, NamespaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/namespace:Namespace", name, args == null ? NamespaceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/namespace:Namespace", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Namespace(String name, Output id, @Nullable NamespaceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/namespace:Namespace", name, state, makeResourceOptions(options, id)); } + private static NamespaceArgs makeArgs(NamespaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NamespaceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamBinding.java index a26e8afb5b..cbf885fac3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamBinding.java @@ -417,13 +417,20 @@ public NamespaceIamBinding(String name, NamespaceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public NamespaceIamBinding(String name, NamespaceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/namespaceIamBinding:NamespaceIamBinding", name, args == null ? NamespaceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/namespaceIamBinding:NamespaceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NamespaceIamBinding(String name, Output id, @Nullable NamespaceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/namespaceIamBinding:NamespaceIamBinding", name, state, makeResourceOptions(options, id)); } + private static NamespaceIamBindingArgs makeArgs(NamespaceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NamespaceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamMember.java index 30cdf1d961..0692b4c1a6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamMember.java @@ -416,13 +416,20 @@ public NamespaceIamMember(String name, NamespaceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public NamespaceIamMember(String name, NamespaceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/namespaceIamMember:NamespaceIamMember", name, args == null ? NamespaceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/namespaceIamMember:NamespaceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NamespaceIamMember(String name, Output id, @Nullable NamespaceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/namespaceIamMember:NamespaceIamMember", name, state, makeResourceOptions(options, id)); } + private static NamespaceIamMemberArgs makeArgs(NamespaceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NamespaceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamPolicy.java index 52b0283466..b0c53b04ba 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/NamespaceIamPolicy.java @@ -372,13 +372,20 @@ public NamespaceIamPolicy(String name, NamespaceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public NamespaceIamPolicy(String name, NamespaceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/namespaceIamPolicy:NamespaceIamPolicy", name, args == null ? NamespaceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/namespaceIamPolicy:NamespaceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NamespaceIamPolicy(String name, Output id, @Nullable NamespaceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/namespaceIamPolicy:NamespaceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static NamespaceIamPolicyArgs makeArgs(NamespaceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NamespaceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Service.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Service.java index d6258f5802..b2c6c3196c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Service.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/Service.java @@ -193,13 +193,20 @@ public Service(String name, ServiceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Service(String name, ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/service:Service", name, args == null ? ServiceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/service:Service", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Service(String name, Output id, @Nullable ServiceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/service:Service", name, state, makeResourceOptions(options, id)); } + private static ServiceArgs makeArgs(ServiceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamBinding.java index 4a53c2d161..6b2277c092 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamBinding.java @@ -417,13 +417,20 @@ public ServiceIamBinding(String name, ServiceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamBinding(String name, ServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/serviceIamBinding:ServiceIamBinding", name, args == null ? ServiceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/serviceIamBinding:ServiceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamBinding(String name, Output id, @Nullable ServiceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/serviceIamBinding:ServiceIamBinding", name, state, makeResourceOptions(options, id)); } + private static ServiceIamBindingArgs makeArgs(ServiceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamMember.java index 040209a94c..129e253103 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamMember.java @@ -416,13 +416,20 @@ public ServiceIamMember(String name, ServiceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamMember(String name, ServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/serviceIamMember:ServiceIamMember", name, args == null ? ServiceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/serviceIamMember:ServiceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamMember(String name, Output id, @Nullable ServiceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/serviceIamMember:ServiceIamMember", name, state, makeResourceOptions(options, id)); } + private static ServiceIamMemberArgs makeArgs(ServiceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamPolicy.java index d113924907..8ccbc5fc3a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicedirectory/ServiceIamPolicy.java @@ -372,13 +372,20 @@ public ServiceIamPolicy(String name, ServiceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ServiceIamPolicy(String name, ServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicedirectory/serviceIamPolicy:ServiceIamPolicy", name, args == null ? ServiceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicedirectory/serviceIamPolicy:ServiceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ServiceIamPolicy(String name, Output id, @Nullable ServiceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicedirectory/serviceIamPolicy:ServiceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ServiceIamPolicyArgs makeArgs(ServiceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ServiceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/Connection.java b/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/Connection.java index 5ae27a50aa..271b722fac 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/Connection.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/Connection.java @@ -201,13 +201,20 @@ public Connection(String name, ConnectionArgs args) { * @param options A bag of options that control this resource's behavior. */ public Connection(String name, ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicenetworking/connection:Connection", name, args == null ? ConnectionArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicenetworking/connection:Connection", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Connection(String name, Output id, @Nullable ConnectionState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicenetworking/connection:Connection", name, state, makeResourceOptions(options, id)); } + private static ConnectionArgs makeArgs(ConnectionArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectionArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/PeeredDnsDomain.java b/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/PeeredDnsDomain.java index 0a4fcb457f..d3724451d2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/PeeredDnsDomain.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/PeeredDnsDomain.java @@ -188,13 +188,20 @@ public PeeredDnsDomain(String name, PeeredDnsDomainArgs args) { * @param options A bag of options that control this resource's behavior. */ public PeeredDnsDomain(String name, PeeredDnsDomainArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicenetworking/peeredDnsDomain:PeeredDnsDomain", name, args == null ? PeeredDnsDomainArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicenetworking/peeredDnsDomain:PeeredDnsDomain", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PeeredDnsDomain(String name, Output id, @Nullable PeeredDnsDomainState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicenetworking/peeredDnsDomain:PeeredDnsDomain", name, state, makeResourceOptions(options, id)); } + private static PeeredDnsDomainArgs makeArgs(PeeredDnsDomainArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PeeredDnsDomainArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/VpcServiceControls.java b/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/VpcServiceControls.java index 5e159d4061..cb69cf0794 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/VpcServiceControls.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/servicenetworking/VpcServiceControls.java @@ -240,13 +240,20 @@ public VpcServiceControls(String name, VpcServiceControlsArgs args) { * @param options A bag of options that control this resource's behavior. */ public VpcServiceControls(String name, VpcServiceControlsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:servicenetworking/vpcServiceControls:VpcServiceControls", name, args == null ? VpcServiceControlsArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:servicenetworking/vpcServiceControls:VpcServiceControls", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private VpcServiceControls(String name, Output id, @Nullable VpcServiceControlsState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:servicenetworking/vpcServiceControls:VpcServiceControls", name, state, makeResourceOptions(options, id)); } + private static VpcServiceControlsArgs makeArgs(VpcServiceControlsArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? VpcServiceControlsArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/serviceusage/ConsumerQuotaOverride.java b/sdk/java/src/main/java/com/pulumi/gcp/serviceusage/ConsumerQuotaOverride.java index b79f5191c3..03865e119b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/serviceusage/ConsumerQuotaOverride.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/serviceusage/ConsumerQuotaOverride.java @@ -359,13 +359,20 @@ public ConsumerQuotaOverride(String name, ConsumerQuotaOverrideArgs args) { * @param options A bag of options that control this resource's behavior. */ public ConsumerQuotaOverride(String name, ConsumerQuotaOverrideArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:serviceusage/consumerQuotaOverride:ConsumerQuotaOverride", name, args == null ? ConsumerQuotaOverrideArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:serviceusage/consumerQuotaOverride:ConsumerQuotaOverride", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ConsumerQuotaOverride(String name, Output id, @Nullable ConsumerQuotaOverrideState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:serviceusage/consumerQuotaOverride:ConsumerQuotaOverride", name, state, makeResourceOptions(options, id)); } + private static ConsumerQuotaOverrideArgs makeArgs(ConsumerQuotaOverrideArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConsumerQuotaOverrideArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/Repository.java b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/Repository.java index cde1060983..00cf8628c5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/Repository.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/Repository.java @@ -242,13 +242,20 @@ public Repository(String name, @Nullable RepositoryArgs args) { * @param options A bag of options that control this resource's behavior. */ public Repository(String name, @Nullable RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sourcerepo/repository:Repository", name, args == null ? RepositoryArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sourcerepo/repository:Repository", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Repository(String name, Output id, @Nullable RepositoryState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sourcerepo/repository:Repository", name, state, makeResourceOptions(options, id)); } + private static RepositoryArgs makeArgs(@Nullable RepositoryArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamBinding.java index 854ec3df19..b44e650f7b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamBinding.java @@ -437,13 +437,20 @@ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamBinding(String name, RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sourcerepo/repositoryIamBinding:RepositoryIamBinding", name, args == null ? RepositoryIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sourcerepo/repositoryIamBinding:RepositoryIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamBinding(String name, Output id, @Nullable RepositoryIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sourcerepo/repositoryIamBinding:RepositoryIamBinding", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamBindingArgs makeArgs(RepositoryIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamMember.java index a13f854e73..3d6c1d83e0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamMember.java @@ -436,13 +436,20 @@ public RepositoryIamMember(String name, RepositoryIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamMember(String name, RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sourcerepo/repositoryIamMember:RepositoryIamMember", name, args == null ? RepositoryIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sourcerepo/repositoryIamMember:RepositoryIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamMember(String name, Output id, @Nullable RepositoryIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sourcerepo/repositoryIamMember:RepositoryIamMember", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamMemberArgs makeArgs(RepositoryIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamPolicy.java index 60f6c5b8b1..aa40ce8778 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sourcerepo/RepositoryIamPolicy.java @@ -392,13 +392,20 @@ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public RepositoryIamPolicy(String name, RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sourcerepo/repositoryIamPolicy:RepositoryIamPolicy", name, args == null ? RepositoryIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sourcerepo/repositoryIamPolicy:RepositoryIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private RepositoryIamPolicy(String name, Output id, @Nullable RepositoryIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sourcerepo/repositoryIamPolicy:RepositoryIamPolicy", name, state, makeResourceOptions(options, id)); } + private static RepositoryIamPolicyArgs makeArgs(RepositoryIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? RepositoryIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/Database.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/Database.java index ea99850272..c9b3cbc345 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/Database.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/Database.java @@ -301,13 +301,20 @@ public Database(String name, DatabaseArgs args) { * @param options A bag of options that control this resource's behavior. */ public Database(String name, DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/database:Database", name, args == null ? DatabaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/database:Database", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Database(String name, Output id, @Nullable DatabaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/database:Database", name, state, makeResourceOptions(options, id)); } + private static DatabaseArgs makeArgs(DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMBinding.java index 88e73ec710..7c8c28e258 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMBinding.java @@ -724,13 +724,20 @@ public DatabaseIAMBinding(String name, DatabaseIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatabaseIAMBinding(String name, DatabaseIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/databaseIAMBinding:DatabaseIAMBinding", name, args == null ? DatabaseIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/databaseIAMBinding:DatabaseIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatabaseIAMBinding(String name, Output id, @Nullable DatabaseIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/databaseIAMBinding:DatabaseIAMBinding", name, state, makeResourceOptions(options, id)); } + private static DatabaseIAMBindingArgs makeArgs(DatabaseIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMMember.java index b6c65c976b..dc8231ecea 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMMember.java @@ -723,13 +723,20 @@ public DatabaseIAMMember(String name, DatabaseIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatabaseIAMMember(String name, DatabaseIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/databaseIAMMember:DatabaseIAMMember", name, args == null ? DatabaseIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/databaseIAMMember:DatabaseIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatabaseIAMMember(String name, Output id, @Nullable DatabaseIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/databaseIAMMember:DatabaseIAMMember", name, state, makeResourceOptions(options, id)); } + private static DatabaseIAMMemberArgs makeArgs(DatabaseIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMPolicy.java index d4488d7ea8..f2388d1986 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/DatabaseIAMPolicy.java @@ -675,13 +675,20 @@ public DatabaseIAMPolicy(String name, DatabaseIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatabaseIAMPolicy(String name, DatabaseIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/databaseIAMPolicy:DatabaseIAMPolicy", name, args == null ? DatabaseIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/databaseIAMPolicy:DatabaseIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatabaseIAMPolicy(String name, Output id, @Nullable DatabaseIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/databaseIAMPolicy:DatabaseIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static DatabaseIAMPolicyArgs makeArgs(DatabaseIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java index e397f3315f..6ba6788a16 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/Instance.java @@ -440,13 +440,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceConfig.java index f2c88481b6..b2c772f85d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceConfig.java @@ -211,13 +211,20 @@ public InstanceConfig(String name, InstanceConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceConfig(String name, InstanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/instanceConfig:InstanceConfig", name, args == null ? InstanceConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/instanceConfig:InstanceConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceConfig(String name, Output id, @Nullable InstanceConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/instanceConfig:InstanceConfig", name, state, makeResourceOptions(options, id)); } + private static InstanceConfigArgs makeArgs(InstanceConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMBinding.java index df274d814d..ced222ff64 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMBinding.java @@ -416,13 +416,20 @@ public InstanceIAMBinding(String name, InstanceIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIAMBinding(String name, InstanceIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/instanceIAMBinding:InstanceIAMBinding", name, args == null ? InstanceIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/instanceIAMBinding:InstanceIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIAMBinding(String name, Output id, @Nullable InstanceIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/instanceIAMBinding:InstanceIAMBinding", name, state, makeResourceOptions(options, id)); } + private static InstanceIAMBindingArgs makeArgs(InstanceIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMMember.java index 395c9cef9c..90eed9c636 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMMember.java @@ -415,13 +415,20 @@ public InstanceIAMMember(String name, InstanceIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIAMMember(String name, InstanceIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/instanceIAMMember:InstanceIAMMember", name, args == null ? InstanceIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/instanceIAMMember:InstanceIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIAMMember(String name, Output id, @Nullable InstanceIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/instanceIAMMember:InstanceIAMMember", name, state, makeResourceOptions(options, id)); } + private static InstanceIAMMemberArgs makeArgs(InstanceIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMPolicy.java index 7061bebec6..6efc17d83e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/spanner/InstanceIAMPolicy.java @@ -377,13 +377,20 @@ public InstanceIAMPolicy(String name, InstanceIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIAMPolicy(String name, InstanceIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:spanner/instanceIAMPolicy:InstanceIAMPolicy", name, args == null ? InstanceIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:spanner/instanceIAMPolicy:InstanceIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIAMPolicy(String name, Output id, @Nullable InstanceIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:spanner/instanceIAMPolicy:InstanceIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static InstanceIAMPolicyArgs makeArgs(InstanceIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/Database.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/Database.java index 30677a9434..8d43c5b385 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/Database.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/Database.java @@ -312,13 +312,20 @@ public Database(String name, DatabaseArgs args) { * @param options A bag of options that control this resource's behavior. */ public Database(String name, DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sql/database:Database", name, args == null ? DatabaseArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sql/database:Database", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Database(String name, Output id, @Nullable DatabaseState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sql/database:Database", name, state, makeResourceOptions(options, id)); } + private static DatabaseArgs makeArgs(DatabaseArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java index 07a70e9d48..c85313a783 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/DatabaseInstance.java @@ -145,7 +145,7 @@ * .tier("db-f1-micro") * .ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder() * .ipv4Enabled(false) - * .privateNetwork(privateNetwork.id()) + * .privateNetwork(privateNetwork.selfLink()) * .enablePrivatePathForGoogleCloudServices(true) * .build()) * .build()) @@ -716,13 +716,20 @@ public DatabaseInstance(String name, DatabaseInstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public DatabaseInstance(String name, DatabaseInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sql/databaseInstance:DatabaseInstance", name, args == null ? DatabaseInstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sql/databaseInstance:DatabaseInstance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DatabaseInstance(String name, Output id, @Nullable DatabaseInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sql/databaseInstance:DatabaseInstance", name, state, makeResourceOptions(options, id)); } + private static DatabaseInstanceArgs makeArgs(DatabaseInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DatabaseInstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/SourceRepresentationInstance.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/SourceRepresentationInstance.java index 44991ef2d7..bf99e20e84 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/SourceRepresentationInstance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/SourceRepresentationInstance.java @@ -340,13 +340,20 @@ public SourceRepresentationInstance(String name, SourceRepresentationInstanceArg * @param options A bag of options that control this resource's behavior. */ public SourceRepresentationInstance(String name, SourceRepresentationInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sql/sourceRepresentationInstance:SourceRepresentationInstance", name, args == null ? SourceRepresentationInstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sql/sourceRepresentationInstance:SourceRepresentationInstance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SourceRepresentationInstance(String name, Output id, @Nullable SourceRepresentationInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sql/sourceRepresentationInstance:SourceRepresentationInstance", name, state, makeResourceOptions(options, id)); } + private static SourceRepresentationInstanceArgs makeArgs(SourceRepresentationInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SourceRepresentationInstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/SslCert.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/SslCert.java index 7f1c9872a0..2453f1ffb0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/SslCert.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/SslCert.java @@ -252,13 +252,20 @@ public SslCert(String name, SslCertArgs args) { * @param options A bag of options that control this resource's behavior. */ public SslCert(String name, SslCertArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sql/sslCert:SslCert", name, args == null ? SslCertArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sql/sslCert:SslCert", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private SslCert(String name, Output id, @Nullable SslCertState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sql/sslCert:SslCert", name, state, makeResourceOptions(options, id)); } + private static SslCertArgs makeArgs(SslCertArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SslCertArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/sql/User.java b/sdk/java/src/main/java/com/pulumi/gcp/sql/User.java index 8beba7d1c6..9855f807f6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/sql/User.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/sql/User.java @@ -398,13 +398,20 @@ public User(String name, UserArgs args) { * @param options A bag of options that control this resource's behavior. */ public User(String name, UserArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:sql/user:User", name, args == null ? UserArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:sql/user:User", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private User(String name, Output id, @Nullable UserState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:sql/user:User", name, state, makeResourceOptions(options, id)); } + private static UserArgs makeArgs(UserArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? UserArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/Bucket.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/Bucket.java index 7d1effed33..c8d4b65ec5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/Bucket.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/Bucket.java @@ -680,13 +680,20 @@ public Bucket(String name, BucketArgs args) { * @param options A bag of options that control this resource's behavior. */ public Bucket(String name, BucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/bucket:Bucket", name, args == null ? BucketArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/bucket:Bucket", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Bucket(String name, Output id, @Nullable BucketState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/bucket:Bucket", name, state, makeResourceOptions(options, id)); } + private static BucketArgs makeArgs(BucketArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BucketArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketACL.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketACL.java index d09563c75d..9b23bf1f55 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketACL.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketACL.java @@ -164,13 +164,20 @@ public BucketACL(String name, BucketACLArgs args) { * @param options A bag of options that control this resource's behavior. */ public BucketACL(String name, BucketACLArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/bucketACL:BucketACL", name, args == null ? BucketACLArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/bucketACL:BucketACL", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BucketACL(String name, Output id, @Nullable BucketACLState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/bucketACL:BucketACL", name, state, makeResourceOptions(options, id)); } + private static BucketACLArgs makeArgs(BucketACLArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BucketACLArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketAccessControl.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketAccessControl.java index 0e6271211d..d257d7000f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketAccessControl.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketAccessControl.java @@ -226,13 +226,20 @@ public BucketAccessControl(String name, BucketAccessControlArgs args) { * @param options A bag of options that control this resource's behavior. */ public BucketAccessControl(String name, BucketAccessControlArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/bucketAccessControl:BucketAccessControl", name, args == null ? BucketAccessControlArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/bucketAccessControl:BucketAccessControl", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BucketAccessControl(String name, Output id, @Nullable BucketAccessControlState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/bucketAccessControl:BucketAccessControl", name, state, makeResourceOptions(options, id)); } + private static BucketAccessControlArgs makeArgs(BucketAccessControlArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BucketAccessControlArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMBinding.java index 6823dcecb7..2c15185a1e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMBinding.java @@ -695,13 +695,20 @@ public BucketIAMBinding(String name, BucketIAMBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public BucketIAMBinding(String name, BucketIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/bucketIAMBinding:BucketIAMBinding", name, args == null ? BucketIAMBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/bucketIAMBinding:BucketIAMBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BucketIAMBinding(String name, Output id, @Nullable BucketIAMBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/bucketIAMBinding:BucketIAMBinding", name, state, makeResourceOptions(options, id)); } + private static BucketIAMBindingArgs makeArgs(BucketIAMBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BucketIAMBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMMember.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMMember.java index 6f2c8b03f7..60151f2213 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMMember.java @@ -694,13 +694,20 @@ public BucketIAMMember(String name, BucketIAMMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public BucketIAMMember(String name, BucketIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/bucketIAMMember:BucketIAMMember", name, args == null ? BucketIAMMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/bucketIAMMember:BucketIAMMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BucketIAMMember(String name, Output id, @Nullable BucketIAMMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/bucketIAMMember:BucketIAMMember", name, state, makeResourceOptions(options, id)); } + private static BucketIAMMemberArgs makeArgs(BucketIAMMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BucketIAMMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMPolicy.java index ccd3da66dc..e689429590 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketIAMPolicy.java @@ -640,13 +640,20 @@ public BucketIAMPolicy(String name, BucketIAMPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public BucketIAMPolicy(String name, BucketIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/bucketIAMPolicy:BucketIAMPolicy", name, args == null ? BucketIAMPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/bucketIAMPolicy:BucketIAMPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BucketIAMPolicy(String name, Output id, @Nullable BucketIAMPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/bucketIAMPolicy:BucketIAMPolicy", name, state, makeResourceOptions(options, id)); } + private static BucketIAMPolicyArgs makeArgs(BucketIAMPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BucketIAMPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketObject.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketObject.java index 4ad975a72b..5a15592eb8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketObject.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/BucketObject.java @@ -455,13 +455,20 @@ public BucketObject(String name, BucketObjectArgs args) { * @param options A bag of options that control this resource's behavior. */ public BucketObject(String name, BucketObjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/bucketObject:BucketObject", name, args == null ? BucketObjectArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/bucketObject:BucketObject", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private BucketObject(String name, Output id, @Nullable BucketObjectState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/bucketObject:BucketObject", name, state, makeResourceOptions(options, id)); } + private static BucketObjectArgs makeArgs(BucketObjectArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BucketObjectArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectACL.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectACL.java index 17db8d3524..ca552f4936 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectACL.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectACL.java @@ -138,13 +138,20 @@ public DefaultObjectACL(String name, DefaultObjectACLArgs args) { * @param options A bag of options that control this resource's behavior. */ public DefaultObjectACL(String name, DefaultObjectACLArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/defaultObjectACL:DefaultObjectACL", name, args == null ? DefaultObjectACLArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/defaultObjectACL:DefaultObjectACL", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DefaultObjectACL(String name, Output id, @Nullable DefaultObjectACLState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/defaultObjectACL:DefaultObjectACL", name, state, makeResourceOptions(options, id)); } + private static DefaultObjectACLArgs makeArgs(DefaultObjectACLArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DefaultObjectACLArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectAccessControl.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectAccessControl.java index cf98ed37ad..d734193b74 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectAccessControl.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/DefaultObjectAccessControl.java @@ -272,13 +272,20 @@ public DefaultObjectAccessControl(String name, DefaultObjectAccessControlArgs ar * @param options A bag of options that control this resource's behavior. */ public DefaultObjectAccessControl(String name, DefaultObjectAccessControlArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/defaultObjectAccessControl:DefaultObjectAccessControl", name, args == null ? DefaultObjectAccessControlArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/defaultObjectAccessControl:DefaultObjectAccessControl", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private DefaultObjectAccessControl(String name, Output id, @Nullable DefaultObjectAccessControlState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/defaultObjectAccessControl:DefaultObjectAccessControl", name, state, makeResourceOptions(options, id)); } + private static DefaultObjectAccessControlArgs makeArgs(DefaultObjectAccessControlArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? DefaultObjectAccessControlArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/HmacKey.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/HmacKey.java index 25d1447ff7..30c846f792 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/HmacKey.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/HmacKey.java @@ -231,13 +231,20 @@ public HmacKey(String name, HmacKeyArgs args) { * @param options A bag of options that control this resource's behavior. */ public HmacKey(String name, HmacKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/hmacKey:HmacKey", name, args == null ? HmacKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/hmacKey:HmacKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private HmacKey(String name, Output id, @Nullable HmacKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/hmacKey:HmacKey", name, state, makeResourceOptions(options, id)); } + private static HmacKeyArgs makeArgs(HmacKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HmacKeyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/InsightsReportConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/InsightsReportConfig.java index 0d6c74c139..f32ec7c2a5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/InsightsReportConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/InsightsReportConfig.java @@ -272,13 +272,20 @@ public InsightsReportConfig(String name, InsightsReportConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public InsightsReportConfig(String name, InsightsReportConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/insightsReportConfig:InsightsReportConfig", name, args == null ? InsightsReportConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/insightsReportConfig:InsightsReportConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InsightsReportConfig(String name, Output id, @Nullable InsightsReportConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/insightsReportConfig:InsightsReportConfig", name, state, makeResourceOptions(options, id)); } + private static InsightsReportConfigArgs makeArgs(InsightsReportConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InsightsReportConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolder.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolder.java index 6a6045b46b..9b80f2622e 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolder.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolder.java @@ -212,13 +212,20 @@ public ManagedFolder(String name, ManagedFolderArgs args) { * @param options A bag of options that control this resource's behavior. */ public ManagedFolder(String name, ManagedFolderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/managedFolder:ManagedFolder", name, args == null ? ManagedFolderArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/managedFolder:ManagedFolder", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagedFolder(String name, Output id, @Nullable ManagedFolderState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/managedFolder:ManagedFolder", name, state, makeResourceOptions(options, id)); } + private static ManagedFolderArgs makeArgs(ManagedFolderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagedFolderArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamBinding.java index 28e50ef205..986ba8a193 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamBinding.java @@ -721,13 +721,20 @@ public ManagedFolderIamBinding(String name, ManagedFolderIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public ManagedFolderIamBinding(String name, ManagedFolderIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/managedFolderIamBinding:ManagedFolderIamBinding", name, args == null ? ManagedFolderIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/managedFolderIamBinding:ManagedFolderIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagedFolderIamBinding(String name, Output id, @Nullable ManagedFolderIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/managedFolderIamBinding:ManagedFolderIamBinding", name, state, makeResourceOptions(options, id)); } + private static ManagedFolderIamBindingArgs makeArgs(ManagedFolderIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagedFolderIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamMember.java index 5499e3a96b..25ca20d9a2 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamMember.java @@ -720,13 +720,20 @@ public ManagedFolderIamMember(String name, ManagedFolderIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public ManagedFolderIamMember(String name, ManagedFolderIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/managedFolderIamMember:ManagedFolderIamMember", name, args == null ? ManagedFolderIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/managedFolderIamMember:ManagedFolderIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagedFolderIamMember(String name, Output id, @Nullable ManagedFolderIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/managedFolderIamMember:ManagedFolderIamMember", name, state, makeResourceOptions(options, id)); } + private static ManagedFolderIamMemberArgs makeArgs(ManagedFolderIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagedFolderIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamPolicy.java index d6790ef820..0d145bd84f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/ManagedFolderIamPolicy.java @@ -666,13 +666,20 @@ public ManagedFolderIamPolicy(String name, ManagedFolderIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public ManagedFolderIamPolicy(String name, ManagedFolderIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/managedFolderIamPolicy:ManagedFolderIamPolicy", name, args == null ? ManagedFolderIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/managedFolderIamPolicy:ManagedFolderIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ManagedFolderIamPolicy(String name, Output id, @Nullable ManagedFolderIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/managedFolderIamPolicy:ManagedFolderIamPolicy", name, state, makeResourceOptions(options, id)); } + private static ManagedFolderIamPolicyArgs makeArgs(ManagedFolderIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ManagedFolderIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/Notification.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/Notification.java index 502a962f69..75a409d7bc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/Notification.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/Notification.java @@ -265,13 +265,20 @@ public Notification(String name, NotificationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Notification(String name, NotificationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/notification:Notification", name, args == null ? NotificationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/notification:Notification", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Notification(String name, Output id, @Nullable NotificationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/notification:Notification", name, state, makeResourceOptions(options, id)); } + private static NotificationArgs makeArgs(NotificationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NotificationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectACL.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectACL.java index 7aaba3d361..6c996cf7d9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectACL.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectACL.java @@ -177,13 +177,20 @@ public ObjectACL(String name, ObjectACLArgs args) { * @param options A bag of options that control this resource's behavior. */ public ObjectACL(String name, ObjectACLArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/objectACL:ObjectACL", name, args == null ? ObjectACLArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/objectACL:ObjectACL", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ObjectACL(String name, Output id, @Nullable ObjectACLState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/objectACL:ObjectACL", name, state, makeResourceOptions(options, id)); } + private static ObjectACLArgs makeArgs(ObjectACLArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ObjectACLArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectAccessControl.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectAccessControl.java index e89b9108fb..dbd32d8f1d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectAccessControl.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/ObjectAccessControl.java @@ -280,13 +280,20 @@ public ObjectAccessControl(String name, ObjectAccessControlArgs args) { * @param options A bag of options that control this resource's behavior. */ public ObjectAccessControl(String name, ObjectAccessControlArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/objectAccessControl:ObjectAccessControl", name, args == null ? ObjectAccessControlArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/objectAccessControl:ObjectAccessControl", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ObjectAccessControl(String name, Output id, @Nullable ObjectAccessControlState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/objectAccessControl:ObjectAccessControl", name, state, makeResourceOptions(options, id)); } + private static ObjectAccessControlArgs makeArgs(ObjectAccessControlArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ObjectAccessControlArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferAgentPool.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferAgentPool.java index e37bf4ab04..03268c87a9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferAgentPool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferAgentPool.java @@ -225,13 +225,20 @@ public TransferAgentPool(String name, @Nullable TransferAgentPoolArgs args) { * @param options A bag of options that control this resource's behavior. */ public TransferAgentPool(String name, @Nullable TransferAgentPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/transferAgentPool:TransferAgentPool", name, args == null ? TransferAgentPoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/transferAgentPool:TransferAgentPool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TransferAgentPool(String name, Output id, @Nullable TransferAgentPoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/transferAgentPool:TransferAgentPool", name, state, makeResourceOptions(options, id)); } + private static TransferAgentPoolArgs makeArgs(@Nullable TransferAgentPoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TransferAgentPoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferJob.java b/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferJob.java index 68b31c974d..fd50de73b5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferJob.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/storage/TransferJob.java @@ -365,13 +365,20 @@ public TransferJob(String name, TransferJobArgs args) { * @param options A bag of options that control this resource's behavior. */ public TransferJob(String name, TransferJobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:storage/transferJob:TransferJob", name, args == null ? TransferJobArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:storage/transferJob:TransferJob", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TransferJob(String name, Output id, @Nullable TransferJobState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:storage/transferJob:TransferJob", name, state, makeResourceOptions(options, id)); } + private static TransferJobArgs makeArgs(TransferJobArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TransferJobArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/LocationTagBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/LocationTagBinding.java index fdf476e11c..0238c3312f 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/LocationTagBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/LocationTagBinding.java @@ -247,13 +247,20 @@ public LocationTagBinding(String name, LocationTagBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public LocationTagBinding(String name, LocationTagBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/locationTagBinding:LocationTagBinding", name, args == null ? LocationTagBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/locationTagBinding:LocationTagBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private LocationTagBinding(String name, Output id, @Nullable LocationTagBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/locationTagBinding:LocationTagBinding", name, state, makeResourceOptions(options, id)); } + private static LocationTagBindingArgs makeArgs(LocationTagBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? LocationTagBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagBinding.java index c6362b3046..58367544c3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagBinding.java @@ -174,13 +174,20 @@ public TagBinding(String name, TagBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagBinding(String name, TagBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagBinding:TagBinding", name, args == null ? TagBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagBinding:TagBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagBinding(String name, Output id, @Nullable TagBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagBinding:TagBinding", name, state, makeResourceOptions(options, id)); } + private static TagBindingArgs makeArgs(TagBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKey.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKey.java index 1a2ec44388..899b46405b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKey.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKey.java @@ -249,13 +249,20 @@ public TagKey(String name, TagKeyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagKey(String name, TagKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagKey:TagKey", name, args == null ? TagKeyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagKey:TagKey", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagKey(String name, Output id, @Nullable TagKeyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagKey:TagKey", name, state, makeResourceOptions(options, id)); } + private static TagKeyArgs makeArgs(TagKeyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagKeyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamBinding.java index b8c671b1bc..359dabc7d5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamBinding.java @@ -415,13 +415,20 @@ public TagKeyIamBinding(String name, TagKeyIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagKeyIamBinding(String name, TagKeyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagKeyIamBinding:TagKeyIamBinding", name, args == null ? TagKeyIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagKeyIamBinding:TagKeyIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagKeyIamBinding(String name, Output id, @Nullable TagKeyIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagKeyIamBinding:TagKeyIamBinding", name, state, makeResourceOptions(options, id)); } + private static TagKeyIamBindingArgs makeArgs(TagKeyIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagKeyIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamMember.java index f1b5e1365f..dfe2a64886 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamMember.java @@ -414,13 +414,20 @@ public TagKeyIamMember(String name, TagKeyIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagKeyIamMember(String name, TagKeyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagKeyIamMember:TagKeyIamMember", name, args == null ? TagKeyIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagKeyIamMember:TagKeyIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagKeyIamMember(String name, Output id, @Nullable TagKeyIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagKeyIamMember:TagKeyIamMember", name, state, makeResourceOptions(options, id)); } + private static TagKeyIamMemberArgs makeArgs(TagKeyIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagKeyIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamPolicy.java index 2fb20e3549..ad4999a706 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagKeyIamPolicy.java @@ -370,13 +370,20 @@ public TagKeyIamPolicy(String name, TagKeyIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagKeyIamPolicy(String name, TagKeyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagKeyIamPolicy:TagKeyIamPolicy", name, args == null ? TagKeyIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagKeyIamPolicy:TagKeyIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagKeyIamPolicy(String name, Output id, @Nullable TagKeyIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagKeyIamPolicy:TagKeyIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TagKeyIamPolicyArgs makeArgs(TagKeyIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagKeyIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java index a7b0b0122a..5c95656108 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValue.java @@ -222,13 +222,20 @@ public TagValue(String name, TagValueArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagValue(String name, TagValueArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagValue:TagValue", name, args == null ? TagValueArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagValue:TagValue", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagValue(String name, Output id, @Nullable TagValueState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagValue:TagValue", name, state, makeResourceOptions(options, id)); } + private static TagValueArgs makeArgs(TagValueArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagValueArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamBinding.java index 05ec3ef5a6..eccc146398 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamBinding.java @@ -415,13 +415,20 @@ public TagValueIamBinding(String name, TagValueIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagValueIamBinding(String name, TagValueIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagValueIamBinding:TagValueIamBinding", name, args == null ? TagValueIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagValueIamBinding:TagValueIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagValueIamBinding(String name, Output id, @Nullable TagValueIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagValueIamBinding:TagValueIamBinding", name, state, makeResourceOptions(options, id)); } + private static TagValueIamBindingArgs makeArgs(TagValueIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagValueIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamMember.java index a446832375..1e83bb32b9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamMember.java @@ -414,13 +414,20 @@ public TagValueIamMember(String name, TagValueIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagValueIamMember(String name, TagValueIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagValueIamMember:TagValueIamMember", name, args == null ? TagValueIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagValueIamMember:TagValueIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagValueIamMember(String name, Output id, @Nullable TagValueIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagValueIamMember:TagValueIamMember", name, state, makeResourceOptions(options, id)); } + private static TagValueIamMemberArgs makeArgs(TagValueIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagValueIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamPolicy.java index 2ba609c078..d203815b79 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tags/TagValueIamPolicy.java @@ -370,13 +370,20 @@ public TagValueIamPolicy(String name, TagValueIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public TagValueIamPolicy(String name, TagValueIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tags/tagValueIamPolicy:TagValueIamPolicy", name, args == null ? TagValueIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tags/tagValueIamPolicy:TagValueIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private TagValueIamPolicy(String name, Output id, @Nullable TagValueIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tags/tagValueIamPolicy:TagValueIamPolicy", name, state, makeResourceOptions(options, id)); } + private static TagValueIamPolicyArgs makeArgs(TagValueIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? TagValueIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tpu/Node.java b/sdk/java/src/main/java/com/pulumi/gcp/tpu/Node.java index c5ad264c66..76bb16e497 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tpu/Node.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tpu/Node.java @@ -464,13 +464,20 @@ public Node(String name, NodeArgs args) { * @param options A bag of options that control this resource's behavior. */ public Node(String name, NodeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tpu/node:Node", name, args == null ? NodeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tpu/node:Node", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Node(String name, Output id, @Nullable NodeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tpu/node:Node", name, state, makeResourceOptions(options, id)); } + private static NodeArgs makeArgs(NodeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NodeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/tpu/V2Vm.java b/sdk/java/src/main/java/com/pulumi/gcp/tpu/V2Vm.java index 89d8758511..f85f6f99f3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/tpu/V2Vm.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/tpu/V2Vm.java @@ -658,13 +658,20 @@ public V2Vm(String name, V2VmArgs args) { * @param options A bag of options that control this resource's behavior. */ public V2Vm(String name, V2VmArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:tpu/v2Vm:V2Vm", name, args == null ? V2VmArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:tpu/v2Vm:V2Vm", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private V2Vm(String name, Output id, @Nullable V2VmState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:tpu/v2Vm:V2Vm", name, state, makeResourceOptions(options, id)); } + private static V2VmArgs makeArgs(V2VmArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? V2VmArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDataset.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDataset.java index 2bd6781181..cfc868c5cd 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDataset.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDataset.java @@ -266,13 +266,20 @@ public AiDataset(String name, AiDatasetArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiDataset(String name, AiDatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiDataset:AiDataset", name, args == null ? AiDatasetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiDataset:AiDataset", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiDataset(String name, Output id, @Nullable AiDatasetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiDataset:AiDataset", name, state, makeResourceOptions(options, id)); } + private static AiDatasetArgs makeArgs(AiDatasetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiDatasetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDeploymentResourcePool.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDeploymentResourcePool.java index 72e975d28f..880cf22a97 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDeploymentResourcePool.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiDeploymentResourcePool.java @@ -210,13 +210,20 @@ public AiDeploymentResourcePool(String name, @Nullable AiDeploymentResourcePoolA * @param options A bag of options that control this resource's behavior. */ public AiDeploymentResourcePool(String name, @Nullable AiDeploymentResourcePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiDeploymentResourcePool:AiDeploymentResourcePool", name, args == null ? AiDeploymentResourcePoolArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiDeploymentResourcePool:AiDeploymentResourcePool", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiDeploymentResourcePool(String name, Output id, @Nullable AiDeploymentResourcePoolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiDeploymentResourcePool:AiDeploymentResourcePool", name, state, makeResourceOptions(options, id)); } + private static AiDeploymentResourcePoolArgs makeArgs(@Nullable AiDeploymentResourcePoolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiDeploymentResourcePoolArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java index 970187f11a..3f8fc06e15 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpoint.java @@ -405,13 +405,20 @@ public AiEndpoint(String name, AiEndpointArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiEndpoint(String name, AiEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiEndpoint:AiEndpoint", name, args == null ? AiEndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiEndpoint:AiEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiEndpoint(String name, Output id, @Nullable AiEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiEndpoint:AiEndpoint", name, state, makeResourceOptions(options, id)); } + private static AiEndpointArgs makeArgs(AiEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiEndpointArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamBinding.java index 31da0d9bdb..8081cfc3c1 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamBinding.java @@ -83,13 +83,20 @@ public AiEndpointIamBinding(String name, AiEndpointIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiEndpointIamBinding(String name, AiEndpointIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiEndpointIamBinding:AiEndpointIamBinding", name, args == null ? AiEndpointIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiEndpointIamBinding:AiEndpointIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiEndpointIamBinding(String name, Output id, @Nullable AiEndpointIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiEndpointIamBinding:AiEndpointIamBinding", name, state, makeResourceOptions(options, id)); } + private static AiEndpointIamBindingArgs makeArgs(AiEndpointIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiEndpointIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamMember.java index 111460a4d1..80d72c48a5 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamMember.java @@ -82,13 +82,20 @@ public AiEndpointIamMember(String name, AiEndpointIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiEndpointIamMember(String name, AiEndpointIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiEndpointIamMember:AiEndpointIamMember", name, args == null ? AiEndpointIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiEndpointIamMember:AiEndpointIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiEndpointIamMember(String name, Output id, @Nullable AiEndpointIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiEndpointIamMember:AiEndpointIamMember", name, state, makeResourceOptions(options, id)); } + private static AiEndpointIamMemberArgs makeArgs(AiEndpointIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiEndpointIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamPolicy.java index 48f70e117f..387e578098 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiEndpointIamPolicy.java @@ -68,13 +68,20 @@ public AiEndpointIamPolicy(String name, AiEndpointIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiEndpointIamPolicy(String name, AiEndpointIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiEndpointIamPolicy:AiEndpointIamPolicy", name, args == null ? AiEndpointIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiEndpointIamPolicy:AiEndpointIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiEndpointIamPolicy(String name, Output id, @Nullable AiEndpointIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiEndpointIamPolicy:AiEndpointIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AiEndpointIamPolicyArgs makeArgs(AiEndpointIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiEndpointIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroup.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroup.java index 33d1e522f7..b921507a45 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroup.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroup.java @@ -330,13 +330,20 @@ public AiFeatureGroup(String name, @Nullable AiFeatureGroupArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiFeatureGroup(String name, @Nullable AiFeatureGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureGroup:AiFeatureGroup", name, args == null ? AiFeatureGroupArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureGroup:AiFeatureGroup", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureGroup(String name, Output id, @Nullable AiFeatureGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureGroup:AiFeatureGroup", name, state, makeResourceOptions(options, id)); } + private static AiFeatureGroupArgs makeArgs(@Nullable AiFeatureGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureGroupArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroupFeature.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroupFeature.java index d5316e4831..b19f32c3ee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroupFeature.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureGroupFeature.java @@ -346,13 +346,20 @@ public AiFeatureGroupFeature(String name, AiFeatureGroupFeatureArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiFeatureGroupFeature(String name, AiFeatureGroupFeatureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureGroupFeature:AiFeatureGroupFeature", name, args == null ? AiFeatureGroupFeatureArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureGroupFeature:AiFeatureGroupFeature", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureGroupFeature(String name, Output id, @Nullable AiFeatureGroupFeatureState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureGroupFeature:AiFeatureGroupFeature", name, state, makeResourceOptions(options, id)); } + private static AiFeatureGroupFeatureArgs makeArgs(AiFeatureGroupFeatureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureGroupFeatureArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStore.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStore.java index e3ce1f0c9b..6993c6edee 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStore.java @@ -474,13 +474,20 @@ public AiFeatureOnlineStore(String name, @Nullable AiFeatureOnlineStoreArgs args * @param options A bag of options that control this resource's behavior. */ public AiFeatureOnlineStore(String name, @Nullable AiFeatureOnlineStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureOnlineStore:AiFeatureOnlineStore", name, args == null ? AiFeatureOnlineStoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureOnlineStore:AiFeatureOnlineStore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureOnlineStore(String name, Output id, @Nullable AiFeatureOnlineStoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureOnlineStore:AiFeatureOnlineStore", name, state, makeResourceOptions(options, id)); } + private static AiFeatureOnlineStoreArgs makeArgs(@Nullable AiFeatureOnlineStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureOnlineStoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java index 1f558b9364..7dc9a2c960 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureOnlineStoreFeatureview.java @@ -328,8 +328,8 @@ * final var testProject = OrganizationsFunctions.getProject(); * * var project = new Project("project", ProjectArgs.builder() - * .projectId("tf-test_55138") - * .name("tf-test_37559") + * .projectId("tf-test_13293") + * .name("tf-test_40289") * .orgId("123456789") * .billingAccount("000000-0000000-0000000-000000") * .build()); @@ -874,13 +874,20 @@ public AiFeatureOnlineStoreFeatureview(String name, AiFeatureOnlineStoreFeaturev * @param options A bag of options that control this resource's behavior. */ public AiFeatureOnlineStoreFeatureview(String name, AiFeatureOnlineStoreFeatureviewArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview", name, args == null ? AiFeatureOnlineStoreFeatureviewArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureOnlineStoreFeatureview(String name, Output id, @Nullable AiFeatureOnlineStoreFeatureviewState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureOnlineStoreFeatureview:AiFeatureOnlineStoreFeatureview", name, state, makeResourceOptions(options, id)); } + private static AiFeatureOnlineStoreFeatureviewArgs makeArgs(AiFeatureOnlineStoreFeatureviewArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureOnlineStoreFeatureviewArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java index 935854448d..58b6cb14e7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStore.java @@ -424,13 +424,20 @@ public AiFeatureStore(String name, @Nullable AiFeatureStoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiFeatureStore(String name, @Nullable AiFeatureStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStore:AiFeatureStore", name, args == null ? AiFeatureStoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStore:AiFeatureStore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStore(String name, Output id, @Nullable AiFeatureStoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStore:AiFeatureStore", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreArgs makeArgs(@Nullable AiFeatureStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java index 2f759e7b84..9a34cd3f65 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityType.java @@ -396,13 +396,20 @@ public AiFeatureStoreEntityType(String name, AiFeatureStoreEntityTypeArgs args) * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreEntityType(String name, AiFeatureStoreEntityTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreEntityType:AiFeatureStoreEntityType", name, args == null ? AiFeatureStoreEntityTypeArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreEntityType:AiFeatureStoreEntityType", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreEntityType(String name, Output id, @Nullable AiFeatureStoreEntityTypeState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreEntityType:AiFeatureStoreEntityType", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreEntityTypeArgs makeArgs(AiFeatureStoreEntityTypeArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreEntityTypeArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeFeature.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeFeature.java index a757d34381..5a04f3da9b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeFeature.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeFeature.java @@ -362,13 +362,20 @@ public AiFeatureStoreEntityTypeFeature(String name, AiFeatureStoreEntityTypeFeat * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreEntityTypeFeature(String name, AiFeatureStoreEntityTypeFeatureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreEntityTypeFeature:AiFeatureStoreEntityTypeFeature", name, args == null ? AiFeatureStoreEntityTypeFeatureArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreEntityTypeFeature:AiFeatureStoreEntityTypeFeature", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreEntityTypeFeature(String name, Output id, @Nullable AiFeatureStoreEntityTypeFeatureState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreEntityTypeFeature:AiFeatureStoreEntityTypeFeature", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreEntityTypeFeatureArgs makeArgs(AiFeatureStoreEntityTypeFeatureArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreEntityTypeFeatureArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamBinding.java index dee98c61d8..68f4a22154 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamBinding.java @@ -177,13 +177,20 @@ public AiFeatureStoreEntityTypeIamBinding(String name, AiFeatureStoreEntityTypeI * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreEntityTypeIamBinding(String name, AiFeatureStoreEntityTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreEntityTypeIamBinding:AiFeatureStoreEntityTypeIamBinding", name, args == null ? AiFeatureStoreEntityTypeIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreEntityTypeIamBinding:AiFeatureStoreEntityTypeIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreEntityTypeIamBinding(String name, Output id, @Nullable AiFeatureStoreEntityTypeIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreEntityTypeIamBinding:AiFeatureStoreEntityTypeIamBinding", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreEntityTypeIamBindingArgs makeArgs(AiFeatureStoreEntityTypeIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreEntityTypeIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamMember.java index 502a9eca0f..df207765bf 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamMember.java @@ -176,13 +176,20 @@ public AiFeatureStoreEntityTypeIamMember(String name, AiFeatureStoreEntityTypeIa * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreEntityTypeIamMember(String name, AiFeatureStoreEntityTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreEntityTypeIamMember:AiFeatureStoreEntityTypeIamMember", name, args == null ? AiFeatureStoreEntityTypeIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreEntityTypeIamMember:AiFeatureStoreEntityTypeIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreEntityTypeIamMember(String name, Output id, @Nullable AiFeatureStoreEntityTypeIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreEntityTypeIamMember:AiFeatureStoreEntityTypeIamMember", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreEntityTypeIamMemberArgs makeArgs(AiFeatureStoreEntityTypeIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreEntityTypeIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamPolicy.java index 98a8b7d5d8..ec05a0e58c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreEntityTypeIamPolicy.java @@ -132,13 +132,20 @@ public AiFeatureStoreEntityTypeIamPolicy(String name, AiFeatureStoreEntityTypeIa * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreEntityTypeIamPolicy(String name, AiFeatureStoreEntityTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreEntityTypeIamPolicy:AiFeatureStoreEntityTypeIamPolicy", name, args == null ? AiFeatureStoreEntityTypeIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreEntityTypeIamPolicy:AiFeatureStoreEntityTypeIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreEntityTypeIamPolicy(String name, Output id, @Nullable AiFeatureStoreEntityTypeIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreEntityTypeIamPolicy:AiFeatureStoreEntityTypeIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreEntityTypeIamPolicyArgs makeArgs(AiFeatureStoreEntityTypeIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreEntityTypeIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamBinding.java index 9b34dcae62..f4738e5731 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamBinding.java @@ -201,13 +201,20 @@ public AiFeatureStoreIamBinding(String name, AiFeatureStoreIamBindingArgs args) * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreIamBinding(String name, AiFeatureStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreIamBinding:AiFeatureStoreIamBinding", name, args == null ? AiFeatureStoreIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreIamBinding:AiFeatureStoreIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreIamBinding(String name, Output id, @Nullable AiFeatureStoreIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreIamBinding:AiFeatureStoreIamBinding", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreIamBindingArgs makeArgs(AiFeatureStoreIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamMember.java index 8886e14ff3..5bcadb54d8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamMember.java @@ -200,13 +200,20 @@ public AiFeatureStoreIamMember(String name, AiFeatureStoreIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreIamMember(String name, AiFeatureStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreIamMember:AiFeatureStoreIamMember", name, args == null ? AiFeatureStoreIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreIamMember:AiFeatureStoreIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreIamMember(String name, Output id, @Nullable AiFeatureStoreIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreIamMember:AiFeatureStoreIamMember", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreIamMemberArgs makeArgs(AiFeatureStoreIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamPolicy.java index 0328cc27bd..efa954a942 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiFeatureStoreIamPolicy.java @@ -156,13 +156,20 @@ public AiFeatureStoreIamPolicy(String name, AiFeatureStoreIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiFeatureStoreIamPolicy(String name, AiFeatureStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy", name, args == null ? AiFeatureStoreIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiFeatureStoreIamPolicy(String name, Output id, @Nullable AiFeatureStoreIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiFeatureStoreIamPolicy:AiFeatureStoreIamPolicy", name, state, makeResourceOptions(options, id)); } + private static AiFeatureStoreIamPolicyArgs makeArgs(AiFeatureStoreIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiFeatureStoreIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndex.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndex.java index e4d8ed852c..f601c2a814 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndex.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndex.java @@ -484,13 +484,20 @@ public AiIndex(String name, AiIndexArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiIndex(String name, AiIndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiIndex:AiIndex", name, args == null ? AiIndexArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiIndex:AiIndex", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiIndex(String name, Output id, @Nullable AiIndexState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiIndex:AiIndex", name, state, makeResourceOptions(options, id)); } + private static AiIndexArgs makeArgs(AiIndexArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiIndexArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndexEndpoint.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndexEndpoint.java index 7f3290bec5..105284f4d8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndexEndpoint.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiIndexEndpoint.java @@ -467,13 +467,20 @@ public AiIndexEndpoint(String name, AiIndexEndpointArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiIndexEndpoint(String name, AiIndexEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiIndexEndpoint:AiIndexEndpoint", name, args == null ? AiIndexEndpointArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiIndexEndpoint:AiIndexEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiIndexEndpoint(String name, Output id, @Nullable AiIndexEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiIndexEndpoint:AiIndexEndpoint", name, state, makeResourceOptions(options, id)); } + private static AiIndexEndpointArgs makeArgs(AiIndexEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiIndexEndpointArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiMetadataStore.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiMetadataStore.java index c2f6f8fd1b..5af50df817 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiMetadataStore.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiMetadataStore.java @@ -230,13 +230,20 @@ public AiMetadataStore(String name, @Nullable AiMetadataStoreArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiMetadataStore(String name, @Nullable AiMetadataStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiMetadataStore:AiMetadataStore", name, args == null ? AiMetadataStoreArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiMetadataStore:AiMetadataStore", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiMetadataStore(String name, Output id, @Nullable com.pulumi.gcp.vertex.inputs.AiMetadataStoreState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiMetadataStore:AiMetadataStore", name, state, makeResourceOptions(options, id)); } + private static AiMetadataStoreArgs makeArgs(@Nullable AiMetadataStoreArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiMetadataStoreArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiTensorboard.java b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiTensorboard.java index 11ca7e79a9..aadb8e31b0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiTensorboard.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vertex/AiTensorboard.java @@ -382,13 +382,20 @@ public AiTensorboard(String name, AiTensorboardArgs args) { * @param options A bag of options that control this resource's behavior. */ public AiTensorboard(String name, AiTensorboardArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vertex/aiTensorboard:AiTensorboard", name, args == null ? AiTensorboardArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vertex/aiTensorboard:AiTensorboard", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private AiTensorboard(String name, Output id, @Nullable AiTensorboardState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vertex/aiTensorboard:AiTensorboard", name, state, makeResourceOptions(options, id)); } + private static AiTensorboardArgs makeArgs(AiTensorboardArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AiTensorboardArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Cluster.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Cluster.java index 27b0a14434..6ba07e8b3b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Cluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Cluster.java @@ -305,13 +305,20 @@ public Cluster(String name, ClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public Cluster(String name, ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/cluster:Cluster", name, args == null ? ClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/cluster:Cluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Cluster(String name, Output id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/cluster:Cluster", name, state, makeResourceOptions(options, id)); } + private static ClusterArgs makeArgs(ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAccessRule.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAccessRule.java index 99f7e15586..ef0ce92538 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAccessRule.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAccessRule.java @@ -446,13 +446,20 @@ public ExternalAccessRule(String name, ExternalAccessRuleArgs args) { * @param options A bag of options that control this resource's behavior. */ public ExternalAccessRule(String name, ExternalAccessRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/externalAccessRule:ExternalAccessRule", name, args == null ? ExternalAccessRuleArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/externalAccessRule:ExternalAccessRule", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ExternalAccessRule(String name, Output id, @Nullable ExternalAccessRuleState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/externalAccessRule:ExternalAccessRule", name, state, makeResourceOptions(options, id)); } + private static ExternalAccessRuleArgs makeArgs(ExternalAccessRuleArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ExternalAccessRuleArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAddress.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAddress.java index f903809ca2..2193807c28 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAddress.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/ExternalAddress.java @@ -283,13 +283,20 @@ public ExternalAddress(String name, ExternalAddressArgs args) { * @param options A bag of options that control this resource's behavior. */ public ExternalAddress(String name, ExternalAddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/externalAddress:ExternalAddress", name, args == null ? ExternalAddressArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/externalAddress:ExternalAddress", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private ExternalAddress(String name, Output id, @Nullable ExternalAddressState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/externalAddress:ExternalAddress", name, state, makeResourceOptions(options, id)); } + private static ExternalAddressArgs makeArgs(ExternalAddressArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ExternalAddressArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Network.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Network.java index 10ec979035..9134a3dd72 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Network.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Network.java @@ -304,13 +304,20 @@ public Network(String name, NetworkArgs args) { * @param options A bag of options that control this resource's behavior. */ public Network(String name, NetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/network:Network", name, args == null ? NetworkArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/network:Network", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Network(String name, Output id, @Nullable NetworkState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/network:Network", name, state, makeResourceOptions(options, id)); } + private static NetworkArgs makeArgs(NetworkArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPeering.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPeering.java index 4134545317..b844130b2c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPeering.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPeering.java @@ -435,13 +435,20 @@ public NetworkPeering(String name, NetworkPeeringArgs args) { * @param options A bag of options that control this resource's behavior. */ public NetworkPeering(String name, NetworkPeeringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/networkPeering:NetworkPeering", name, args == null ? NetworkPeeringArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/networkPeering:NetworkPeering", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkPeering(String name, Output id, @Nullable NetworkPeeringState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/networkPeering:NetworkPeering", name, state, makeResourceOptions(options, id)); } + private static NetworkPeeringArgs makeArgs(NetworkPeeringArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkPeeringArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPolicy.java index 95f4859a36..46fad335c3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/NetworkPolicy.java @@ -379,13 +379,20 @@ public NetworkPolicy(String name, NetworkPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public NetworkPolicy(String name, NetworkPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/networkPolicy:NetworkPolicy", name, args == null ? NetworkPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/networkPolicy:NetworkPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private NetworkPolicy(String name, Output id, @Nullable NetworkPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/networkPolicy:NetworkPolicy", name, state, makeResourceOptions(options, id)); } + private static NetworkPolicyArgs makeArgs(NetworkPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? NetworkPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloud.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloud.java index 806296e8c9..62678aaef4 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloud.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloud.java @@ -15,6 +15,8 @@ import com.pulumi.gcp.vmwareengine.outputs.PrivateCloudNetworkConfig; import com.pulumi.gcp.vmwareengine.outputs.PrivateCloudNsx; import com.pulumi.gcp.vmwareengine.outputs.PrivateCloudVcenter; +import java.lang.Boolean; +import java.lang.Integer; import java.lang.String; import java.util.List; import java.util.Optional; @@ -140,6 +142,8 @@ * .customCoreCount(32) * .build()) * .build()) + * .deletionDelayHours(0) + * .sendDeletionDelayHoursIfZero(true) * .build()); * * } @@ -175,6 +179,22 @@ */ @ResourceType(type="gcp:vmwareengine/privateCloud:PrivateCloud") public class PrivateCloud extends com.pulumi.resources.CustomResource { + /** + * The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + */ + @Export(name="deletionDelayHours", refs={Integer.class}, tree="[0]") + private Output deletionDelayHours; + + /** + * @return The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + */ + public Output> deletionDelayHours() { + return Codegen.optional(this.deletionDelayHours); + } /** * User-provided description for this private cloud. * @@ -287,6 +307,24 @@ public Output> nsxes() { public Output project() { return this.project; } + /** + * While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + */ + @Export(name="sendDeletionDelayHoursIfZero", refs={Boolean.class}, tree="[0]") + private Output sendDeletionDelayHoursIfZero; + + /** + * @return While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + */ + public Output> sendDeletionDelayHoursIfZero() { + return Codegen.optional(this.sendDeletionDelayHoursIfZero); + } /** * State of the appliance. * Possible values are: `ACTIVE`, `CREATING`. @@ -370,13 +408,20 @@ public PrivateCloud(String name, PrivateCloudArgs args) { * @param options A bag of options that control this resource's behavior. */ public PrivateCloud(String name, PrivateCloudArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/privateCloud:PrivateCloud", name, args == null ? PrivateCloudArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/privateCloud:PrivateCloud", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private PrivateCloud(String name, Output id, @Nullable PrivateCloudState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/privateCloud:PrivateCloud", name, state, makeResourceOptions(options, id)); } + private static PrivateCloudArgs makeArgs(PrivateCloudArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? PrivateCloudArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloudArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloudArgs.java index 37c1c1e960..38db931459 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloudArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/PrivateCloudArgs.java @@ -8,6 +8,8 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import com.pulumi.gcp.vmwareengine.inputs.PrivateCloudManagementClusterArgs; import com.pulumi.gcp.vmwareengine.inputs.PrivateCloudNetworkConfigArgs; +import java.lang.Boolean; +import java.lang.Integer; import java.lang.String; import java.util.Objects; import java.util.Optional; @@ -18,6 +20,23 @@ public final class PrivateCloudArgs extends com.pulumi.resources.ResourceArgs { public static final PrivateCloudArgs Empty = new PrivateCloudArgs(); + /** + * The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + */ + @Import(name="deletionDelayHours") + private @Nullable Output deletionDelayHours; + + /** + * @return The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + */ + public Optional> deletionDelayHours() { + return Optional.ofNullable(this.deletionDelayHours); + } + /** * User-provided description for this private cloud. * @@ -104,6 +123,25 @@ public Optional> project() { return Optional.ofNullable(this.project); } + /** + * While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + */ + @Import(name="sendDeletionDelayHoursIfZero") + private @Nullable Output sendDeletionDelayHoursIfZero; + + /** + * @return While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + */ + public Optional> sendDeletionDelayHoursIfZero() { + return Optional.ofNullable(this.sendDeletionDelayHoursIfZero); + } + /** * Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] * @@ -122,12 +160,14 @@ public Optional> type() { private PrivateCloudArgs() {} private PrivateCloudArgs(PrivateCloudArgs $) { + this.deletionDelayHours = $.deletionDelayHours; this.description = $.description; this.location = $.location; this.managementCluster = $.managementCluster; this.name = $.name; this.networkConfig = $.networkConfig; this.project = $.project; + this.sendDeletionDelayHoursIfZero = $.sendDeletionDelayHoursIfZero; this.type = $.type; } @@ -149,6 +189,29 @@ public Builder(PrivateCloudArgs defaults) { $ = new PrivateCloudArgs(Objects.requireNonNull(defaults)); } + /** + * @param deletionDelayHours The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + * @return builder + * + */ + public Builder deletionDelayHours(@Nullable Output deletionDelayHours) { + $.deletionDelayHours = deletionDelayHours; + return this; + } + + /** + * @param deletionDelayHours The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + * @return builder + * + */ + public Builder deletionDelayHours(Integer deletionDelayHours) { + return deletionDelayHours(Output.of(deletionDelayHours)); + } + /** * @param description User-provided description for this private cloud. * @@ -267,6 +330,31 @@ public Builder project(String project) { return project(Output.of(project)); } + /** + * @param sendDeletionDelayHoursIfZero While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + * @return builder + * + */ + public Builder sendDeletionDelayHoursIfZero(@Nullable Output sendDeletionDelayHoursIfZero) { + $.sendDeletionDelayHoursIfZero = sendDeletionDelayHoursIfZero; + return this; + } + + /** + * @param sendDeletionDelayHoursIfZero While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + * @return builder + * + */ + public Builder sendDeletionDelayHoursIfZero(Boolean sendDeletionDelayHoursIfZero) { + return sendDeletionDelayHoursIfZero(Output.of(sendDeletionDelayHoursIfZero)); + } + /** * @param type Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Subnet.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Subnet.java index 4308907916..9c8d30dcd0 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Subnet.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/Subnet.java @@ -337,13 +337,20 @@ public Subnet(String name, SubnetArgs args) { * @param options A bag of options that control this resource's behavior. */ public Subnet(String name, SubnetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vmwareengine/subnet:Subnet", name, args == null ? SubnetArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vmwareengine/subnet:Subnet", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Subnet(String name, Output id, @Nullable SubnetState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vmwareengine/subnet:Subnet", name, state, makeResourceOptions(options, id)); } + private static SubnetArgs makeArgs(SubnetArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? SubnetArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/inputs/PrivateCloudState.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/inputs/PrivateCloudState.java index d01936becf..edf3068e31 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/inputs/PrivateCloudState.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/inputs/PrivateCloudState.java @@ -10,6 +10,8 @@ import com.pulumi.gcp.vmwareengine.inputs.PrivateCloudNetworkConfigArgs; import com.pulumi.gcp.vmwareengine.inputs.PrivateCloudNsxArgs; import com.pulumi.gcp.vmwareengine.inputs.PrivateCloudVcenterArgs; +import java.lang.Boolean; +import java.lang.Integer; import java.lang.String; import java.util.List; import java.util.Objects; @@ -21,6 +23,23 @@ public final class PrivateCloudState extends com.pulumi.resources.ResourceArgs { public static final PrivateCloudState Empty = new PrivateCloudState(); + /** + * The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + */ + @Import(name="deletionDelayHours") + private @Nullable Output deletionDelayHours; + + /** + * @return The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + */ + public Optional> deletionDelayHours() { + return Optional.ofNullable(this.deletionDelayHours); + } + /** * User-provided description for this private cloud. * @@ -141,6 +160,25 @@ public Optional> project() { return Optional.ofNullable(this.project); } + /** + * While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + */ + @Import(name="sendDeletionDelayHoursIfZero") + private @Nullable Output sendDeletionDelayHoursIfZero; + + /** + * @return While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + */ + public Optional> sendDeletionDelayHoursIfZero() { + return Optional.ofNullable(this.sendDeletionDelayHoursIfZero); + } + /** * State of the appliance. * Possible values are: `ACTIVE`, `CREATING`. @@ -208,6 +246,7 @@ public Optional>> vcenters() { private PrivateCloudState() {} private PrivateCloudState(PrivateCloudState $) { + this.deletionDelayHours = $.deletionDelayHours; this.description = $.description; this.hcxes = $.hcxes; this.location = $.location; @@ -216,6 +255,7 @@ private PrivateCloudState(PrivateCloudState $) { this.networkConfig = $.networkConfig; this.nsxes = $.nsxes; this.project = $.project; + this.sendDeletionDelayHoursIfZero = $.sendDeletionDelayHoursIfZero; this.state = $.state; this.type = $.type; this.uid = $.uid; @@ -240,6 +280,29 @@ public Builder(PrivateCloudState defaults) { $ = new PrivateCloudState(Objects.requireNonNull(defaults)); } + /** + * @param deletionDelayHours The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + * @return builder + * + */ + public Builder deletionDelayHours(@Nullable Output deletionDelayHours) { + $.deletionDelayHours = deletionDelayHours; + return this; + } + + /** + * @param deletionDelayHours The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + * + * @return builder + * + */ + public Builder deletionDelayHours(Integer deletionDelayHours) { + return deletionDelayHours(Output.of(deletionDelayHours)); + } + /** * @param description User-provided description for this private cloud. * @@ -426,6 +489,31 @@ public Builder project(String project) { return project(Output.of(project)); } + /** + * @param sendDeletionDelayHoursIfZero While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + * @return builder + * + */ + public Builder sendDeletionDelayHoursIfZero(@Nullable Output sendDeletionDelayHoursIfZero) { + $.sendDeletionDelayHoursIfZero = sendDeletionDelayHoursIfZero; + return this; + } + + /** + * @param sendDeletionDelayHoursIfZero While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + * deletion_delay_hours. + * + * @return builder + * + */ + public Builder sendDeletionDelayHoursIfZero(Boolean sendDeletionDelayHoursIfZero) { + return sendDeletionDelayHoursIfZero(Output.of(sendDeletionDelayHoursIfZero)); + } + /** * @param state State of the appliance. * Possible values are: `ACTIVE`, `CREATING`. diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/outputs/GetPrivateCloudResult.java b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/outputs/GetPrivateCloudResult.java index f5924eb291..169d1de924 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/outputs/GetPrivateCloudResult.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vmwareengine/outputs/GetPrivateCloudResult.java @@ -10,6 +10,8 @@ import com.pulumi.gcp.vmwareengine.outputs.GetPrivateCloudNetworkConfig; import com.pulumi.gcp.vmwareengine.outputs.GetPrivateCloudNsx; import com.pulumi.gcp.vmwareengine.outputs.GetPrivateCloudVcenter; +import java.lang.Boolean; +import java.lang.Integer; import java.lang.String; import java.util.List; import java.util.Objects; @@ -18,6 +20,7 @@ @CustomType public final class GetPrivateCloudResult { + private Integer deletionDelayHours; private String description; private List hcxes; /** @@ -31,12 +34,16 @@ public final class GetPrivateCloudResult { private List networkConfigs; private List nsxes; private @Nullable String project; + private Boolean sendDeletionDelayHoursIfZero; private String state; private String type; private String uid; private List vcenters; private GetPrivateCloudResult() {} + public Integer deletionDelayHours() { + return this.deletionDelayHours; + } public String description() { return this.description; } @@ -68,6 +75,9 @@ public List nsxes() { public Optional project() { return Optional.ofNullable(this.project); } + public Boolean sendDeletionDelayHoursIfZero() { + return this.sendDeletionDelayHoursIfZero; + } public String state() { return this.state; } @@ -90,6 +100,7 @@ public static Builder builder(GetPrivateCloudResult defaults) { } @CustomType.Builder public static final class Builder { + private Integer deletionDelayHours; private String description; private List hcxes; private String id; @@ -99,6 +110,7 @@ public static final class Builder { private List networkConfigs; private List nsxes; private @Nullable String project; + private Boolean sendDeletionDelayHoursIfZero; private String state; private String type; private String uid; @@ -106,6 +118,7 @@ public static final class Builder { public Builder() {} public Builder(GetPrivateCloudResult defaults) { Objects.requireNonNull(defaults); + this.deletionDelayHours = defaults.deletionDelayHours; this.description = defaults.description; this.hcxes = defaults.hcxes; this.id = defaults.id; @@ -115,12 +128,21 @@ public Builder(GetPrivateCloudResult defaults) { this.networkConfigs = defaults.networkConfigs; this.nsxes = defaults.nsxes; this.project = defaults.project; + this.sendDeletionDelayHoursIfZero = defaults.sendDeletionDelayHoursIfZero; this.state = defaults.state; this.type = defaults.type; this.uid = defaults.uid; this.vcenters = defaults.vcenters; } + @CustomType.Setter + public Builder deletionDelayHours(Integer deletionDelayHours) { + if (deletionDelayHours == null) { + throw new MissingRequiredPropertyException("GetPrivateCloudResult", "deletionDelayHours"); + } + this.deletionDelayHours = deletionDelayHours; + return this; + } @CustomType.Setter public Builder description(String description) { if (description == null) { @@ -204,6 +226,14 @@ public Builder project(@Nullable String project) { return this; } @CustomType.Setter + public Builder sendDeletionDelayHoursIfZero(Boolean sendDeletionDelayHoursIfZero) { + if (sendDeletionDelayHoursIfZero == null) { + throw new MissingRequiredPropertyException("GetPrivateCloudResult", "sendDeletionDelayHoursIfZero"); + } + this.sendDeletionDelayHoursIfZero = sendDeletionDelayHoursIfZero; + return this; + } + @CustomType.Setter public Builder state(String state) { if (state == null) { throw new MissingRequiredPropertyException("GetPrivateCloudResult", "state"); @@ -240,6 +270,7 @@ public Builder vcenters(GetPrivateCloudVcenter... vcenters) { } public GetPrivateCloudResult build() { final var _resultValue = new GetPrivateCloudResult(); + _resultValue.deletionDelayHours = deletionDelayHours; _resultValue.description = description; _resultValue.hcxes = hcxes; _resultValue.id = id; @@ -249,6 +280,7 @@ public GetPrivateCloudResult build() { _resultValue.networkConfigs = networkConfigs; _resultValue.nsxes = nsxes; _resultValue.project = project; + _resultValue.sendDeletionDelayHoursIfZero = sendDeletionDelayHoursIfZero; _resultValue.state = state; _resultValue.type = type; _resultValue.uid = uid; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/vpcaccess/Connector.java b/sdk/java/src/main/java/com/pulumi/gcp/vpcaccess/Connector.java index e9d4d50c85..1c99e3153a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/vpcaccess/Connector.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/vpcaccess/Connector.java @@ -387,13 +387,20 @@ public Connector(String name, @Nullable ConnectorArgs args) { * @param options A bag of options that control this resource's behavior. */ public Connector(String name, @Nullable ConnectorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:vpcaccess/connector:Connector", name, args == null ? ConnectorArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:vpcaccess/connector:Connector", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Connector(String name, Output id, @Nullable ConnectorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:vpcaccess/connector:Connector", name, state, makeResourceOptions(options, id)); } + private static ConnectorArgs makeArgs(@Nullable ConnectorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? ConnectorArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java index d2d727cda4..2fc73f5dbc 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/Instance.java @@ -193,7 +193,6 @@ * .build()) * .metadata(Map.of("terraform", "true")) * .build()) - * .instanceOwners("my{@literal @}service-account.com") * .labels(Map.of("k", "val")) * .desiredState("STOPPED") * .build()); @@ -217,6 +216,10 @@ * import com.pulumi.gcp.compute.NetworkArgs; * import com.pulumi.gcp.compute.Subnetwork; * import com.pulumi.gcp.compute.SubnetworkArgs; + * import com.pulumi.gcp.compute.Address; + * import com.pulumi.gcp.compute.AddressArgs; + * import com.pulumi.gcp.serviceaccount.IAMBinding; + * import com.pulumi.gcp.serviceaccount.IAMBindingArgs; * import com.pulumi.gcp.workbench.Instance; * import com.pulumi.gcp.workbench.InstanceArgs; * import com.pulumi.gcp.workbench.inputs.InstanceGceSetupArgs; @@ -248,6 +251,16 @@ * .ipCidrRange("10.0.1.0/24") * .build()); * + * var static_ = new Address("static", AddressArgs.builder() + * .name("wbi-test-default") + * .build()); + * + * var actAsPermission = new IAMBinding("actAsPermission", IAMBindingArgs.builder() + * .serviceAccountId("projects/my-project-name/serviceAccounts/my{@literal @}service-account.com") + * .role("roles/iam.serviceAccountUser") + * .members("user:example{@literal @}example.com") + * .build()); + * * var instance = new Instance("instance", InstanceArgs.builder() * .name("workbench-instance") * .location("us-central1-a") @@ -282,6 +295,9 @@ * .network(myNetwork.id()) * .subnet(mySubnetwork.id()) * .nicType("GVNIC") + * .accessConfigs(InstanceGceSetupNetworkInterfaceAccessConfigArgs.builder() + * .externalIp(static_.address()) + * .build()) * .build()) * .metadata(Map.of("terraform", "true")) * .enableIpForwarding(true) @@ -290,7 +306,7 @@ * "def") * .build()) * .disableProxyAccess("true") - * .instanceOwners("my{@literal @}service-account.com") + * .instanceOwners("example{@literal @}example.com") * .labels(Map.of("k", "val")) * .desiredState("ACTIVE") * .build()); @@ -651,13 +667,20 @@ public Instance(String name, InstanceArgs args) { * @param options A bag of options that control this resource's behavior. */ public Instance(String name, InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workbench/instance:Instance", name, args == null ? InstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workbench/instance:Instance", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Instance(String name, Output id, @Nullable InstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workbench/instance:Instance", name, state, makeResourceOptions(options, id)); } + private static InstanceArgs makeArgs(InstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamBinding.java index 8eeb76e689..a407116be8 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamBinding.java @@ -83,13 +83,20 @@ public InstanceIamBinding(String name, InstanceIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamBinding(String name, InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workbench/instanceIamBinding:InstanceIamBinding", name, args == null ? InstanceIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workbench/instanceIamBinding:InstanceIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamBinding(String name, Output id, @Nullable InstanceIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workbench/instanceIamBinding:InstanceIamBinding", name, state, makeResourceOptions(options, id)); } + private static InstanceIamBindingArgs makeArgs(InstanceIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamMember.java index da316da34d..a83b65c7d3 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamMember.java @@ -82,13 +82,20 @@ public InstanceIamMember(String name, InstanceIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamMember(String name, InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workbench/instanceIamMember:InstanceIamMember", name, args == null ? InstanceIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workbench/instanceIamMember:InstanceIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamMember(String name, Output id, @Nullable InstanceIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workbench/instanceIamMember:InstanceIamMember", name, state, makeResourceOptions(options, id)); } + private static InstanceIamMemberArgs makeArgs(InstanceIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamPolicy.java index a55bd04f07..42410170a6 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/InstanceIamPolicy.java @@ -68,13 +68,20 @@ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public InstanceIamPolicy(String name, InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workbench/instanceIamPolicy:InstanceIamPolicy", name, args == null ? InstanceIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workbench/instanceIamPolicy:InstanceIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private InstanceIamPolicy(String name, Output id, @Nullable InstanceIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workbench/instanceIamPolicy:InstanceIamPolicy", name, state, makeResourceOptions(options, id)); } + private static InstanceIamPolicyArgs makeArgs(InstanceIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? InstanceIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceGceSetupNetworkInterfaceAccessConfigArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceGceSetupNetworkInterfaceAccessConfigArgs.java new file mode 100644 index 0000000000..0950de0e54 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceGceSetupNetworkInterfaceAccessConfigArgs.java @@ -0,0 +1,101 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.workbench.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class InstanceGceSetupNetworkInterfaceAccessConfigArgs extends com.pulumi.resources.ResourceArgs { + + public static final InstanceGceSetupNetworkInterfaceAccessConfigArgs Empty = new InstanceGceSetupNetworkInterfaceAccessConfigArgs(); + + /** + * An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + * + */ + @Import(name="externalIp", required=true) + private Output externalIp; + + /** + * @return An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + * + */ + public Output externalIp() { + return this.externalIp; + } + + private InstanceGceSetupNetworkInterfaceAccessConfigArgs() {} + + private InstanceGceSetupNetworkInterfaceAccessConfigArgs(InstanceGceSetupNetworkInterfaceAccessConfigArgs $) { + this.externalIp = $.externalIp; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(InstanceGceSetupNetworkInterfaceAccessConfigArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private InstanceGceSetupNetworkInterfaceAccessConfigArgs $; + + public Builder() { + $ = new InstanceGceSetupNetworkInterfaceAccessConfigArgs(); + } + + public Builder(InstanceGceSetupNetworkInterfaceAccessConfigArgs defaults) { + $ = new InstanceGceSetupNetworkInterfaceAccessConfigArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param externalIp An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + * + * @return builder + * + */ + public Builder externalIp(Output externalIp) { + $.externalIp = externalIp; + return this; + } + + /** + * @param externalIp An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + * + * @return builder + * + */ + public Builder externalIp(String externalIp) { + return externalIp(Output.of(externalIp)); + } + + public InstanceGceSetupNetworkInterfaceAccessConfigArgs build() { + if ($.externalIp == null) { + throw new MissingRequiredPropertyException("InstanceGceSetupNetworkInterfaceAccessConfigArgs", "externalIp"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceGceSetupNetworkInterfaceArgs.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceGceSetupNetworkInterfaceArgs.java index 5c482b799f..779cc4b48c 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceGceSetupNetworkInterfaceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/inputs/InstanceGceSetupNetworkInterfaceArgs.java @@ -5,7 +5,9 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; +import com.pulumi.gcp.workbench.inputs.InstanceGceSetupNetworkInterfaceAccessConfigArgs; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -15,6 +17,29 @@ public final class InstanceGceSetupNetworkInterfaceArgs extends com.pulumi.resou public static final InstanceGceSetupNetworkInterfaceArgs Empty = new InstanceGceSetupNetworkInterfaceArgs(); + /** + * Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + * + */ + @Import(name="accessConfigs") + private @Nullable Output> accessConfigs; + + /** + * @return Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + * + */ + public Optional>> accessConfigs() { + return Optional.ofNullable(this.accessConfigs); + } + /** * Optional. The name of the VPC that this VM instance is in. * @@ -67,6 +92,7 @@ public Optional> subnet() { private InstanceGceSetupNetworkInterfaceArgs() {} private InstanceGceSetupNetworkInterfaceArgs(InstanceGceSetupNetworkInterfaceArgs $) { + this.accessConfigs = $.accessConfigs; this.network = $.network; this.nicType = $.nicType; this.subnet = $.subnet; @@ -90,6 +116,49 @@ public Builder(InstanceGceSetupNetworkInterfaceArgs defaults) { $ = new InstanceGceSetupNetworkInterfaceArgs(Objects.requireNonNull(defaults)); } + /** + * @param accessConfigs Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + * + * @return builder + * + */ + public Builder accessConfigs(@Nullable Output> accessConfigs) { + $.accessConfigs = accessConfigs; + return this; + } + + /** + * @param accessConfigs Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + * + * @return builder + * + */ + public Builder accessConfigs(List accessConfigs) { + return accessConfigs(Output.of(accessConfigs)); + } + + /** + * @param accessConfigs Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + * + * @return builder + * + */ + public Builder accessConfigs(InstanceGceSetupNetworkInterfaceAccessConfigArgs... accessConfigs) { + return accessConfigs(List.of(accessConfigs)); + } + /** * @param network Optional. The name of the VPC that this VM instance is in. * diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/outputs/InstanceGceSetupNetworkInterface.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/outputs/InstanceGceSetupNetworkInterface.java index 94750098c5..7624bdac4d 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workbench/outputs/InstanceGceSetupNetworkInterface.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/outputs/InstanceGceSetupNetworkInterface.java @@ -4,13 +4,24 @@ package com.pulumi.gcp.workbench.outputs; import com.pulumi.core.annotations.CustomType; +import com.pulumi.gcp.workbench.outputs.InstanceGceSetupNetworkInterfaceAccessConfig; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @CustomType public final class InstanceGceSetupNetworkInterface { + /** + * @return Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + * + */ + private @Nullable List accessConfigs; /** * @return Optional. The name of the VPC that this VM instance is in. * @@ -30,6 +41,17 @@ public final class InstanceGceSetupNetworkInterface { private @Nullable String subnet; private InstanceGceSetupNetworkInterface() {} + /** + * @return Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + * + */ + public List accessConfigs() { + return this.accessConfigs == null ? List.of() : this.accessConfigs; + } /** * @return Optional. The name of the VPC that this VM instance is in. * @@ -63,17 +85,28 @@ public static Builder builder(InstanceGceSetupNetworkInterface defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable List accessConfigs; private @Nullable String network; private @Nullable String nicType; private @Nullable String subnet; public Builder() {} public Builder(InstanceGceSetupNetworkInterface defaults) { Objects.requireNonNull(defaults); + this.accessConfigs = defaults.accessConfigs; this.network = defaults.network; this.nicType = defaults.nicType; this.subnet = defaults.subnet; } + @CustomType.Setter + public Builder accessConfigs(@Nullable List accessConfigs) { + + this.accessConfigs = accessConfigs; + return this; + } + public Builder accessConfigs(InstanceGceSetupNetworkInterfaceAccessConfig... accessConfigs) { + return accessConfigs(List.of(accessConfigs)); + } @CustomType.Setter public Builder network(@Nullable String network) { @@ -94,6 +127,7 @@ public Builder subnet(@Nullable String subnet) { } public InstanceGceSetupNetworkInterface build() { final var _resultValue = new InstanceGceSetupNetworkInterface(); + _resultValue.accessConfigs = accessConfigs; _resultValue.network = network; _resultValue.nicType = nicType; _resultValue.subnet = subnet; diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workbench/outputs/InstanceGceSetupNetworkInterfaceAccessConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/workbench/outputs/InstanceGceSetupNetworkInterfaceAccessConfig.java new file mode 100644 index 0000000000..517a17d6cc --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/gcp/workbench/outputs/InstanceGceSetupNetworkInterfaceAccessConfig.java @@ -0,0 +1,66 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.gcp.workbench.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class InstanceGceSetupNetworkInterfaceAccessConfig { + /** + * @return An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + * + */ + private String externalIp; + + private InstanceGceSetupNetworkInterfaceAccessConfig() {} + /** + * @return An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + * + */ + public String externalIp() { + return this.externalIp; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(InstanceGceSetupNetworkInterfaceAccessConfig defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String externalIp; + public Builder() {} + public Builder(InstanceGceSetupNetworkInterfaceAccessConfig defaults) { + Objects.requireNonNull(defaults); + this.externalIp = defaults.externalIp; + } + + @CustomType.Setter + public Builder externalIp(String externalIp) { + if (externalIp == null) { + throw new MissingRequiredPropertyException("InstanceGceSetupNetworkInterfaceAccessConfig", "externalIp"); + } + this.externalIp = externalIp; + return this; + } + public InstanceGceSetupNetworkInterfaceAccessConfig build() { + final var _resultValue = new InstanceGceSetupNetworkInterfaceAccessConfig(); + _resultValue.externalIp = externalIp; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java b/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java index b6a773fa7f..6e9212154b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workflows/Workflow.java @@ -403,13 +403,20 @@ public Workflow(String name, @Nullable WorkflowArgs args) { * @param options A bag of options that control this resource's behavior. */ public Workflow(String name, @Nullable WorkflowArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workflows/workflow:Workflow", name, args == null ? WorkflowArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workflows/workflow:Workflow", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Workflow(String name, Output id, @Nullable WorkflowState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workflows/workflow:Workflow", name, state, makeResourceOptions(options, id)); } + private static WorkflowArgs makeArgs(@Nullable WorkflowArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkflowArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/Workstation.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/Workstation.java index b85390530f..4fff62d141 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/Workstation.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/Workstation.java @@ -404,13 +404,20 @@ public Workstation(String name, WorkstationArgs args) { * @param options A bag of options that control this resource's behavior. */ public Workstation(String name, WorkstationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstation:Workstation", name, args == null ? WorkstationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstation:Workstation", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private Workstation(String name, Output id, @Nullable WorkstationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstation:Workstation", name, state, makeResourceOptions(options, id)); } + private static WorkstationArgs makeArgs(WorkstationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationCluster.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationCluster.java index 76626c124c..73d443f557 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationCluster.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationCluster.java @@ -567,13 +567,20 @@ public WorkstationCluster(String name, WorkstationClusterArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkstationCluster(String name, WorkstationClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationCluster:WorkstationCluster", name, args == null ? WorkstationClusterArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationCluster:WorkstationCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationCluster(String name, Output id, @Nullable WorkstationClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationCluster:WorkstationCluster", name, state, makeResourceOptions(options, id)); } + private static WorkstationClusterArgs makeArgs(WorkstationClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationClusterArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java index bfce54c9d8..51ec7d5542 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfig.java @@ -1191,13 +1191,20 @@ public WorkstationConfig(String name, WorkstationConfigArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkstationConfig(String name, WorkstationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationConfig:WorkstationConfig", name, args == null ? WorkstationConfigArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationConfig:WorkstationConfig", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationConfig(String name, Output id, @Nullable WorkstationConfigState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationConfig:WorkstationConfig", name, state, makeResourceOptions(options, id)); } + private static WorkstationConfigArgs makeArgs(WorkstationConfigArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationConfigArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamBinding.java index 0069220c49..a8bad816b9 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamBinding.java @@ -201,13 +201,20 @@ public WorkstationConfigIamBinding(String name, WorkstationConfigIamBindingArgs * @param options A bag of options that control this resource's behavior. */ public WorkstationConfigIamBinding(String name, WorkstationConfigIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationConfigIamBinding:WorkstationConfigIamBinding", name, args == null ? WorkstationConfigIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationConfigIamBinding:WorkstationConfigIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationConfigIamBinding(String name, Output id, @Nullable WorkstationConfigIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationConfigIamBinding:WorkstationConfigIamBinding", name, state, makeResourceOptions(options, id)); } + private static WorkstationConfigIamBindingArgs makeArgs(WorkstationConfigIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationConfigIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamMember.java index 184b435c36..0c06bdbf48 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamMember.java @@ -200,13 +200,20 @@ public WorkstationConfigIamMember(String name, WorkstationConfigIamMemberArgs ar * @param options A bag of options that control this resource's behavior. */ public WorkstationConfigIamMember(String name, WorkstationConfigIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationConfigIamMember:WorkstationConfigIamMember", name, args == null ? WorkstationConfigIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationConfigIamMember:WorkstationConfigIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationConfigIamMember(String name, Output id, @Nullable WorkstationConfigIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationConfigIamMember:WorkstationConfigIamMember", name, state, makeResourceOptions(options, id)); } + private static WorkstationConfigIamMemberArgs makeArgs(WorkstationConfigIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationConfigIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamPolicy.java index f10d7d552f..8863689fb7 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationConfigIamPolicy.java @@ -156,13 +156,20 @@ public WorkstationConfigIamPolicy(String name, WorkstationConfigIamPolicyArgs ar * @param options A bag of options that control this resource's behavior. */ public WorkstationConfigIamPolicy(String name, WorkstationConfigIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationConfigIamPolicy:WorkstationConfigIamPolicy", name, args == null ? WorkstationConfigIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationConfigIamPolicy:WorkstationConfigIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationConfigIamPolicy(String name, Output id, @Nullable WorkstationConfigIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationConfigIamPolicy:WorkstationConfigIamPolicy", name, state, makeResourceOptions(options, id)); } + private static WorkstationConfigIamPolicyArgs makeArgs(WorkstationConfigIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationConfigIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamBinding.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamBinding.java index 4d845bd3c5..955229810b 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamBinding.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamBinding.java @@ -207,13 +207,20 @@ public WorkstationIamBinding(String name, WorkstationIamBindingArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkstationIamBinding(String name, WorkstationIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationIamBinding:WorkstationIamBinding", name, args == null ? WorkstationIamBindingArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationIamBinding:WorkstationIamBinding", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationIamBinding(String name, Output id, @Nullable WorkstationIamBindingState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationIamBinding:WorkstationIamBinding", name, state, makeResourceOptions(options, id)); } + private static WorkstationIamBindingArgs makeArgs(WorkstationIamBindingArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationIamBindingArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamMember.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamMember.java index 1923e37ff8..f533e37b6a 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamMember.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamMember.java @@ -206,13 +206,20 @@ public WorkstationIamMember(String name, WorkstationIamMemberArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkstationIamMember(String name, WorkstationIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationIamMember:WorkstationIamMember", name, args == null ? WorkstationIamMemberArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationIamMember:WorkstationIamMember", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationIamMember(String name, Output id, @Nullable WorkstationIamMemberState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationIamMember:WorkstationIamMember", name, state, makeResourceOptions(options, id)); } + private static WorkstationIamMemberArgs makeArgs(WorkstationIamMemberArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationIamMemberArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamPolicy.java b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamPolicy.java index 33801769af..ac419d5c08 100644 --- a/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/gcp/workstations/WorkstationIamPolicy.java @@ -162,13 +162,20 @@ public WorkstationIamPolicy(String name, WorkstationIamPolicyArgs args) { * @param options A bag of options that control this resource's behavior. */ public WorkstationIamPolicy(String name, WorkstationIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { - super("gcp:workstations/workstationIamPolicy:WorkstationIamPolicy", name, args == null ? WorkstationIamPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + super("gcp:workstations/workstationIamPolicy:WorkstationIamPolicy", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty())); } private WorkstationIamPolicy(String name, Output id, @Nullable WorkstationIamPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("gcp:workstations/workstationIamPolicy:WorkstationIamPolicy", name, state, makeResourceOptions(options, id)); } + private static WorkstationIamPolicyArgs makeArgs(WorkstationIamPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? WorkstationIamPolicyArgs.Empty : args; + } + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) diff --git a/sdk/nodejs/alloydb/instance.ts b/sdk/nodejs/alloydb/instance.ts index 2c329e6e6d..4ded6b91f5 100644 --- a/sdk/nodejs/alloydb/instance.ts +++ b/sdk/nodejs/alloydb/instance.ts @@ -243,6 +243,11 @@ export class Instance extends pulumi.CustomResource { * Structure is documented below. */ public readonly networkConfig!: pulumi.Output; + /** + * Configuration for enhanced query insights. + * Structure is documented below. + */ + public readonly observabilityConfig!: pulumi.Output; /** * Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. @@ -316,6 +321,7 @@ export class Instance extends pulumi.CustomResource { resourceInputs["machineConfig"] = state ? state.machineConfig : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["networkConfig"] = state ? state.networkConfig : undefined; + resourceInputs["observabilityConfig"] = state ? state.observabilityConfig : undefined; resourceInputs["pscInstanceConfig"] = state ? state.pscInstanceConfig : undefined; resourceInputs["publicIpAddress"] = state ? state.publicIpAddress : undefined; resourceInputs["pulumiLabels"] = state ? state.pulumiLabels : undefined; @@ -348,6 +354,7 @@ export class Instance extends pulumi.CustomResource { resourceInputs["labels"] = args ? args.labels : undefined; resourceInputs["machineConfig"] = args ? args.machineConfig : undefined; resourceInputs["networkConfig"] = args ? args.networkConfig : undefined; + resourceInputs["observabilityConfig"] = args ? args.observabilityConfig : undefined; resourceInputs["pscInstanceConfig"] = args ? args.pscInstanceConfig : undefined; resourceInputs["queryInsightsConfig"] = args ? args.queryInsightsConfig : undefined; resourceInputs["readPoolConfig"] = args ? args.readPoolConfig : undefined; @@ -453,6 +460,11 @@ export interface InstanceState { * Structure is documented below. */ networkConfig?: pulumi.Input; + /** + * Configuration for enhanced query insights. + * Structure is documented below. + */ + observabilityConfig?: pulumi.Input; /** * Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. @@ -563,6 +575,11 @@ export interface InstanceArgs { * Structure is documented below. */ networkConfig?: pulumi.Input; + /** + * Configuration for enhanced query insights. + * Structure is documented below. + */ + observabilityConfig?: pulumi.Input; /** * Configuration for Private Service Connect (PSC) for the instance. * Structure is documented below. diff --git a/sdk/nodejs/apigee/environmentKeyvaluemaps.ts b/sdk/nodejs/apigee/environmentKeyvaluemaps.ts new file mode 100644 index 0000000000..000d230ec3 --- /dev/null +++ b/sdk/nodejs/apigee/environmentKeyvaluemaps.ts @@ -0,0 +1,194 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Collection of key/value string pairs. + * + * To get more information about EnvironmentKeyvaluemaps, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create) + * * How-to Guides + * * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + * + * ## Example Usage + * + * ### Apigee Environment Keyvaluemaps Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const current = gcp.organizations.getClientConfig({}); + * const apigeeNetwork = new gcp.compute.Network("apigee_network", {name: "apigee-network"}); + * const apigeeRange = new gcp.compute.GlobalAddress("apigee_range", { + * name: "apigee-range", + * purpose: "VPC_PEERING", + * addressType: "INTERNAL", + * prefixLength: 16, + * network: apigeeNetwork.id, + * }); + * const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigee_vpc_connection", { + * network: apigeeNetwork.id, + * service: "servicenetworking.googleapis.com", + * reservedPeeringRanges: [apigeeRange.name], + * }); + * const apigeeOrg = new gcp.apigee.Organization("apigee_org", { + * analyticsRegion: "us-central1", + * projectId: current.then(current => current.project), + * authorizedNetwork: apigeeNetwork.id, + * }, { + * dependsOn: [apigeeVpcConnection], + * }); + * const apigeeEnvironment = new gcp.apigee.Environment("apigee_environment", { + * orgId: apigeeOrg.id, + * name: "tf-test-env", + * description: "Apigee Environment", + * displayName: "Apigee Environment", + * }); + * const apigeeInstance = new gcp.apigee.Instance("apigee_instance", { + * name: "tf-test-instance", + * location: "us-central1", + * orgId: apigeeOrg.id, + * }); + * const apigeeInstanceAttachment = new gcp.apigee.InstanceAttachment("apigee_instance_attachment", { + * instanceId: apigeeInstance.id, + * environment: apigeeEnvironment.name, + * }); + * const apigeeEnvironmentKeyvaluemaps = new gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", { + * envId: apigeeEnvironment.id, + * name: "tf-test-env-kvms", + * }, { + * dependsOn: [ + * apigeeOrg, + * apigeeEnvironment, + * apigeeInstance, + * apigeeInstanceAttachment, + * ], + * }); + * ``` + * + * ## Import + * + * EnvironmentKeyvaluemaps can be imported using any of these accepted formats: + * + * * `{{env_id}}/keyvaluemaps/{{name}}` + * + * * `{{env_id}}/{{name}}` + * + * When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}} + * ``` + */ +export class EnvironmentKeyvaluemaps extends pulumi.CustomResource { + /** + * Get an existing EnvironmentKeyvaluemaps resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: EnvironmentKeyvaluemapsState, opts?: pulumi.CustomResourceOptions): EnvironmentKeyvaluemaps { + return new EnvironmentKeyvaluemaps(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps'; + + /** + * Returns true if the given object is an instance of EnvironmentKeyvaluemaps. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is EnvironmentKeyvaluemaps { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === EnvironmentKeyvaluemaps.__pulumiType; + } + + /** + * The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * + * - - - + */ + public readonly envId!: pulumi.Output; + /** + * Required. ID of the key value map. + */ + public readonly name!: pulumi.Output; + + /** + * Create a EnvironmentKeyvaluemaps resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: EnvironmentKeyvaluemapsArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: EnvironmentKeyvaluemapsArgs | EnvironmentKeyvaluemapsState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as EnvironmentKeyvaluemapsState | undefined; + resourceInputs["envId"] = state ? state.envId : undefined; + resourceInputs["name"] = state ? state.name : undefined; + } else { + const args = argsOrState as EnvironmentKeyvaluemapsArgs | undefined; + if ((!args || args.envId === undefined) && !opts.urn) { + throw new Error("Missing required property 'envId'"); + } + resourceInputs["envId"] = args ? args.envId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(EnvironmentKeyvaluemaps.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering EnvironmentKeyvaluemaps resources. + */ +export interface EnvironmentKeyvaluemapsState { + /** + * The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * + * - - - + */ + envId?: pulumi.Input; + /** + * Required. ID of the key value map. + */ + name?: pulumi.Input; +} + +/** + * The set of arguments for constructing a EnvironmentKeyvaluemaps resource. + */ +export interface EnvironmentKeyvaluemapsArgs { + /** + * The Apigee environment group associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}`. + * + * + * - - - + */ + envId: pulumi.Input; + /** + * Required. ID of the key value map. + */ + name?: pulumi.Input; +} diff --git a/sdk/nodejs/apigee/environmentKeyvaluemapsEntries.ts b/sdk/nodejs/apigee/environmentKeyvaluemapsEntries.ts new file mode 100644 index 0000000000..6c9b8f0ce7 --- /dev/null +++ b/sdk/nodejs/apigee/environmentKeyvaluemapsEntries.ts @@ -0,0 +1,224 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Creates key value entries in a key value map scoped to an environment. + * + * To get more information about EnvironmentKeyvaluemapsEntries, see: + * + * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.keyvaluemaps.entries/create) + * * How-to Guides + * * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + * + * ## Example Usage + * + * ### Apigee Environment Keyvaluemaps Entries Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const current = gcp.organizations.getClientConfig({}); + * const apigeeNetwork = new gcp.compute.Network("apigee_network", {name: "apigee-network"}); + * const apigeeRange = new gcp.compute.GlobalAddress("apigee_range", { + * name: "apigee-range", + * purpose: "VPC_PEERING", + * addressType: "INTERNAL", + * prefixLength: 16, + * network: apigeeNetwork.id, + * }); + * const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigee_vpc_connection", { + * network: apigeeNetwork.id, + * service: "servicenetworking.googleapis.com", + * reservedPeeringRanges: [apigeeRange.name], + * }); + * const apigeeOrg = new gcp.apigee.Organization("apigee_org", { + * analyticsRegion: "us-central1", + * projectId: current.then(current => current.project), + * authorizedNetwork: apigeeNetwork.id, + * }, { + * dependsOn: [apigeeVpcConnection], + * }); + * const apigeeEnvironment = new gcp.apigee.Environment("apigee_environment", { + * orgId: apigeeOrg.id, + * name: "tf-test-env", + * description: "Apigee Environment", + * displayName: "Apigee Environment", + * }); + * const apigeeInstance = new gcp.apigee.Instance("apigee_instance", { + * name: "tf-test-instance", + * location: "us-central1", + * orgId: apigeeOrg.id, + * }); + * const apigeeInstanceAttachment = new gcp.apigee.InstanceAttachment("apigee_instance_attachment", { + * instanceId: apigeeInstance.id, + * environment: apigeeEnvironment.name, + * }); + * const apigeeEnvironmentKeyvaluemaps = new gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", { + * envId: createApigeeEnvironment.id, + * name: "tf-test-env-kvms", + * }, { + * dependsOn: [ + * apigeeOrg, + * apigeeEnvironment, + * apigeeInstance, + * apigeeInstanceAttachment, + * ], + * }); + * const apigeeEnvironmentKeyvaluemapsEntries = new gcp.apigee.EnvironmentKeyvaluemapsEntries("apigee_environment_keyvaluemaps_entries", { + * envKeyvaluemapId: apigeeEnvironmentKeyvaluemaps.id, + * name: "testName", + * value: "testValue", + * }, { + * dependsOn: [ + * apigeeOrg, + * apigeeEnvironment, + * apigeeInstance, + * apigeeInstanceAttachment, + * apigeeEnvironmentKeyvaluemaps, + * ], + * }); + * ``` + * + * ## Import + * + * EnvironmentKeyvaluemapsEntries can be imported using any of these accepted formats: + * + * * `{{env_keyvaluemap_id}}/entries/{{name}}` + * + * * `{{env_keyvaluemap_id}}/{{name}}` + * + * When using the `pulumi import` command, EnvironmentKeyvaluemapsEntries can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/entries/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/{{name}} + * ``` + */ +export class EnvironmentKeyvaluemapsEntries extends pulumi.CustomResource { + /** + * Get an existing EnvironmentKeyvaluemapsEntries resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: EnvironmentKeyvaluemapsEntriesState, opts?: pulumi.CustomResourceOptions): EnvironmentKeyvaluemapsEntries { + return new EnvironmentKeyvaluemapsEntries(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries'; + + /** + * Returns true if the given object is an instance of EnvironmentKeyvaluemapsEntries. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is EnvironmentKeyvaluemapsEntries { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === EnvironmentKeyvaluemapsEntries.__pulumiType; + } + + /** + * The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * + * - - - + */ + public readonly envKeyvaluemapId!: pulumi.Output; + /** + * Required. Resource URI that can be used to identify the scope of the key value map entries. + */ + public readonly name!: pulumi.Output; + /** + * Required. Data or payload that is being retrieved and associated with the unique key. + */ + public readonly value!: pulumi.Output; + + /** + * Create a EnvironmentKeyvaluemapsEntries resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: EnvironmentKeyvaluemapsEntriesArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: EnvironmentKeyvaluemapsEntriesArgs | EnvironmentKeyvaluemapsEntriesState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as EnvironmentKeyvaluemapsEntriesState | undefined; + resourceInputs["envKeyvaluemapId"] = state ? state.envKeyvaluemapId : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["value"] = state ? state.value : undefined; + } else { + const args = argsOrState as EnvironmentKeyvaluemapsEntriesArgs | undefined; + if ((!args || args.envKeyvaluemapId === undefined) && !opts.urn) { + throw new Error("Missing required property 'envKeyvaluemapId'"); + } + if ((!args || args.value === undefined) && !opts.urn) { + throw new Error("Missing required property 'value'"); + } + resourceInputs["envKeyvaluemapId"] = args ? args.envKeyvaluemapId : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["value"] = args ? args.value : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(EnvironmentKeyvaluemapsEntries.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering EnvironmentKeyvaluemapsEntries resources. + */ +export interface EnvironmentKeyvaluemapsEntriesState { + /** + * The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * + * - - - + */ + envKeyvaluemapId?: pulumi.Input; + /** + * Required. Resource URI that can be used to identify the scope of the key value map entries. + */ + name?: pulumi.Input; + /** + * Required. Data or payload that is being retrieved and associated with the unique key. + */ + value?: pulumi.Input; +} + +/** + * The set of arguments for constructing a EnvironmentKeyvaluemapsEntries resource. + */ +export interface EnvironmentKeyvaluemapsEntriesArgs { + /** + * The Apigee environment keyvalumaps Id associated with the Apigee environment, + * in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + * + * + * - - - + */ + envKeyvaluemapId: pulumi.Input; + /** + * Required. Resource URI that can be used to identify the scope of the key value map entries. + */ + name?: pulumi.Input; + /** + * Required. Data or payload that is being retrieved and associated with the unique key. + */ + value: pulumi.Input; +} diff --git a/sdk/nodejs/apigee/index.ts b/sdk/nodejs/apigee/index.ts index ce0b717d3b..3c3fecd3ed 100644 --- a/sdk/nodejs/apigee/index.ts +++ b/sdk/nodejs/apigee/index.ts @@ -55,6 +55,16 @@ export type EnvironmentIamPolicy = import("./environmentIamPolicy").EnvironmentI export const EnvironmentIamPolicy: typeof import("./environmentIamPolicy").EnvironmentIamPolicy = null as any; utilities.lazyLoad(exports, ["EnvironmentIamPolicy"], () => require("./environmentIamPolicy")); +export { EnvironmentKeyvaluemapsArgs, EnvironmentKeyvaluemapsState } from "./environmentKeyvaluemaps"; +export type EnvironmentKeyvaluemaps = import("./environmentKeyvaluemaps").EnvironmentKeyvaluemaps; +export const EnvironmentKeyvaluemaps: typeof import("./environmentKeyvaluemaps").EnvironmentKeyvaluemaps = null as any; +utilities.lazyLoad(exports, ["EnvironmentKeyvaluemaps"], () => require("./environmentKeyvaluemaps")); + +export { EnvironmentKeyvaluemapsEntriesArgs, EnvironmentKeyvaluemapsEntriesState } from "./environmentKeyvaluemapsEntries"; +export type EnvironmentKeyvaluemapsEntries = import("./environmentKeyvaluemapsEntries").EnvironmentKeyvaluemapsEntries; +export const EnvironmentKeyvaluemapsEntries: typeof import("./environmentKeyvaluemapsEntries").EnvironmentKeyvaluemapsEntries = null as any; +utilities.lazyLoad(exports, ["EnvironmentKeyvaluemapsEntries"], () => require("./environmentKeyvaluemapsEntries")); + export { FlowhookArgs, FlowhookState } from "./flowhook"; export type Flowhook = import("./flowhook").Flowhook; export const Flowhook: typeof import("./flowhook").Flowhook = null as any; @@ -145,6 +155,10 @@ const _module = { return new EnvironmentIamMember(name, undefined, { urn }) case "gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy": return new EnvironmentIamPolicy(name, undefined, { urn }) + case "gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps": + return new EnvironmentKeyvaluemaps(name, undefined, { urn }) + case "gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries": + return new EnvironmentKeyvaluemapsEntries(name, undefined, { urn }) case "gcp:apigee/flowhook:Flowhook": return new Flowhook(name, undefined, { urn }) case "gcp:apigee/instance:Instance": @@ -184,6 +198,8 @@ pulumi.runtime.registerResourceModule("gcp", "apigee/environment", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/environmentIamBinding", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/environmentIamMember", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/environmentIamPolicy", _module) +pulumi.runtime.registerResourceModule("gcp", "apigee/environmentKeyvaluemaps", _module) +pulumi.runtime.registerResourceModule("gcp", "apigee/environmentKeyvaluemapsEntries", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/flowhook", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/instance", _module) pulumi.runtime.registerResourceModule("gcp", "apigee/instanceAttachment", _module) diff --git a/sdk/nodejs/apigee/instance.ts b/sdk/nodejs/apigee/instance.ts index a9544de93b..f48a9b36a3 100644 --- a/sdk/nodejs/apigee/instance.ts +++ b/sdk/nodejs/apigee/instance.ts @@ -151,7 +151,7 @@ import * as utilities from "../utilities"; * const apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", { * cryptoKeyId: apigeeKey.id, * role: "roles/cloudkms.cryptoKeyEncrypterDecrypter", - * member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`, + * member: apigeeSa.member, * }); * const apigeeOrg = new gcp.apigee.Organization("apigee_org", { * analyticsRegion: "us-central1", diff --git a/sdk/nodejs/apigee/natAddress.ts b/sdk/nodejs/apigee/natAddress.ts index cafdf03f2c..d02eb22c19 100644 --- a/sdk/nodejs/apigee/natAddress.ts +++ b/sdk/nodejs/apigee/natAddress.ts @@ -51,7 +51,7 @@ import * as utilities from "../utilities"; * const apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", { * cryptoKeyId: apigeeKey.id, * role: "roles/cloudkms.cryptoKeyEncrypterDecrypter", - * member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`, + * member: apigeeSa.member, * }); * const apigeeOrg = new gcp.apigee.Organization("apigee_org", { * analyticsRegion: "us-central1", diff --git a/sdk/nodejs/apigee/organization.ts b/sdk/nodejs/apigee/organization.ts index fe75a933b6..7aa6f12241 100644 --- a/sdk/nodejs/apigee/organization.ts +++ b/sdk/nodejs/apigee/organization.ts @@ -94,7 +94,7 @@ import * as utilities from "../utilities"; * const apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", { * cryptoKeyId: apigeeKey.id, * role: "roles/cloudkms.cryptoKeyEncrypterDecrypter", - * member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`, + * member: apigeeSa.member, * }); * const org = new gcp.apigee.Organization("org", { * analyticsRegion: "us-central1", @@ -132,7 +132,7 @@ import * as utilities from "../utilities"; * const apigeeSaKeyuser = new gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", { * cryptoKeyId: apigeeKey.id, * role: "roles/cloudkms.cryptoKeyEncrypterDecrypter", - * member: pulumi.interpolate`serviceAccount:${apigeeSa.email}`, + * member: apigeeSa.member, * }); * const org = new gcp.apigee.Organization("org", { * analyticsRegion: "us-central1", diff --git a/sdk/nodejs/apphub/serviceProjectAttachment.ts b/sdk/nodejs/apphub/serviceProjectAttachment.ts index 9328ad3155..32c9a6b899 100644 --- a/sdk/nodejs/apphub/serviceProjectAttachment.ts +++ b/sdk/nodejs/apphub/serviceProjectAttachment.ts @@ -108,7 +108,7 @@ export class ServiceProjectAttachment extends pulumi.CustomResource { */ public /*out*/ readonly createTime!: pulumi.Output; /** - * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" */ public /*out*/ readonly name!: pulumi.Output; /** @@ -119,7 +119,7 @@ export class ServiceProjectAttachment extends pulumi.CustomResource { /** * "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." */ public readonly serviceProject!: pulumi.Output; /** @@ -185,7 +185,7 @@ export interface ServiceProjectAttachmentState { */ createTime?: pulumi.Input; /** - * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\" " + * "Identifier. The resource name of a ServiceProjectAttachment. Format:\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"" */ name?: pulumi.Input; /** @@ -196,7 +196,7 @@ export interface ServiceProjectAttachmentState { /** * "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." */ serviceProject?: pulumi.Input; /** @@ -228,7 +228,7 @@ export interface ServiceProjectAttachmentArgs { /** * "Immutable. Service project name in the format: \"projects/abc\" * or \"projects/123\". As input, project name with either project id or number - * are accepted. As output, this field will contain project number. " + * are accepted. As output, this field will contain project number." */ serviceProject?: pulumi.Input; /** diff --git a/sdk/nodejs/bigquery/appProfile.ts b/sdk/nodejs/bigquery/appProfile.ts index 989b311b11..7c1b9c3830 100644 --- a/sdk/nodejs/bigquery/appProfile.ts +++ b/sdk/nodejs/bigquery/appProfile.ts @@ -208,6 +208,11 @@ export class AppProfile extends pulumi.CustomResource { * - - - */ public readonly appProfileId!: pulumi.Output; + /** + * Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + */ + public readonly dataBoostIsolationReadOnly!: pulumi.Output; /** * Long form description of the use case for this app profile. */ @@ -265,6 +270,7 @@ export class AppProfile extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as AppProfileState | undefined; resourceInputs["appProfileId"] = state ? state.appProfileId : undefined; + resourceInputs["dataBoostIsolationReadOnly"] = state ? state.dataBoostIsolationReadOnly : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["ignoreWarnings"] = state ? state.ignoreWarnings : undefined; resourceInputs["instance"] = state ? state.instance : undefined; @@ -280,6 +286,7 @@ export class AppProfile extends pulumi.CustomResource { throw new Error("Missing required property 'appProfileId'"); } resourceInputs["appProfileId"] = args ? args.appProfileId : undefined; + resourceInputs["dataBoostIsolationReadOnly"] = args ? args.dataBoostIsolationReadOnly : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["ignoreWarnings"] = args ? args.ignoreWarnings : undefined; resourceInputs["instance"] = args ? args.instance : undefined; @@ -306,6 +313,11 @@ export interface AppProfileState { * - - - */ appProfileId?: pulumi.Input; + /** + * Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + */ + dataBoostIsolationReadOnly?: pulumi.Input; /** * Long form description of the use case for this app profile. */ @@ -361,6 +373,11 @@ export interface AppProfileArgs { * - - - */ appProfileId: pulumi.Input; + /** + * Specifies that this app profile is intended for read-only usage via the Data Boost feature. + * Structure is documented below. + */ + dataBoostIsolationReadOnly?: pulumi.Input; /** * Long form description of the use case for this app profile. */ diff --git a/sdk/nodejs/bigquery/reservation.ts b/sdk/nodejs/bigquery/reservation.ts index ef05e685fb..ce7eeaafb5 100644 --- a/sdk/nodejs/bigquery/reservation.ts +++ b/sdk/nodejs/bigquery/reservation.ts @@ -113,8 +113,13 @@ export class Reservation extends pulumi.CustomResource { */ public readonly location!: pulumi.Output; /** + * (Optional, Deprecated) * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + * + * > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ public readonly multiRegionAuxiliary!: pulumi.Output; /** @@ -206,8 +211,13 @@ export interface ReservationState { */ location?: pulumi.Input; /** + * (Optional, Deprecated) * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + * + * > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ multiRegionAuxiliary?: pulumi.Input; /** @@ -258,8 +268,13 @@ export interface ReservationArgs { */ location?: pulumi.Input; /** + * (Optional, Deprecated) * Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). * If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + * + * > **Warning:** `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. + * + * @deprecated `multiRegionAuxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. */ multiRegionAuxiliary?: pulumi.Input; /** diff --git a/sdk/nodejs/bigquery/table.ts b/sdk/nodejs/bigquery/table.ts index f72605ebee..8e4cb5757e 100644 --- a/sdk/nodejs/bigquery/table.ts +++ b/sdk/nodejs/bigquery/table.ts @@ -123,8 +123,15 @@ export class Table extends pulumi.CustomResource { } /** - * This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ public readonly allowResourceTagsOnDeletion!: pulumi.Output; /** @@ -258,7 +265,7 @@ export class Table extends pulumi.CustomResource { */ public readonly requirePartitionFilter!: pulumi.Output; /** - * This field is in beta. The tags attached to this table. Tag keys are + * The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -405,8 +412,15 @@ export class Table extends pulumi.CustomResource { */ export interface TableState { /** - * This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ allowResourceTagsOnDeletion?: pulumi.Input; /** @@ -540,7 +554,7 @@ export interface TableState { */ requirePartitionFilter?: pulumi.Input; /** - * This field is in beta. The tags attached to this table. Tag keys are + * The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is @@ -593,8 +607,15 @@ export interface TableState { */ export interface TableArgs { /** - * This field is in beta. If set to true, it allows table deletion when there - * are still resource tags attached. The default value is false. + * If set to true, it allows table + * deletion when there are still resource tags attached. The default value is + * false. + * + * ~>**Warning:** `allowResourceTagsOnDeletion` is deprecated and will be + * removed in a future major release. The default behavior will be allowing + * the presence of resource tags on deletion after the next major release. + * + * @deprecated This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release. */ allowResourceTagsOnDeletion?: pulumi.Input; /** @@ -677,7 +698,7 @@ export interface TableArgs { */ requirePartitionFilter?: pulumi.Input; /** - * This field is in beta. The tags attached to this table. Tag keys are + * The tags attached to this table. Tag keys are * globally unique. Tag key is expected to be in the namespaced format, for * example "123456789012/environment" where 123456789012 is the ID of the * parent organization or project resource for this tag key. Tag value is diff --git a/sdk/nodejs/bigtable/table.ts b/sdk/nodejs/bigtable/table.ts index cfbbd97107..aa02f800dd 100644 --- a/sdk/nodejs/bigtable/table.ts +++ b/sdk/nodejs/bigtable/table.ts @@ -43,6 +43,10 @@ import * as utilities from "../utilities"; * }, * ], * changeStreamRetention: "24h0m0s", + * automatedBackupPolicy: { + * retentionPeriod: "72h0m0s", + * frequency: "24h0m0s", + * }, * }); * ``` * @@ -101,14 +105,13 @@ export class Table extends pulumi.CustomResource { } /** - * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * ----- */ public readonly automatedBackupPolicy!: pulumi.Output; /** * Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - * - * ----- */ public readonly changeStreamRetention!: pulumi.Output; /** @@ -184,14 +187,13 @@ export class Table extends pulumi.CustomResource { */ export interface TableState { /** - * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * ----- */ automatedBackupPolicy?: pulumi.Input; /** * Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - * - * ----- */ changeStreamRetention?: pulumi.Input; /** @@ -228,14 +230,13 @@ export interface TableState { */ export interface TableArgs { /** - * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - * Retention Period and Frequency to 0. + * Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + * + * ----- */ automatedBackupPolicy?: pulumi.Input; /** * Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - * - * ----- */ changeStreamRetention?: pulumi.Input; /** diff --git a/sdk/nodejs/certificateauthority/authority.ts b/sdk/nodejs/certificateauthority/authority.ts index ace50db62c..a821d9d578 100644 --- a/sdk/nodejs/certificateauthority/authority.ts +++ b/sdk/nodejs/certificateauthority/authority.ts @@ -178,12 +178,12 @@ import * as utilities from "../utilities"; * const privatecaSaKeyuserSignerverifier = new gcp.kms.CryptoKeyIAMMember("privateca_sa_keyuser_signerverifier", { * cryptoKeyId: "projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", * role: "roles/cloudkms.signerVerifier", - * member: pulumi.interpolate`serviceAccount:${privatecaSa.email}`, + * member: privatecaSa.member, * }); * const privatecaSaKeyuserViewer = new gcp.kms.CryptoKeyIAMMember("privateca_sa_keyuser_viewer", { * cryptoKeyId: "projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", * role: "roles/viewer", - * member: pulumi.interpolate`serviceAccount:${privatecaSa.email}`, + * member: privatecaSa.member, * }); * const _default = new gcp.certificateauthority.Authority("default", { * pool: "ca-pool", diff --git a/sdk/nodejs/cloudfunctions/function.ts b/sdk/nodejs/cloudfunctions/function.ts index 817a6eb581..4c4107f538 100644 --- a/sdk/nodejs/cloudfunctions/function.ts +++ b/sdk/nodejs/cloudfunctions/function.ts @@ -153,6 +153,10 @@ export class Function extends pulumi.CustomResource { * A set of key/value environment variable pairs available during build time. */ public readonly buildEnvironmentVariables!: pulumi.Output<{[key: string]: any} | undefined>; + /** + * If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + */ + public readonly buildServiceAccount!: pulumi.Output; /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. */ @@ -309,6 +313,7 @@ export class Function extends pulumi.CustomResource { const state = argsOrState as FunctionState | undefined; resourceInputs["availableMemoryMb"] = state ? state.availableMemoryMb : undefined; resourceInputs["buildEnvironmentVariables"] = state ? state.buildEnvironmentVariables : undefined; + resourceInputs["buildServiceAccount"] = state ? state.buildServiceAccount : undefined; resourceInputs["buildWorkerPool"] = state ? state.buildWorkerPool : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["dockerRegistry"] = state ? state.dockerRegistry : undefined; @@ -348,6 +353,7 @@ export class Function extends pulumi.CustomResource { } resourceInputs["availableMemoryMb"] = args ? args.availableMemoryMb : undefined; resourceInputs["buildEnvironmentVariables"] = args ? args.buildEnvironmentVariables : undefined; + resourceInputs["buildServiceAccount"] = args ? args.buildServiceAccount : undefined; resourceInputs["buildWorkerPool"] = args ? args.buildWorkerPool : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["dockerRegistry"] = args ? args.dockerRegistry : undefined; @@ -400,6 +406,10 @@ export interface FunctionState { * A set of key/value environment variable pairs available during build time. */ buildEnvironmentVariables?: pulumi.Input<{[key: string]: any}>; + /** + * If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + */ + buildServiceAccount?: pulumi.Input; /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. */ @@ -554,6 +564,10 @@ export interface FunctionArgs { * A set of key/value environment variable pairs available during build time. */ buildEnvironmentVariables?: pulumi.Input<{[key: string]: any}>; + /** + * If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + */ + buildServiceAccount?: pulumi.Input; /** * Name of the Cloud Build Custom Worker Pool that should be used to build the function. */ diff --git a/sdk/nodejs/cloudfunctions/getFunction.ts b/sdk/nodejs/cloudfunctions/getFunction.ts index ef788ffdad..833fb1d3b8 100644 --- a/sdk/nodejs/cloudfunctions/getFunction.ts +++ b/sdk/nodejs/cloudfunctions/getFunction.ts @@ -63,6 +63,7 @@ export interface GetFunctionResult { */ readonly availableMemoryMb: number; readonly buildEnvironmentVariables: {[key: string]: any}; + readonly buildServiceAccount: string; readonly buildWorkerPool: string; /** * Description of the function. diff --git a/sdk/nodejs/cloudfunctionsv2/function.ts b/sdk/nodejs/cloudfunctionsv2/function.ts index 289cd599a4..d4401bb3ed 100644 --- a/sdk/nodejs/cloudfunctionsv2/function.ts +++ b/sdk/nodejs/cloudfunctionsv2/function.ts @@ -668,7 +668,7 @@ import * as utilities from "../utilities"; * projectGetProject.then(projectGetProject => `serviceAccount:service-${projectGetProject.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com`), * projectGetProject.then(projectGetProject => `serviceAccount:service-${projectGetProject.number}@gs-project-accounts.iam.gserviceaccount.com`), * projectGetProject.then(projectGetProject => `serviceAccount:service-${projectGetProject.number}@serverless-robot-prod.iam.gserviceaccount.com`), - * pulumi.interpolate`serviceAccount:${eaSa.email}`, + * eaSa.member, * ], * }, { * dependsOn: [eaSa], diff --git a/sdk/nodejs/compute/backendService.ts b/sdk/nodejs/compute/backendService.ts index 504618d0ff..536dbe42f0 100644 --- a/sdk/nodejs/compute/backendService.ts +++ b/sdk/nodejs/compute/backendService.ts @@ -20,6 +20,9 @@ import * as utilities from "../utilities"; * * How-to Guides * * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) * + * > **Warning:** All arguments including the following potentially sensitive + * values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`. + * * ## Example Usage * * ### Backend Service Basic diff --git a/sdk/nodejs/compute/index.ts b/sdk/nodejs/compute/index.ts index 9d39b1c62a..517e423160 100644 --- a/sdk/nodejs/compute/index.ts +++ b/sdk/nodejs/compute/index.ts @@ -835,6 +835,11 @@ export type Reservation = import("./reservation").Reservation; export const Reservation: typeof import("./reservation").Reservation = null as any; utilities.lazyLoad(exports, ["Reservation"], () => require("./reservation")); +export { ResizeRequestArgs, ResizeRequestState } from "./resizeRequest"; +export type ResizeRequest = import("./resizeRequest").ResizeRequest; +export const ResizeRequest: typeof import("./resizeRequest").ResizeRequest = null as any; +utilities.lazyLoad(exports, ["ResizeRequest"], () => require("./resizeRequest")); + export { ResourcePolicyArgs, ResourcePolicyState } from "./resourcePolicy"; export type ResourcePolicy = import("./resourcePolicy").ResourcePolicy; export const ResourcePolicy: typeof import("./resourcePolicy").ResourcePolicy = null as any; @@ -865,6 +870,11 @@ export type RouterPeer = import("./routerPeer").RouterPeer; export const RouterPeer: typeof import("./routerPeer").RouterPeer = null as any; utilities.lazyLoad(exports, ["RouterPeer"], () => require("./routerPeer")); +export { RouterRoutePolicyArgs, RouterRoutePolicyState } from "./routerRoutePolicy"; +export type RouterRoutePolicy = import("./routerRoutePolicy").RouterRoutePolicy; +export const RouterRoutePolicy: typeof import("./routerRoutePolicy").RouterRoutePolicy = null as any; +utilities.lazyLoad(exports, ["RouterRoutePolicy"], () => require("./routerRoutePolicy")); + export { RouterStatusArgs, RouterStatusResult, RouterStatusOutputArgs } from "./routerStatus"; export const routerStatus: typeof import("./routerStatus").routerStatus = null as any; export const routerStatusOutput: typeof import("./routerStatus").routerStatusOutput = null as any; @@ -1227,6 +1237,8 @@ const _module = { return new RegionUrlMap(name, undefined, { urn }) case "gcp:compute/reservation:Reservation": return new Reservation(name, undefined, { urn }) + case "gcp:compute/resizeRequest:ResizeRequest": + return new ResizeRequest(name, undefined, { urn }) case "gcp:compute/resourcePolicy:ResourcePolicy": return new ResourcePolicy(name, undefined, { urn }) case "gcp:compute/route:Route": @@ -1239,6 +1251,8 @@ const _module = { return new RouterNat(name, undefined, { urn }) case "gcp:compute/routerPeer:RouterPeer": return new RouterPeer(name, undefined, { urn }) + case "gcp:compute/routerRoutePolicy:RouterRoutePolicy": + return new RouterRoutePolicy(name, undefined, { urn }) case "gcp:compute/sSLCertificate:SSLCertificate": return new SSLCertificate(name, undefined, { urn }) case "gcp:compute/sSLPolicy:SSLPolicy": @@ -1407,12 +1421,14 @@ pulumi.runtime.registerResourceModule("gcp", "compute/regionTargetHttpsProxy", _ pulumi.runtime.registerResourceModule("gcp", "compute/regionTargetTcpProxy", _module) pulumi.runtime.registerResourceModule("gcp", "compute/regionUrlMap", _module) pulumi.runtime.registerResourceModule("gcp", "compute/reservation", _module) +pulumi.runtime.registerResourceModule("gcp", "compute/resizeRequest", _module) pulumi.runtime.registerResourceModule("gcp", "compute/resourcePolicy", _module) pulumi.runtime.registerResourceModule("gcp", "compute/route", _module) pulumi.runtime.registerResourceModule("gcp", "compute/router", _module) pulumi.runtime.registerResourceModule("gcp", "compute/routerInterface", _module) pulumi.runtime.registerResourceModule("gcp", "compute/routerNat", _module) pulumi.runtime.registerResourceModule("gcp", "compute/routerPeer", _module) +pulumi.runtime.registerResourceModule("gcp", "compute/routerRoutePolicy", _module) pulumi.runtime.registerResourceModule("gcp", "compute/sSLCertificate", _module) pulumi.runtime.registerResourceModule("gcp", "compute/sSLPolicy", _module) pulumi.runtime.registerResourceModule("gcp", "compute/securityPolicy", _module) diff --git a/sdk/nodejs/compute/publicAdvertisedPrefix.ts b/sdk/nodejs/compute/publicAdvertisedPrefix.ts index 25fe2b565f..f44c123f15 100644 --- a/sdk/nodejs/compute/publicAdvertisedPrefix.ts +++ b/sdk/nodejs/compute/publicAdvertisedPrefix.ts @@ -114,6 +114,10 @@ export class PublicAdvertisedPrefix extends pulumi.CustomResource { * The URI of the created resource. */ public /*out*/ readonly selfLink!: pulumi.Output; + /** + * Output Only. The shared secret to be used for reverse DNS verification. + */ + public /*out*/ readonly sharedSecret!: pulumi.Output; /** * Create a PublicAdvertisedPrefix resource with the given unique name, arguments, and options. @@ -134,6 +138,7 @@ export class PublicAdvertisedPrefix extends pulumi.CustomResource { resourceInputs["name"] = state ? state.name : undefined; resourceInputs["project"] = state ? state.project : undefined; resourceInputs["selfLink"] = state ? state.selfLink : undefined; + resourceInputs["sharedSecret"] = state ? state.sharedSecret : undefined; } else { const args = argsOrState as PublicAdvertisedPrefixArgs | undefined; if ((!args || args.dnsVerificationIp === undefined) && !opts.urn) { @@ -148,6 +153,7 @@ export class PublicAdvertisedPrefix extends pulumi.CustomResource { resourceInputs["name"] = args ? args.name : undefined; resourceInputs["project"] = args ? args.project : undefined; resourceInputs["selfLink"] = undefined /*out*/; + resourceInputs["sharedSecret"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(PublicAdvertisedPrefix.__pulumiType, name, resourceInputs, opts); @@ -191,6 +197,10 @@ export interface PublicAdvertisedPrefixState { * The URI of the created resource. */ selfLink?: pulumi.Input; + /** + * Output Only. The shared secret to be used for reverse DNS verification. + */ + sharedSecret?: pulumi.Input; } /** diff --git a/sdk/nodejs/compute/resizeRequest.ts b/sdk/nodejs/compute/resizeRequest.ts new file mode 100644 index 0000000000..8e651ed74d --- /dev/null +++ b/sdk/nodejs/compute/resizeRequest.ts @@ -0,0 +1,339 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Represents a Managed Instance Group Resize Request + * + * Resize Requests are the Managed Instance Group implementation of Dynamic Workload Scheduler Flex Start. + * + * With Dynamic Workload Scheduler in Flex Start mode, you submit a GPU capacity request for your AI/ML jobs by indicating how many you need, a duration, and your preferred region. Dynamic Workload Scheduler intelligently persists the request; once the capacity becomes available, it automatically provisions your VMs enabling your workloads to run continuously for the entire duration of the capacity allocation. + * + * To get more information about ResizeRequest, see: + * + * * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagerResizeRequests) + * * How-to Guides + * * [QUICKSTART_TITLE](https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig) + * + * ## Example Usage + * + * ### Compute Mig Resize Request + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const a3Dws = new gcp.compute.RegionInstanceTemplate("a3_dws", { + * name: "a3-dws", + * region: "us-central1", + * description: "This template is used to create a mig instance that is compatible with DWS resize requests.", + * instanceDescription: "A3 GPU", + * machineType: "a3-highgpu-8g", + * canIpForward: false, + * scheduling: { + * automaticRestart: false, + * onHostMaintenance: "TERMINATE", + * }, + * disks: [{ + * sourceImage: "cos-cloud/cos-105-lts", + * autoDelete: true, + * boot: true, + * diskType: "pd-ssd", + * diskSizeGb: 960, + * mode: "READ_WRITE", + * }], + * guestAccelerators: [{ + * type: "nvidia-h100-80gb", + * count: 8, + * }], + * reservationAffinity: { + * type: "NO_RESERVATION", + * }, + * shieldedInstanceConfig: { + * enableVtpm: true, + * enableIntegrityMonitoring: true, + * }, + * networkInterfaces: [{ + * network: "default", + * }], + * }); + * const a3DwsInstanceGroupManager = new gcp.compute.InstanceGroupManager("a3_dws", { + * name: "a3-dws", + * baseInstanceName: "a3-dws", + * zone: "us-central1-a", + * versions: [{ + * instanceTemplate: a3Dws.selfLink, + * }], + * instanceLifecyclePolicy: { + * defaultActionOnFailure: "DO_NOTHING", + * }, + * waitForInstances: false, + * }); + * const a3ResizeRequest = new gcp.compute.ResizeRequest("a3_resize_request", { + * name: "a3-dws", + * instanceGroupManager: a3DwsInstanceGroupManager.name, + * zone: "us-central1-a", + * description: "Test resize request resource", + * resizeBy: 2, + * requestedRunDuration: { + * seconds: "14400", + * nanos: 0, + * }, + * }); + * ``` + * + * ## Import + * + * ResizeRequest can be imported using any of these accepted formats: + * + * * `projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + * + * * `{{project}}/{{zone}}/{{instance_group_manager}}/{{name}}` + * + * * `{{zone}}/{{instance_group_manager}}/{{name}}` + * + * * `{{instance_group_manager}}/{{name}}` + * + * When using the `pulumi import` command, ResizeRequest can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{zone}}/{{instance_group_manager}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{instance_group_manager}}/{{name}} + * ``` + */ +export class ResizeRequest extends pulumi.CustomResource { + /** + * Get an existing ResizeRequest resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ResizeRequestState, opts?: pulumi.CustomResourceOptions): ResizeRequest { + return new ResizeRequest(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:compute/resizeRequest:ResizeRequest'; + + /** + * Returns true if the given object is an instance of ResizeRequest. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResizeRequest { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResizeRequest.__pulumiType; + } + + /** + * The creation timestamp for this resize request in RFC3339 text format. + */ + public /*out*/ readonly creationTimestamp!: pulumi.Output; + /** + * An optional description of this resize-request. + */ + public readonly description!: pulumi.Output; + /** + * The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * + * - - - + */ + public readonly instanceGroupManager!: pulumi.Output; + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + */ + public readonly name!: pulumi.Output; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + public readonly project!: pulumi.Output; + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + */ + public readonly requestedRunDuration!: pulumi.Output; + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + */ + public readonly resizeBy!: pulumi.Output; + /** + * [Output only] Current state of the request. + */ + public /*out*/ readonly state!: pulumi.Output; + /** + * [Output only] Status of the request. + * Structure is documented below. + */ + public /*out*/ readonly statuses!: pulumi.Output; + /** + * Name of the compute zone scoping this request. Name should conform to RFC1035. + */ + public readonly zone!: pulumi.Output; + + /** + * Create a ResizeRequest resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ResizeRequestArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ResizeRequestArgs | ResizeRequestState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ResizeRequestState | undefined; + resourceInputs["creationTimestamp"] = state ? state.creationTimestamp : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["instanceGroupManager"] = state ? state.instanceGroupManager : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["requestedRunDuration"] = state ? state.requestedRunDuration : undefined; + resourceInputs["resizeBy"] = state ? state.resizeBy : undefined; + resourceInputs["state"] = state ? state.state : undefined; + resourceInputs["statuses"] = state ? state.statuses : undefined; + resourceInputs["zone"] = state ? state.zone : undefined; + } else { + const args = argsOrState as ResizeRequestArgs | undefined; + if ((!args || args.instanceGroupManager === undefined) && !opts.urn) { + throw new Error("Missing required property 'instanceGroupManager'"); + } + if ((!args || args.resizeBy === undefined) && !opts.urn) { + throw new Error("Missing required property 'resizeBy'"); + } + if ((!args || args.zone === undefined) && !opts.urn) { + throw new Error("Missing required property 'zone'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["instanceGroupManager"] = args ? args.instanceGroupManager : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["requestedRunDuration"] = args ? args.requestedRunDuration : undefined; + resourceInputs["resizeBy"] = args ? args.resizeBy : undefined; + resourceInputs["zone"] = args ? args.zone : undefined; + resourceInputs["creationTimestamp"] = undefined /*out*/; + resourceInputs["state"] = undefined /*out*/; + resourceInputs["statuses"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ResizeRequest.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ResizeRequest resources. + */ +export interface ResizeRequestState { + /** + * The creation timestamp for this resize request in RFC3339 text format. + */ + creationTimestamp?: pulumi.Input; + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * + * - - - + */ + instanceGroupManager?: pulumi.Input; + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + */ + requestedRunDuration?: pulumi.Input; + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + */ + resizeBy?: pulumi.Input; + /** + * [Output only] Current state of the request. + */ + state?: pulumi.Input; + /** + * [Output only] Status of the request. + * Structure is documented below. + */ + statuses?: pulumi.Input[]>; + /** + * Name of the compute zone scoping this request. Name should conform to RFC1035. + */ + zone?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ResizeRequest resource. + */ +export interface ResizeRequestArgs { + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + * Authorization requires the following IAM permission on the specified resource instanceGroupManager: + * *compute.instanceGroupManagers.update + * + * + * - - - + */ + instanceGroupManager: pulumi.Input; + /** + * The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + */ + name?: pulumi.Input; + /** + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. + */ + project?: pulumi.Input; + /** + * Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + * Structure is documented below. + */ + requestedRunDuration?: pulumi.Input; + /** + * The number of instances to be created by this resize request. The group's target size will be increased by this number. + */ + resizeBy: pulumi.Input; + /** + * Name of the compute zone scoping this request. Name should conform to RFC1035. + */ + zone: pulumi.Input; +} diff --git a/sdk/nodejs/compute/routerPeer.ts b/sdk/nodejs/compute/routerPeer.ts index 5a1e328eb2..7e5f2f1c6d 100644 --- a/sdk/nodejs/compute/routerPeer.ts +++ b/sdk/nodejs/compute/routerPeer.ts @@ -191,6 +191,127 @@ import * as utilities from "../utilities"; * }); * ``` * + * ### Router Peer Export And Import Policies + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const network = new gcp.compute.Network("network", { + * name: "my-router-net", + * autoCreateSubnetworks: false, + * }); + * const subnetwork = new gcp.compute.Subnetwork("subnetwork", { + * name: "my-router-subnet", + * network: network.selfLink, + * ipCidrRange: "10.0.0.0/16", + * region: "us-central1", + * }); + * const address = new gcp.compute.Address("address", { + * name: "my-router", + * region: subnetwork.region, + * }); + * const vpnGateway = new gcp.compute.HaVpnGateway("vpn_gateway", { + * name: "my-router-gateway", + * network: network.selfLink, + * region: subnetwork.region, + * }); + * const externalGateway = new gcp.compute.ExternalVpnGateway("external_gateway", { + * name: "my-router-external-gateway", + * redundancyType: "SINGLE_IP_INTERNALLY_REDUNDANT", + * description: "An externally managed VPN gateway", + * interfaces: [{ + * id: 0, + * ipAddress: "8.8.8.8", + * }], + * }); + * const router = new gcp.compute.Router("router", { + * name: "my-router", + * region: subnetwork.region, + * network: network.selfLink, + * bgp: { + * asn: 64514, + * }, + * }); + * const vpnTunnel = new gcp.compute.VPNTunnel("vpn_tunnel", { + * name: "my-router", + * region: subnetwork.region, + * vpnGateway: vpnGateway.id, + * peerExternalGateway: externalGateway.id, + * peerExternalGatewayInterface: 0, + * sharedSecret: "unguessable", + * router: router.name, + * vpnGatewayInterface: 0, + * }); + * const routerInterface = new gcp.compute.RouterInterface("router_interface", { + * name: "my-router", + * router: router.name, + * region: router.region, + * vpnTunnel: vpnTunnel.name, + * }); + * const rp_export = new gcp.compute.RouterRoutePolicy("rp-export", { + * name: "my-router-rp-export", + * router: router.name, + * region: router.region, + * type: "ROUTE_POLICY_TYPE_EXPORT", + * terms: [{ + * priority: 2, + * match: { + * expression: "destination == '10.0.0.0/12'", + * title: "export_expression", + * description: "acceptance expression for export", + * }, + * actions: [{ + * expression: "accept()", + * }], + * }], + * }, { + * dependsOn: [routerInterface], + * }); + * const rp_import = new gcp.compute.RouterRoutePolicy("rp-import", { + * name: "my-router-rp-import", + * router: router.name, + * region: router.region, + * type: "ROUTE_POLICY_TYPE_IMPORT", + * terms: [{ + * priority: 1, + * match: { + * expression: "destination == '10.0.0.0/12'", + * title: "import_expression", + * description: "acceptance expression for import", + * }, + * actions: [{ + * expression: "accept()", + * }], + * }], + * }, { + * dependsOn: [ + * routerInterface, + * rp_export, + * ], + * }); + * const routerPeer = new gcp.compute.RouterPeer("router_peer", { + * name: "my-router-peer", + * router: router.name, + * region: router.region, + * peerAsn: 65515, + * advertisedRoutePriority: 100, + * "interface": routerInterface.name, + * md5AuthenticationKey: { + * name: "my-router-peer-key", + * key: "my-router-peer-key-value", + * }, + * importPolicies: [rp_import.name], + * exportPolicies: [rp_export.name], + * }, { + * dependsOn: [ + * rp_export, + * rp_import, + * routerInterface, + * ], + * }); + * ``` + * * ## Import * * RouterBgpPeer can be imported using any of these accepted formats: @@ -289,6 +410,17 @@ export class RouterPeer extends pulumi.CustomResource { * Structure is documented below. */ public readonly bfd!: pulumi.Output; + /** + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + */ + public readonly customLearnedIpRanges!: pulumi.Output; + /** + * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + */ + public readonly customLearnedRoutePriority!: pulumi.Output; /** * The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -304,6 +436,16 @@ export class RouterPeer extends pulumi.CustomResource { * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. */ public readonly enableIpv6!: pulumi.Output; + /** + * routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + */ + public readonly exportPolicies!: pulumi.Output; + /** + * routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + */ + public readonly importPolicies!: pulumi.Output; /** * Name of the interface the BGP peer is associated with. */ @@ -414,9 +556,13 @@ export class RouterPeer extends pulumi.CustomResource { resourceInputs["advertisedIpRanges"] = state ? state.advertisedIpRanges : undefined; resourceInputs["advertisedRoutePriority"] = state ? state.advertisedRoutePriority : undefined; resourceInputs["bfd"] = state ? state.bfd : undefined; + resourceInputs["customLearnedIpRanges"] = state ? state.customLearnedIpRanges : undefined; + resourceInputs["customLearnedRoutePriority"] = state ? state.customLearnedRoutePriority : undefined; resourceInputs["enable"] = state ? state.enable : undefined; resourceInputs["enableIpv4"] = state ? state.enableIpv4 : undefined; resourceInputs["enableIpv6"] = state ? state.enableIpv6 : undefined; + resourceInputs["exportPolicies"] = state ? state.exportPolicies : undefined; + resourceInputs["importPolicies"] = state ? state.importPolicies : undefined; resourceInputs["interface"] = state ? state.interface : undefined; resourceInputs["ipAddress"] = state ? state.ipAddress : undefined; resourceInputs["ipv4NexthopAddress"] = state ? state.ipv4NexthopAddress : undefined; @@ -448,9 +594,13 @@ export class RouterPeer extends pulumi.CustomResource { resourceInputs["advertisedIpRanges"] = args ? args.advertisedIpRanges : undefined; resourceInputs["advertisedRoutePriority"] = args ? args.advertisedRoutePriority : undefined; resourceInputs["bfd"] = args ? args.bfd : undefined; + resourceInputs["customLearnedIpRanges"] = args ? args.customLearnedIpRanges : undefined; + resourceInputs["customLearnedRoutePriority"] = args ? args.customLearnedRoutePriority : undefined; resourceInputs["enable"] = args ? args.enable : undefined; resourceInputs["enableIpv4"] = args ? args.enableIpv4 : undefined; resourceInputs["enableIpv6"] = args ? args.enableIpv6 : undefined; + resourceInputs["exportPolicies"] = args ? args.exportPolicies : undefined; + resourceInputs["importPolicies"] = args ? args.importPolicies : undefined; resourceInputs["interface"] = args ? args.interface : undefined; resourceInputs["ipAddress"] = args ? args.ipAddress : undefined; resourceInputs["ipv4NexthopAddress"] = args ? args.ipv4NexthopAddress : undefined; @@ -516,6 +666,17 @@ export interface RouterPeerState { * Structure is documented below. */ bfd?: pulumi.Input; + /** + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + */ + customLearnedIpRanges?: pulumi.Input[]>; + /** + * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + */ + customLearnedRoutePriority?: pulumi.Input; /** * The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -531,6 +692,16 @@ export interface RouterPeerState { * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. */ enableIpv6?: pulumi.Input; + /** + * routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + */ + exportPolicies?: pulumi.Input[]>; + /** + * routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + */ + importPolicies?: pulumi.Input[]>; /** * Name of the interface the BGP peer is associated with. */ @@ -668,6 +839,17 @@ export interface RouterPeerArgs { * Structure is documented below. */ bfd?: pulumi.Input; + /** + * The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + * subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + */ + customLearnedIpRanges?: pulumi.Input[]>; + /** + * The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + * ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + * priority of 100 to the ranges. + */ + customLearnedRoutePriority?: pulumi.Input; /** * The status of the BGP peer connection. If set to false, any active session * with the peer is terminated and all associated routing information is removed. @@ -683,6 +865,16 @@ export interface RouterPeerArgs { * Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. */ enableIpv6?: pulumi.Input; + /** + * routers.list of export policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + */ + exportPolicies?: pulumi.Input[]>; + /** + * routers.list of import policies applied to this peer, in the order they must be evaluated. + * The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + */ + importPolicies?: pulumi.Input[]>; /** * Name of the interface the BGP peer is associated with. */ diff --git a/sdk/nodejs/compute/routerRoutePolicy.ts b/sdk/nodejs/compute/routerRoutePolicy.ts new file mode 100644 index 0000000000..32919d4341 --- /dev/null +++ b/sdk/nodejs/compute/routerRoutePolicy.ts @@ -0,0 +1,276 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * ## Example Usage + * + * ### Router Route Policy Export + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const net = new gcp.compute.Network("net", { + * name: "my-network", + * autoCreateSubnetworks: false, + * }); + * const subnet = new gcp.compute.Subnetwork("subnet", { + * name: "my-subnetwork", + * network: net.id, + * ipCidrRange: "10.0.0.0/16", + * region: "us-central1", + * }); + * const router = new gcp.compute.Router("router", { + * name: "my-router", + * region: subnet.region, + * network: net.id, + * }); + * const rp_export = new gcp.compute.RouterRoutePolicy("rp-export", { + * router: router.name, + * region: router.region, + * name: "my-rp1", + * type: "ROUTE_POLICY_TYPE_EXPORT", + * terms: [{ + * priority: 1, + * match: { + * expression: "destination == '10.0.0.0/12'", + * }, + * actions: [{ + * expression: "accept()", + * }], + * }], + * }); + * ``` + * ### Router Route Policy Import + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const net = new gcp.compute.Network("net", { + * name: "my-network", + * autoCreateSubnetworks: false, + * }); + * const subnet = new gcp.compute.Subnetwork("subnet", { + * name: "my-subnetwork", + * network: net.id, + * ipCidrRange: "10.0.0.0/16", + * region: "us-central1", + * }); + * const router = new gcp.compute.Router("router", { + * name: "my-router", + * region: subnet.region, + * network: net.id, + * }); + * const rp_import = new gcp.compute.RouterRoutePolicy("rp-import", { + * name: "my-rp2", + * router: router.name, + * region: router.region, + * type: "ROUTE_POLICY_TYPE_IMPORT", + * terms: [{ + * priority: 2, + * match: { + * expression: "destination == '10.0.0.0/12'", + * }, + * actions: [{ + * expression: "accept()", + * }], + * }], + * }); + * ``` + * + * ## Import + * + * RouterRoutePolicy can be imported using any of these accepted formats: + * + * * `{{project}}/{{region}}/{{router}}/routePolicies/{{name}}` + * + * * `{{project}}/{{region}}/{{router}}/{{name}}` + * + * * `{{region}}/{{router}}/{{name}}` + * + * * `{{router}}/{{name}}` + * + * When using the `pulumi import` command, RouterRoutePolicy can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/routePolicies/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{region}}/{{router}}/{{name}} + * ``` + * + * ```sh + * $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{router}}/{{name}} + * ``` + */ +export class RouterRoutePolicy extends pulumi.CustomResource { + /** + * Get an existing RouterRoutePolicy resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: RouterRoutePolicyState, opts?: pulumi.CustomResourceOptions): RouterRoutePolicy { + return new RouterRoutePolicy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:compute/routerRoutePolicy:RouterRoutePolicy'; + + /** + * Returns true if the given object is an instance of RouterRoutePolicy. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is RouterRoutePolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === RouterRoutePolicy.__pulumiType; + } + + /** + * The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + */ + public /*out*/ readonly fingerprint!: pulumi.Output; + /** + * Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + */ + public readonly name!: pulumi.Output; + public readonly project!: pulumi.Output; + /** + * Region where the router and NAT reside. + */ + public readonly region!: pulumi.Output; + /** + * The name of the Cloud Router in which this route policy will be configured. + */ + public readonly router!: pulumi.Output; + /** + * List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + */ + public readonly terms!: pulumi.Output; + /** + * This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + */ + public readonly type!: pulumi.Output; + + /** + * Create a RouterRoutePolicy resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: RouterRoutePolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: RouterRoutePolicyArgs | RouterRoutePolicyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as RouterRoutePolicyState | undefined; + resourceInputs["fingerprint"] = state ? state.fingerprint : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["region"] = state ? state.region : undefined; + resourceInputs["router"] = state ? state.router : undefined; + resourceInputs["terms"] = state ? state.terms : undefined; + resourceInputs["type"] = state ? state.type : undefined; + } else { + const args = argsOrState as RouterRoutePolicyArgs | undefined; + if ((!args || args.router === undefined) && !opts.urn) { + throw new Error("Missing required property 'router'"); + } + if ((!args || args.terms === undefined) && !opts.urn) { + throw new Error("Missing required property 'terms'"); + } + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["region"] = args ? args.region : undefined; + resourceInputs["router"] = args ? args.router : undefined; + resourceInputs["terms"] = args ? args.terms : undefined; + resourceInputs["type"] = args ? args.type : undefined; + resourceInputs["fingerprint"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(RouterRoutePolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering RouterRoutePolicy resources. + */ +export interface RouterRoutePolicyState { + /** + * The fingerprint used for optimistic locking of this resource. Used + * internally during updates. + */ + fingerprint?: pulumi.Input; + /** + * Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + */ + name?: pulumi.Input; + project?: pulumi.Input; + /** + * Region where the router and NAT reside. + */ + region?: pulumi.Input; + /** + * The name of the Cloud Router in which this route policy will be configured. + */ + router?: pulumi.Input; + /** + * List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + */ + terms?: pulumi.Input[]>; + /** + * This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + */ + type?: pulumi.Input; +} + +/** + * The set of arguments for constructing a RouterRoutePolicy resource. + */ +export interface RouterRoutePolicyArgs { + /** + * Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + */ + name?: pulumi.Input; + project?: pulumi.Input; + /** + * Region where the router and NAT reside. + */ + region?: pulumi.Input; + /** + * The name of the Cloud Router in which this route policy will be configured. + */ + router: pulumi.Input; + /** + * List of terms (the order in the list is not important, they are evaluated in order of priority). + * Structure is documented below. + */ + terms: pulumi.Input[]>; + /** + * This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + * "ROUTE_POLICY_TYPE_EXPORT"] + */ + type?: pulumi.Input; +} diff --git a/sdk/nodejs/compute/serviceAttachment.ts b/sdk/nodejs/compute/serviceAttachment.ts index b1aec2bb47..c4f0126d94 100644 --- a/sdk/nodejs/compute/serviceAttachment.ts +++ b/sdk/nodejs/compute/serviceAttachment.ts @@ -453,8 +453,7 @@ export class ServiceAttachment extends pulumi.CustomResource { */ public /*out*/ readonly selfLink!: pulumi.Output; /** - * The URL of a forwarding rule that represents the service identified by - * this service attachment. + * The URL of a service serving the endpoint identified by this service attachment. */ public readonly targetService!: pulumi.Output; @@ -605,8 +604,7 @@ export interface ServiceAttachmentState { */ selfLink?: pulumi.Input; /** - * The URL of a forwarding rule that represents the service identified by - * this service attachment. + * The URL of a service serving the endpoint identified by this service attachment. */ targetService?: pulumi.Input; } @@ -680,8 +678,7 @@ export interface ServiceAttachmentArgs { */ region?: pulumi.Input; /** - * The URL of a forwarding rule that represents the service identified by - * this service attachment. + * The URL of a service serving the endpoint identified by this service attachment. */ targetService: pulumi.Input; } diff --git a/sdk/nodejs/container/nodePool.ts b/sdk/nodejs/container/nodePool.ts index 8668e792e3..deba674475 100644 --- a/sdk/nodejs/container/nodePool.ts +++ b/sdk/nodejs/container/nodePool.ts @@ -224,8 +224,6 @@ export class NodePool extends pulumi.CustomResource { /** * Specifies node pool-level settings of queued provisioning. * Structure is documented below. - * - * The `autoscaling` block supports (either total or per zone limits are required): */ public readonly queuedProvisioning!: pulumi.Output; /** @@ -410,8 +408,6 @@ export interface NodePoolState { /** * Specifies node pool-level settings of queued provisioning. * Structure is documented below. - * - * The `autoscaling` block supports (either total or per zone limits are required): */ queuedProvisioning?: pulumi.Input; /** @@ -524,8 +520,6 @@ export interface NodePoolArgs { /** * Specifies node pool-level settings of queued provisioning. * Structure is documented below. - * - * The `autoscaling` block supports (either total or per zone limits are required): */ queuedProvisioning?: pulumi.Input; /** diff --git a/sdk/nodejs/databasemigrationservice/privateConnection.ts b/sdk/nodejs/databasemigrationservice/privateConnection.ts index 1a9bf378fb..dd110d7e81 100644 --- a/sdk/nodejs/databasemigrationservice/privateConnection.ts +++ b/sdk/nodejs/databasemigrationservice/privateConnection.ts @@ -23,10 +23,7 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * - * const default = gcp.compute.getNetwork({ - * name: "my-network", - * }); - * const defaultPrivateConnection = new gcp.databasemigrationservice.PrivateConnection("default", { + * const _default = new gcp.databasemigrationservice.PrivateConnection("default", { * displayName: "dbms_pc", * location: "us-central1", * privateConnectionId: "my-connection", @@ -34,10 +31,14 @@ import * as utilities from "../utilities"; * key: "value", * }, * vpcPeeringConfig: { - * vpcName: _default.then(_default => _default.id), + * vpcName: googleComputeNetwork["default"].id, * subnet: "10.0.0.0/29", * }, * }); + * const defaultNetwork = new gcp.compute.Network("default", { + * name: "my-network", + * autoCreateSubnetworks: false, + * }); * ``` * * ## Import diff --git a/sdk/nodejs/datastore/dataStoreIndex.ts b/sdk/nodejs/datastore/dataStoreIndex.ts index 8e98f82ed7..8a15ecf07d 100644 --- a/sdk/nodejs/datastore/dataStoreIndex.ts +++ b/sdk/nodejs/datastore/dataStoreIndex.ts @@ -7,7 +7,9 @@ import * as outputs from "../types/output"; import * as utilities from "../utilities"; /** - * Describes a composite index for Cloud Datastore. + * > **Warning:** `datastoreIndex` is deprecated and will be removed in a future major release. Use `firestoreIndex` instead; this resource is deprecated because it only supports the (default) database. `firestoreIndex` supports both Firestore in Datastore Mode and Firestore Native indexes and supports both named and the (default) database. + * + * Describes a composite index for Firestore in Datastore Mode. * * To get more information about Index, see: * @@ -15,11 +17,15 @@ import * as utilities from "../utilities"; * * How-to Guides * * [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes) * - * > **Warning:** This resource creates a Datastore Index on a project that has already - * enabled a Datastore-compatible database. If you haven't already enabled - * one, you can create a `gcp.appengine.Application` resource with - * `databaseType` set to `"CLOUD_DATASTORE_COMPATIBILITY"` to do so. Your - * Datastore location will be the same as the App Engine location specified. + * > **Warning:** `datastoreIndex` is deprecated and will be removed in a future major release. + * Use `firestoreIndex` instead; this resource is deprecated because it only supports the (default) database. + * This resource creates a Datastore Index on a project that has already + * enabled a Datastore-compatible database. If you haven't already created it, you may + * create a `gcp.firestore.Database` resource with `locationId` set + * to your chosen location, and `type` set to `"DATASTORE_MODE"`. + * If you wish to use App Engine, you may instead create a `gcp.appengine.Application` resource with + * `databaseType` set to `"CLOUD_DATASTORE_COMPATIBILITY"`. + * Your Datastore location will be the same as the App Engine location specified. * * ## Example Usage * diff --git a/sdk/nodejs/datastream/stream.ts b/sdk/nodejs/datastream/stream.ts index 7b4ea02435..7293d1a754 100644 --- a/sdk/nodejs/datastream/stream.ts +++ b/sdk/nodejs/datastream/stream.ts @@ -661,6 +661,98 @@ import * as utilities from "../utilities"; * dependsOn: [bigqueryKeyUser], * }); * ``` + * ### Datastream Stream Bigquery Append Only + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * import * as random from "@pulumi/random"; + * + * const project = gcp.organizations.getProject({}); + * const instance = new gcp.sql.DatabaseInstance("instance", { + * name: "my-instance", + * databaseVersion: "MYSQL_8_0", + * region: "us-central1", + * settings: { + * tier: "db-f1-micro", + * backupConfiguration: { + * enabled: true, + * binaryLogEnabled: true, + * }, + * ipConfiguration: { + * authorizedNetworks: [ + * { + * value: "34.71.242.81", + * }, + * { + * value: "34.72.28.29", + * }, + * { + * value: "34.67.6.157", + * }, + * { + * value: "34.67.234.134", + * }, + * { + * value: "34.72.239.218", + * }, + * ], + * }, + * }, + * deletionProtection: true, + * }); + * const db = new gcp.sql.Database("db", { + * instance: instance.name, + * name: "db", + * }); + * const pwd = new random.RandomPassword("pwd", { + * length: 16, + * special: false, + * }); + * const user = new gcp.sql.User("user", { + * name: "user", + * instance: instance.name, + * host: "%", + * password: pwd.result, + * }); + * const sourceConnectionProfile = new gcp.datastream.ConnectionProfile("source_connection_profile", { + * displayName: "Source connection profile", + * location: "us-central1", + * connectionProfileId: "source-profile", + * mysqlProfile: { + * hostname: instance.publicIpAddress, + * username: user.name, + * password: user.password, + * }, + * }); + * const destinationConnectionProfile = new gcp.datastream.ConnectionProfile("destination_connection_profile", { + * displayName: "Connection profile", + * location: "us-central1", + * connectionProfileId: "destination-profile", + * bigqueryProfile: {}, + * }); + * const _default = new gcp.datastream.Stream("default", { + * streamId: "my-stream", + * location: "us-central1", + * displayName: "my stream", + * sourceConfig: { + * sourceConnectionProfile: sourceConnectionProfile.id, + * mysqlSourceConfig: {}, + * }, + * destinationConfig: { + * destinationConnectionProfile: destinationConnectionProfile.id, + * bigqueryDestinationConfig: { + * sourceHierarchyDatasets: { + * datasetTemplate: { + * location: "us-central1", + * }, + * }, + * appendOnly: {}, + * }, + * }, + * backfillNone: {}, + * }); + * ``` * * ## Import * diff --git a/sdk/nodejs/firebase/databaseInstance.ts b/sdk/nodejs/firebase/databaseInstance.ts index 9e95855b01..5baeeeca42 100644 --- a/sdk/nodejs/firebase/databaseInstance.ts +++ b/sdk/nodejs/firebase/databaseInstance.ts @@ -138,8 +138,8 @@ export class DatabaseInstance extends pulumi.CustomResource { */ public readonly instanceId!: pulumi.Output; /** - * The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). */ @@ -233,8 +233,8 @@ export interface DatabaseInstanceState { */ instanceId?: pulumi.Input; /** - * The fully-qualified resource name of the Firebase Realtime Database, in the - * format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + * The fully-qualified resource name of the Firebase Realtime Database, in + * the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID * PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) * Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). */ diff --git a/sdk/nodejs/firebase/hostingSite.ts b/sdk/nodejs/firebase/hostingSite.ts index b5c7b75cfb..d2a3b05bb2 100644 --- a/sdk/nodejs/firebase/hostingSite.ts +++ b/sdk/nodejs/firebase/hostingSite.ts @@ -103,8 +103,8 @@ export class HostingSite extends pulumi.CustomResource { */ public /*out*/ readonly defaultUrl!: pulumi.Output; /** - * Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -169,8 +169,8 @@ export interface HostingSiteState { */ defaultUrl?: pulumi.Input; /** - * Output only. The fully-qualified resource name of the Hosting site, in the - * format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + * Output only. The fully-qualified resource name of the Hosting site, in + * the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the * Firebase project's * [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its * [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). diff --git a/sdk/nodejs/firestore/index_.ts b/sdk/nodejs/firestore/index_.ts index fa46ea84fc..ddf6a96a07 100644 --- a/sdk/nodejs/firestore/index_.ts +++ b/sdk/nodejs/firestore/index_.ts @@ -8,8 +8,9 @@ import * as utilities from "../utilities"; /** * Cloud Firestore indexes enable simple and complex queries against documents in a database. - * This resource manages composite indexes and not single - * field indexes. + * Both Firestore Native and Datastore Mode indexes are supported. + * This resource manages composite indexes and not single field indexes. + * To manage single field indexes, use the `gcp.firestore.Field` resource instead. * * To get more information about Index, see: * @@ -21,9 +22,8 @@ import * as utilities from "../utilities"; * a Firestore database. If you haven't already created it, you may * create a `gcp.firestore.Database` resource and `locationId` set * to your chosen location. If you wish to use App Engine, you may - * instead create a `gcp.appengine.Application` resource with - * `databaseType` set to `"CLOUD_FIRESTORE"`. Your Firestore location - * will be the same as the App Engine location specified. + * instead create a `gcp.appengine.Application` resource. + * Your Firestore location will be the same as the App Engine location specified. * * ## Example Usage * diff --git a/sdk/nodejs/iap/client.ts b/sdk/nodejs/iap/client.ts index 324ce8a366..1cd0aed387 100644 --- a/sdk/nodejs/iap/client.ts +++ b/sdk/nodejs/iap/client.ts @@ -101,7 +101,7 @@ export class Client extends pulumi.CustomResource { */ public readonly brand!: pulumi.Output; /** - * The OAuth2 ID of the client. + * Output only. Unique identifier of the OAuth client. */ public /*out*/ readonly clientId!: pulumi.Output; /** @@ -165,7 +165,7 @@ export interface ClientState { */ brand?: pulumi.Input; /** - * The OAuth2 ID of the client. + * Output only. Unique identifier of the OAuth client. */ clientId?: pulumi.Input; /** diff --git a/sdk/nodejs/netapp/volume.ts b/sdk/nodejs/netapp/volume.ts index 4f9e6cc483..ef2304479c 100644 --- a/sdk/nodejs/netapp/volume.ts +++ b/sdk/nodejs/netapp/volume.ts @@ -235,7 +235,7 @@ export class Volume extends pulumi.CustomResource { * Settings for volumes with SMB access. * Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`. */ - public readonly smbSettings!: pulumi.Output; + public readonly smbSettings!: pulumi.Output; /** * If enabled, a NFS volume will contain a read-only .snapshot directory which provides access to each of the volume's snapshots. Will enable "Previous Versions" support for SMB. */ diff --git a/sdk/nodejs/networkconnectivity/hub.ts b/sdk/nodejs/networkconnectivity/hub.ts index bf4f7dc558..a978562f15 100644 --- a/sdk/nodejs/networkconnectivity/hub.ts +++ b/sdk/nodejs/networkconnectivity/hub.ts @@ -9,18 +9,23 @@ import * as utilities from "../utilities"; /** * The NetworkConnectivity Hub resource * + * To get more information about Hub, see: + * + * * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + * * ## Example Usage * - * ### Basic_hub - * A basic test of a networkconnectivity hub + * ### Network Connectivity Hub Basic + * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const primary = new gcp.networkconnectivity.Hub("primary", { - * name: "hub", + * name: "basic", * description: "A sample hub", - * project: "my-project-name", * labels: { * "label-one": "value-one", * }, @@ -90,10 +95,9 @@ export class Hub extends pulumi.CustomResource { /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ - public /*out*/ readonly effectiveLabels!: pulumi.Output<{[key: string]: any}>; + public /*out*/ readonly effectiveLabels!: pulumi.Output<{[key: string]: string}>; /** * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ @@ -102,24 +106,26 @@ export class Hub extends pulumi.CustomResource { * Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` * * - * * - - - */ public readonly name!: pulumi.Output; /** - * The project for the resource + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. */ public readonly project!: pulumi.Output; /** - * The combination of labels configured directly on the resource and default labels configured on the provider. + * The combination of labels configured directly on the resource + * and default labels configured on the provider. */ - public /*out*/ readonly pulumiLabels!: pulumi.Output<{[key: string]: any}>; + public /*out*/ readonly pulumiLabels!: pulumi.Output<{[key: string]: string}>; /** * The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + * Structure is documented below. */ public /*out*/ readonly routingVpcs!: pulumi.Output; /** - * Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + * Output only. The current lifecycle state of this hub. */ public /*out*/ readonly state!: pulumi.Output; /** @@ -191,10 +197,9 @@ export interface HubState { /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ - effectiveLabels?: pulumi.Input<{[key: string]: any}>; + effectiveLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ @@ -203,24 +208,26 @@ export interface HubState { * Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` * * - * * - - - */ name?: pulumi.Input; /** - * The project for the resource + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** - * The combination of labels configured directly on the resource and default labels configured on the provider. + * The combination of labels configured directly on the resource + * and default labels configured on the provider. */ - pulumiLabels?: pulumi.Input<{[key: string]: any}>; + pulumiLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + * Structure is documented below. */ routingVpcs?: pulumi.Input[]>; /** - * Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + * Output only. The current lifecycle state of this hub. */ state?: pulumi.Input; /** @@ -243,7 +250,6 @@ export interface HubArgs { description?: pulumi.Input; /** * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - * * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ @@ -252,12 +258,12 @@ export interface HubArgs { * Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` * * - * * - - - */ name?: pulumi.Input; /** - * The project for the resource + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. */ project?: pulumi.Input; } diff --git a/sdk/nodejs/networkconnectivity/spoke.ts b/sdk/nodejs/networkconnectivity/spoke.ts index d14a788f96..d95db861fe 100644 --- a/sdk/nodejs/networkconnectivity/spoke.ts +++ b/sdk/nodejs/networkconnectivity/spoke.ts @@ -9,28 +9,35 @@ import * as utilities from "../utilities"; /** * The NetworkConnectivity Spoke resource * + * To get more information about Spoke, see: + * + * * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes) + * * How-to Guides + * * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + * * ## Example Usage * - * ### Linked_vpc_network + * ### Network Connectivity Spoke Linked Vpc Network Basic + * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const network = new gcp.compute.Network("network", { - * name: "network", + * name: "net", * autoCreateSubnetworks: false, * }); * const basicHub = new gcp.networkconnectivity.Hub("basic_hub", { - * name: "hub", + * name: "hub1", * description: "A sample hub", * labels: { * "label-two": "value-one", * }, * }); * const primary = new gcp.networkconnectivity.Spoke("primary", { - * name: "name", + * name: "spoke1", * location: "global", - * description: "A sample spoke with a linked routher appliance instance", + * description: "A sample spoke with a linked router appliance instance", * labels: { * "label-one": "value-one", * }, @@ -44,26 +51,27 @@ import * as utilities from "../utilities"; * }, * }); * ``` - * ### Router_appliance + * ### Network Connectivity Spoke Router Appliance Basic + * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const network = new gcp.compute.Network("network", { - * name: "network", + * name: "tf-test-network_2067", * autoCreateSubnetworks: false, * }); * const subnetwork = new gcp.compute.Subnetwork("subnetwork", { - * name: "subnet", + * name: "tf-test-subnet_40785", * ipCidrRange: "10.0.0.0/28", - * region: "us-west1", + * region: "us-central1", * network: network.selfLink, * }); * const instance = new gcp.compute.Instance("instance", { - * name: "instance", + * name: "tf-test-instance_79169", * machineType: "e2-medium", * canIpForward: true, - * zone: "us-west1-a", + * zone: "us-central1-a", * bootDisk: { * initializeParams: { * image: "projects/debian-cloud/global/images/debian-10-buster-v20210817", @@ -78,15 +86,15 @@ import * as utilities from "../utilities"; * }], * }); * const basicHub = new gcp.networkconnectivity.Hub("basic_hub", { - * name: "hub", + * name: "tf-test-hub_56529", * description: "A sample hub", * labels: { * "label-two": "value-one", * }, * }); * const primary = new gcp.networkconnectivity.Spoke("primary", { - * name: "name", - * location: "us-west1", + * name: "tf-test-name_75413", + * location: "us-central1", * description: "A sample spoke with a linked routher appliance instance", * labels: { * "label-one": "value-one", @@ -165,38 +173,42 @@ export class Spoke extends pulumi.CustomResource { /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ - public /*out*/ readonly effectiveLabels!: pulumi.Output<{[key: string]: any}>; + public /*out*/ readonly effectiveLabels!: pulumi.Output<{[key: string]: string}>; /** * Immutable. The URI of the hub that this spoke is attached to. */ public readonly hub!: pulumi.Output; /** - * Optional labels in key:value format. For more information about labels, see [Requirements for - * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - * `effectiveLabels` for all of the labels present on the resource. + * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ public readonly labels!: pulumi.Output<{[key: string]: string} | undefined>; /** - * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - * advertising the same prefixes. + * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + * Structure is documented below. */ public readonly linkedInterconnectAttachments!: pulumi.Output; /** * The URIs of linked Router appliance resources + * Structure is documented below. */ public readonly linkedRouterApplianceInstances!: pulumi.Output; /** * VPC network that is associated with the spoke. + * Structure is documented below. */ public readonly linkedVpcNetwork!: pulumi.Output; /** * The URIs of linked VPN tunnel resources + * Structure is documented below. */ public readonly linkedVpnTunnels!: pulumi.Output; /** * The location for the resource + * + * + * - - - */ public readonly location!: pulumi.Output; /** @@ -204,15 +216,17 @@ export class Spoke extends pulumi.CustomResource { */ public readonly name!: pulumi.Output; /** - * The project for the resource + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. */ public readonly project!: pulumi.Output; /** - * The combination of labels configured directly on the resource and default labels configured on the provider. + * The combination of labels configured directly on the resource + * and default labels configured on the provider. */ - public /*out*/ readonly pulumiLabels!: pulumi.Output<{[key: string]: any}>; + public /*out*/ readonly pulumiLabels!: pulumi.Output<{[key: string]: string}>; /** - * Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + * Output only. The current lifecycle state of this spoke. */ public /*out*/ readonly state!: pulumi.Output; /** @@ -300,38 +314,42 @@ export interface SpokeState { /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ - effectiveLabels?: pulumi.Input<{[key: string]: any}>; + effectiveLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Immutable. The URI of the hub that this spoke is attached to. */ hub?: pulumi.Input; /** - * Optional labels in key:value format. For more information about labels, see [Requirements for - * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - * `effectiveLabels` for all of the labels present on the resource. + * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - * advertising the same prefixes. + * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + * Structure is documented below. */ linkedInterconnectAttachments?: pulumi.Input; /** * The URIs of linked Router appliance resources + * Structure is documented below. */ linkedRouterApplianceInstances?: pulumi.Input; /** * VPC network that is associated with the spoke. + * Structure is documented below. */ linkedVpcNetwork?: pulumi.Input; /** * The URIs of linked VPN tunnel resources + * Structure is documented below. */ linkedVpnTunnels?: pulumi.Input; /** * The location for the resource + * + * + * - - - */ location?: pulumi.Input; /** @@ -339,15 +357,17 @@ export interface SpokeState { */ name?: pulumi.Input; /** - * The project for the resource + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** - * The combination of labels configured directly on the resource and default labels configured on the provider. + * The combination of labels configured directly on the resource + * and default labels configured on the provider. */ - pulumiLabels?: pulumi.Input<{[key: string]: any}>; + pulumiLabels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + * Output only. The current lifecycle state of this spoke. */ state?: pulumi.Input; /** @@ -373,32 +393,36 @@ export interface SpokeArgs { */ hub: pulumi.Input; /** - * Optional labels in key:value format. For more information about labels, see [Requirements for - * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - * non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - * `effectiveLabels` for all of the labels present on the resource. + * Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - * prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - * advertising the same prefixes. + * A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + * Structure is documented below. */ linkedInterconnectAttachments?: pulumi.Input; /** * The URIs of linked Router appliance resources + * Structure is documented below. */ linkedRouterApplianceInstances?: pulumi.Input; /** * VPC network that is associated with the spoke. + * Structure is documented below. */ linkedVpcNetwork?: pulumi.Input; /** * The URIs of linked VPN tunnel resources + * Structure is documented below. */ linkedVpnTunnels?: pulumi.Input; /** * The location for the resource + * + * + * - - - */ location: pulumi.Input; /** @@ -406,7 +430,8 @@ export interface SpokeArgs { */ name?: pulumi.Input; /** - * The project for the resource + * The ID of the project in which the resource belongs. + * If it is not provided, the provider project is used. */ project?: pulumi.Input; } diff --git a/sdk/nodejs/networksecurity/tlsInspectionPolicy.ts b/sdk/nodejs/networksecurity/tlsInspectionPolicy.ts index a0d7dadb47..a7d2d1e2cf 100644 --- a/sdk/nodejs/networksecurity/tlsInspectionPolicy.ts +++ b/sdk/nodejs/networksecurity/tlsInspectionPolicy.ts @@ -167,7 +167,7 @@ import * as utilities from "../utilities"; * const defaultCaPoolIamMember = new gcp.certificateauthority.CaPoolIamMember("default", { * caPool: _default.id, * role: "roles/privateca.certificateManager", - * member: pulumi.interpolate`serviceAccount:${nsSa.email}`, + * member: nsSa.member, * }); * const defaultTrustConfig = new gcp.certificatemanager.TrustConfig("default", { * name: "my-trust-config", diff --git a/sdk/nodejs/orgpolicy/policy.ts b/sdk/nodejs/orgpolicy/policy.ts index 6f2a047a30..3fb7dc7608 100644 --- a/sdk/nodejs/orgpolicy/policy.ts +++ b/sdk/nodejs/orgpolicy/policy.ts @@ -93,7 +93,7 @@ import * as utilities from "../utilities"; * { * condition: { * description: "A sample condition for the policy", - * expression: "resource.matchLabels('labelKeys/123', 'labelValues/345')", + * expression: "resource.matchTagId('tagKeys/123', 'tagValues/345')", * location: "sample-location.log", * title: "sample-condition", * }, @@ -116,7 +116,7 @@ import * as utilities from "../utilities"; * import * as gcp from "@pulumi/gcp"; * * const constraint = new gcp.orgpolicy.CustomConstraint("constraint", { - * name: "custom.disableGkeAutoUpgrade_40785", + * name: "custom.disableGkeAutoUpgrade_37559", * parent: "organizations/123456789", * displayName: "Disable GKE auto upgrade", * description: "Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.", diff --git a/sdk/nodejs/projects/getProjectService.ts b/sdk/nodejs/projects/getProjectService.ts index 8879859fff..3b63564ee4 100644 --- a/sdk/nodejs/projects/getProjectService.ts +++ b/sdk/nodejs/projects/getProjectService.ts @@ -60,6 +60,7 @@ export interface GetProjectServiceArgs { * A collection of values returned by getProjectService. */ export interface GetProjectServiceResult { + readonly checkIfServiceHasUsageOnDestroy: boolean; readonly disableDependentServices: boolean; readonly disableOnDestroy: boolean; /** diff --git a/sdk/nodejs/projects/service.ts b/sdk/nodejs/projects/service.ts index 0889cb0d4a..ab12dfc1d1 100644 --- a/sdk/nodejs/projects/service.ts +++ b/sdk/nodejs/projects/service.ts @@ -68,6 +68,13 @@ export class Service extends pulumi.CustomResource { return obj['__pulumiType'] === Service.__pulumiType; } + /** + * Beta + * If `true`, the usage of the service to be disabled will be checked and an error + * will be returned if the service to be disabled has usage in last 30 days. + * Defaults to `false`. + */ + public readonly checkIfServiceHasUsageOnDestroy!: pulumi.Output; /** * If `true`, services that are enabled * and which depend on this service should also be disabled when this service is @@ -99,6 +106,7 @@ export class Service extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as ServiceState | undefined; + resourceInputs["checkIfServiceHasUsageOnDestroy"] = state ? state.checkIfServiceHasUsageOnDestroy : undefined; resourceInputs["disableDependentServices"] = state ? state.disableDependentServices : undefined; resourceInputs["disableOnDestroy"] = state ? state.disableOnDestroy : undefined; resourceInputs["project"] = state ? state.project : undefined; @@ -108,6 +116,7 @@ export class Service extends pulumi.CustomResource { if ((!args || args.service === undefined) && !opts.urn) { throw new Error("Missing required property 'service'"); } + resourceInputs["checkIfServiceHasUsageOnDestroy"] = args ? args.checkIfServiceHasUsageOnDestroy : undefined; resourceInputs["disableDependentServices"] = args ? args.disableDependentServices : undefined; resourceInputs["disableOnDestroy"] = args ? args.disableOnDestroy : undefined; resourceInputs["project"] = args ? args.project : undefined; @@ -122,6 +131,13 @@ export class Service extends pulumi.CustomResource { * Input properties used for looking up and filtering Service resources. */ export interface ServiceState { + /** + * Beta + * If `true`, the usage of the service to be disabled will be checked and an error + * will be returned if the service to be disabled has usage in last 30 days. + * Defaults to `false`. + */ + checkIfServiceHasUsageOnDestroy?: pulumi.Input; /** * If `true`, services that are enabled * and which depend on this service should also be disabled when this service is @@ -145,6 +161,13 @@ export interface ServiceState { * The set of arguments for constructing a Service resource. */ export interface ServiceArgs { + /** + * Beta + * If `true`, the usage of the service to be disabled will be checked and an error + * will be returned if the service to be disabled has usage in last 30 days. + * Defaults to `false`. + */ + checkIfServiceHasUsageOnDestroy?: pulumi.Input; /** * If `true`, services that are enabled * and which depend on this service should also be disabled when this service is diff --git a/sdk/nodejs/projects/serviceIdentity.ts b/sdk/nodejs/projects/serviceIdentity.ts index 1299bb4576..7f0b60e31f 100644 --- a/sdk/nodejs/projects/serviceIdentity.ts +++ b/sdk/nodejs/projects/serviceIdentity.ts @@ -34,7 +34,7 @@ import * as utilities from "../utilities"; * const hcSaBqJobuser = new gcp.projects.IAMMember("hc_sa_bq_jobuser", { * project: project.then(project => project.projectId), * role: "roles/bigquery.jobUser", - * member: pulumi.interpolate`serviceAccount:${hcSa.email}`, + * member: hcSa.member, * }); * ``` * @@ -74,6 +74,10 @@ export class ServiceIdentity extends pulumi.CustomResource { * The email address of the Google managed service account. */ public /*out*/ readonly email!: pulumi.Output; + /** + * The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + */ + public /*out*/ readonly member!: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. @@ -100,6 +104,7 @@ export class ServiceIdentity extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as ServiceIdentityState | undefined; resourceInputs["email"] = state ? state.email : undefined; + resourceInputs["member"] = state ? state.member : undefined; resourceInputs["project"] = state ? state.project : undefined; resourceInputs["service"] = state ? state.service : undefined; } else { @@ -110,6 +115,7 @@ export class ServiceIdentity extends pulumi.CustomResource { resourceInputs["project"] = args ? args.project : undefined; resourceInputs["service"] = args ? args.service : undefined; resourceInputs["email"] = undefined /*out*/; + resourceInputs["member"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(ServiceIdentity.__pulumiType, name, resourceInputs, opts); @@ -124,6 +130,10 @@ export interface ServiceIdentityState { * The email address of the Google managed service account. */ email?: pulumi.Input; + /** + * The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + */ + member?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. diff --git a/sdk/nodejs/pubsub/subscription.ts b/sdk/nodejs/pubsub/subscription.ts index 8ba03af712..1ec6008621 100644 --- a/sdk/nodejs/pubsub/subscription.ts +++ b/sdk/nodejs/pubsub/subscription.ts @@ -254,7 +254,7 @@ import * as utilities from "../utilities"; * cloudStorageConfig: { * bucket: example.name, * filenamePrefix: "pre-", - * filenameSuffix: "-_79169", + * filenameSuffix: "-_91980", * filenameDatetimeFormat: "YYYY-MM-DD/hh_mm_ssZ", * maxBytes: 1000, * maxDuration: "300s", @@ -290,7 +290,7 @@ import * as utilities from "../utilities"; * cloudStorageConfig: { * bucket: example.name, * filenamePrefix: "pre-", - * filenameSuffix: "-_56529", + * filenameSuffix: "-_37118", * filenameDatetimeFormat: "YYYY-MM-DD/hh_mm_ssZ", * maxBytes: 1000, * maxDuration: "300s", @@ -332,7 +332,7 @@ import * as utilities from "../utilities"; * cloudStorageConfig: { * bucket: example.name, * filenamePrefix: "pre-", - * filenameSuffix: "-_75413", + * filenameSuffix: "-_80332", * filenameDatetimeFormat: "YYYY-MM-DD/hh_mm_ssZ", * maxBytes: 1000, * maxDuration: "300s", diff --git a/sdk/nodejs/securesourcemanager/instance.ts b/sdk/nodejs/securesourcemanager/instance.ts index a70e337bb5..c7558ddab0 100644 --- a/sdk/nodejs/securesourcemanager/instance.ts +++ b/sdk/nodejs/securesourcemanager/instance.ts @@ -115,7 +115,7 @@ import * as utilities from "../utilities"; * members: [project.then(project => `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`)], * }); * // ca pool IAM permissions can take time to propagate - * const wait60Seconds = new time.index.Sleep("wait_60_seconds", {createDuration: "60s"}, { + * const wait120Seconds = new time.index.Sleep("wait_120_seconds", {createDuration: "120s"}, { * dependsOn: [caPoolBinding], * }); * const _default = new gcp.securesourcemanager.Instance("default", { @@ -128,10 +128,304 @@ import * as utilities from "../utilities"; * }, { * dependsOn: [ * rootCa, - * wait60Seconds, + * wait120Seconds, * ], * }); * ``` + * ### Secure Source Manager Instance Private Psc Backend + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * import * as time from "@pulumi/time"; + * + * const project = gcp.organizations.getProject({}); + * const caPool = new gcp.certificateauthority.CaPool("ca_pool", { + * name: "ca-pool", + * location: "us-central1", + * tier: "ENTERPRISE", + * publishingOptions: { + * publishCaCert: true, + * publishCrl: true, + * }, + * }); + * const rootCa = new gcp.certificateauthority.Authority("root_ca", { + * pool: caPool.name, + * certificateAuthorityId: "root-ca", + * location: "us-central1", + * config: { + * subjectConfig: { + * subject: { + * organization: "google", + * commonName: "my-certificate-authority", + * }, + * }, + * x509Config: { + * caOptions: { + * isCa: true, + * }, + * keyUsage: { + * baseKeyUsage: { + * certSign: true, + * crlSign: true, + * }, + * extendedKeyUsage: { + * serverAuth: true, + * }, + * }, + * }, + * }, + * keySpec: { + * algorithm: "RSA_PKCS1_4096_SHA256", + * }, + * deletionProtection: false, + * ignoreActiveCertificatesOnDeletion: true, + * skipGracePeriod: true, + * }); + * const caPoolBinding = new gcp.certificateauthority.CaPoolIamBinding("ca_pool_binding", { + * caPool: caPool.id, + * role: "roles/privateca.certificateRequester", + * members: [project.then(project => `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`)], + * }); + * // ca pool IAM permissions can take time to propagate + * const wait120Seconds = new time.index.Sleep("wait_120_seconds", {createDuration: "120s"}, { + * dependsOn: [caPoolBinding], + * }); + * // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + * const _default = new gcp.securesourcemanager.Instance("default", { + * instanceId: "my-instance", + * location: "us-central1", + * privateConfig: { + * isPrivate: true, + * caPool: caPool.id, + * }, + * }, { + * dependsOn: [ + * rootCa, + * wait120Seconds, + * ], + * }); + * // Connect SSM private instance with L4 proxy ILB. + * const network = new gcp.compute.Network("network", { + * name: "my-network", + * autoCreateSubnetworks: false, + * }); + * const subnet = new gcp.compute.Subnetwork("subnet", { + * name: "my-subnet", + * region: "us-central1", + * network: network.id, + * ipCidrRange: "10.0.1.0/24", + * privateIpGoogleAccess: true, + * }); + * const pscNeg = new gcp.compute.RegionNetworkEndpointGroup("psc_neg", { + * name: "my-neg", + * region: "us-central1", + * networkEndpointType: "PRIVATE_SERVICE_CONNECT", + * pscTargetService: _default.privateConfig.apply(privateConfig => privateConfig?.httpServiceAttachment), + * network: network.id, + * subnetwork: subnet.id, + * }); + * const backendService = new gcp.compute.RegionBackendService("backend_service", { + * name: "my-backend-service", + * region: "us-central1", + * protocol: "TCP", + * loadBalancingScheme: "INTERNAL_MANAGED", + * backends: [{ + * group: pscNeg.id, + * balancingMode: "UTILIZATION", + * capacityScaler: 1, + * }], + * }); + * const proxySubnet = new gcp.compute.Subnetwork("proxy_subnet", { + * name: "my-proxy-subnet", + * region: "us-central1", + * network: network.id, + * ipCidrRange: "10.0.2.0/24", + * purpose: "REGIONAL_MANAGED_PROXY", + * role: "ACTIVE", + * }); + * const targetProxy = new gcp.compute.RegionTargetTcpProxy("target_proxy", { + * name: "my-target-proxy", + * region: "us-central1", + * backendService: backendService.id, + * }); + * const fwRuleTargetProxy = new gcp.compute.ForwardingRule("fw_rule_target_proxy", { + * name: "fw-rule-target-proxy", + * region: "us-central1", + * loadBalancingScheme: "INTERNAL_MANAGED", + * ipProtocol: "TCP", + * portRange: "443", + * target: targetProxy.id, + * network: network.id, + * subnetwork: subnet.id, + * networkTier: "PREMIUM", + * }, { + * dependsOn: [proxySubnet], + * }); + * const privateZone = new gcp.dns.ManagedZone("private_zone", { + * name: "my-dns-zone", + * dnsName: "p.sourcemanager.dev.", + * visibility: "private", + * privateVisibilityConfig: { + * networks: [{ + * networkUrl: network.id, + * }], + * }, + * }); + * const ssmInstanceHtmlRecord = new gcp.dns.RecordSet("ssm_instance_html_record", { + * name: _default.hostConfigs.apply(hostConfigs => `${hostConfigs[0].html}.`), + * type: "A", + * ttl: 300, + * managedZone: privateZone.name, + * rrdatas: [fwRuleTargetProxy.ipAddress], + * }); + * const ssmInstanceApiRecord = new gcp.dns.RecordSet("ssm_instance_api_record", { + * name: _default.hostConfigs.apply(hostConfigs => `${hostConfigs[0].api}.`), + * type: "A", + * ttl: 300, + * managedZone: privateZone.name, + * rrdatas: [fwRuleTargetProxy.ipAddress], + * }); + * const ssmInstanceGitRecord = new gcp.dns.RecordSet("ssm_instance_git_record", { + * name: _default.hostConfigs.apply(hostConfigs => `${hostConfigs[0].gitHttp}.`), + * type: "A", + * ttl: 300, + * managedZone: privateZone.name, + * rrdatas: [fwRuleTargetProxy.ipAddress], + * }); + * ``` + * ### Secure Source Manager Instance Private Psc Endpoint + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * import * as time from "@pulumi/time"; + * + * const project = gcp.organizations.getProject({}); + * const caPool = new gcp.certificateauthority.CaPool("ca_pool", { + * name: "ca-pool", + * location: "us-central1", + * tier: "ENTERPRISE", + * publishingOptions: { + * publishCaCert: true, + * publishCrl: true, + * }, + * }); + * const rootCa = new gcp.certificateauthority.Authority("root_ca", { + * pool: caPool.name, + * certificateAuthorityId: "root-ca", + * location: "us-central1", + * config: { + * subjectConfig: { + * subject: { + * organization: "google", + * commonName: "my-certificate-authority", + * }, + * }, + * x509Config: { + * caOptions: { + * isCa: true, + * }, + * keyUsage: { + * baseKeyUsage: { + * certSign: true, + * crlSign: true, + * }, + * extendedKeyUsage: { + * serverAuth: true, + * }, + * }, + * }, + * }, + * keySpec: { + * algorithm: "RSA_PKCS1_4096_SHA256", + * }, + * deletionProtection: false, + * ignoreActiveCertificatesOnDeletion: true, + * skipGracePeriod: true, + * }); + * const caPoolBinding = new gcp.certificateauthority.CaPoolIamBinding("ca_pool_binding", { + * caPool: caPool.id, + * role: "roles/privateca.certificateRequester", + * members: [project.then(project => `serviceAccount:service-${project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com`)], + * }); + * // ca pool IAM permissions can take time to propagate + * const wait120Seconds = new time.index.Sleep("wait_120_seconds", {createDuration: "120s"}, { + * dependsOn: [caPoolBinding], + * }); + * // See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + * const _default = new gcp.securesourcemanager.Instance("default", { + * instanceId: "my-instance", + * location: "us-central1", + * privateConfig: { + * isPrivate: true, + * caPool: caPool.id, + * }, + * }, { + * dependsOn: [ + * rootCa, + * wait120Seconds, + * ], + * }); + * // Connect SSM private instance with endpoint. + * const network = new gcp.compute.Network("network", { + * name: "my-network", + * autoCreateSubnetworks: false, + * }); + * const subnet = new gcp.compute.Subnetwork("subnet", { + * name: "my-subnet", + * region: "us-central1", + * network: network.id, + * ipCidrRange: "10.0.60.0/24", + * privateIpGoogleAccess: true, + * }); + * const address = new gcp.compute.Address("address", { + * name: "my-address", + * region: "us-central1", + * address: "10.0.60.100", + * addressType: "INTERNAL", + * subnetwork: subnet.id, + * }); + * const fwRuleServiceAttachment = new gcp.compute.ForwardingRule("fw_rule_service_attachment", { + * name: "fw-rule-service-attachment", + * region: "us-central1", + * loadBalancingScheme: "", + * ipAddress: address.id, + * network: network.id, + * target: _default.privateConfig.apply(privateConfig => privateConfig?.httpServiceAttachment), + * }); + * const privateZone = new gcp.dns.ManagedZone("private_zone", { + * name: "my-dns-zone", + * dnsName: "p.sourcemanager.dev.", + * visibility: "private", + * privateVisibilityConfig: { + * networks: [{ + * networkUrl: network.id, + * }], + * }, + * }); + * const ssmInstanceHtmlRecord = new gcp.dns.RecordSet("ssm_instance_html_record", { + * name: _default.hostConfigs.apply(hostConfigs => `${hostConfigs[0].html}.`), + * type: "A", + * ttl: 300, + * managedZone: privateZone.name, + * rrdatas: [fwRuleServiceAttachment.ipAddress], + * }); + * const ssmInstanceApiRecord = new gcp.dns.RecordSet("ssm_instance_api_record", { + * name: _default.hostConfigs.apply(hostConfigs => `${hostConfigs[0].api}.`), + * type: "A", + * ttl: 300, + * managedZone: privateZone.name, + * rrdatas: [fwRuleServiceAttachment.ipAddress], + * }); + * const ssmInstanceGitRecord = new gcp.dns.RecordSet("ssm_instance_git_record", { + * name: _default.hostConfigs.apply(hostConfigs => `${hostConfigs[0].gitHttp}.`), + * type: "A", + * ttl: 300, + * managedZone: privateZone.name, + * rrdatas: [fwRuleServiceAttachment.ipAddress], + * }); + * ``` * * ## Import * diff --git a/sdk/nodejs/securitycenter/index.ts b/sdk/nodejs/securitycenter/index.ts index edddcc045f..e89e69a747 100644 --- a/sdk/nodejs/securitycenter/index.ts +++ b/sdk/nodejs/securitycenter/index.ts @@ -100,6 +100,11 @@ export type SourceIamPolicy = import("./sourceIamPolicy").SourceIamPolicy; export const SourceIamPolicy: typeof import("./sourceIamPolicy").SourceIamPolicy = null as any; utilities.lazyLoad(exports, ["SourceIamPolicy"], () => require("./sourceIamPolicy")); +export { V2OrganizationMuteConfigArgs, V2OrganizationMuteConfigState } from "./v2organizationMuteConfig"; +export type V2OrganizationMuteConfig = import("./v2organizationMuteConfig").V2OrganizationMuteConfig; +export const V2OrganizationMuteConfig: typeof import("./v2organizationMuteConfig").V2OrganizationMuteConfig = null as any; +utilities.lazyLoad(exports, ["V2OrganizationMuteConfig"], () => require("./v2organizationMuteConfig")); + export { V2OrganizationNotificationConfigArgs, V2OrganizationNotificationConfigState } from "./v2organizationNotificationConfig"; export type V2OrganizationNotificationConfig = import("./v2organizationNotificationConfig").V2OrganizationNotificationConfig; export const V2OrganizationNotificationConfig: typeof import("./v2organizationNotificationConfig").V2OrganizationNotificationConfig = null as any; @@ -146,6 +151,8 @@ const _module = { return new SourceIamMember(name, undefined, { urn }) case "gcp:securitycenter/sourceIamPolicy:SourceIamPolicy": return new SourceIamPolicy(name, undefined, { urn }) + case "gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig": + return new V2OrganizationMuteConfig(name, undefined, { urn }) case "gcp:securitycenter/v2OrganizationNotificationConfig:V2OrganizationNotificationConfig": return new V2OrganizationNotificationConfig(name, undefined, { urn }) default: @@ -171,4 +178,5 @@ pulumi.runtime.registerResourceModule("gcp", "securitycenter/source", _module) pulumi.runtime.registerResourceModule("gcp", "securitycenter/sourceIamBinding", _module) pulumi.runtime.registerResourceModule("gcp", "securitycenter/sourceIamMember", _module) pulumi.runtime.registerResourceModule("gcp", "securitycenter/sourceIamPolicy", _module) +pulumi.runtime.registerResourceModule("gcp", "securitycenter/v2OrganizationMuteConfig", _module) pulumi.runtime.registerResourceModule("gcp", "securitycenter/v2OrganizationNotificationConfig", _module) diff --git a/sdk/nodejs/securitycenter/v2organizationMuteConfig.ts b/sdk/nodejs/securitycenter/v2organizationMuteConfig.ts new file mode 100644 index 0000000000..e16a2d009b --- /dev/null +++ b/sdk/nodejs/securitycenter/v2organizationMuteConfig.ts @@ -0,0 +1,289 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Mute Findings is a volume management feature in Security Command Center + * that lets you manually or programmatically hide irrelevant findings, + * and create filters to automatically silence existing and future + * findings based on criteria you specify. + * + * To get more information about OrganizationMuteConfig, see: + * + * * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.muteConfigs) + * + * ## Example Usage + * + * ### Scc V2 Organization Mute Config Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as gcp from "@pulumi/gcp"; + * + * const _default = new gcp.securitycenter.V2OrganizationMuteConfig("default", { + * muteConfigId: "my-config", + * organization: "123456789", + * location: "global", + * description: "My custom Cloud Security Command Center Finding Organization mute Configuration", + * filter: "severity = \"HIGH\"", + * type: "STATIC", + * }); + * ``` + * + * ## Import + * + * OrganizationMuteConfig can be imported using any of these accepted formats: + * + * * `organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}` + * + * * `{{organization}}/{{location}}/{{mute_config_id}}` + * + * When using the `pulumi import` command, OrganizationMuteConfig can be imported using one of the formats above. For example: + * + * ```sh + * $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}} + * ``` + * + * ```sh + * $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default {{organization}}/{{location}}/{{mute_config_id}} + * ``` + */ +export class V2OrganizationMuteConfig extends pulumi.CustomResource { + /** + * Get an existing V2OrganizationMuteConfig resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: V2OrganizationMuteConfigState, opts?: pulumi.CustomResourceOptions): V2OrganizationMuteConfig { + return new V2OrganizationMuteConfig(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig'; + + /** + * Returns true if the given object is an instance of V2OrganizationMuteConfig. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is V2OrganizationMuteConfig { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === V2OrganizationMuteConfig.__pulumiType; + } + + /** + * The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + */ + public /*out*/ readonly createTime!: pulumi.Output; + /** + * A description of the mute config. + */ + public readonly description!: pulumi.Output; + /** + * An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + */ + public readonly filter!: pulumi.Output; + /** + * location Id is provided by organization. If not provided, Use global as default. + */ + public readonly location!: pulumi.Output; + /** + * Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + */ + public /*out*/ readonly mostRecentEditor!: pulumi.Output; + /** + * Unique identifier provided by the client within the parent scope. + * + * + * - - - + */ + public readonly muteConfigId!: pulumi.Output; + /** + * Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * The organization whose Cloud Security Command Center the Mute + * Config lives in. + */ + public readonly organization!: pulumi.Output; + /** + * The type of the mute config. + */ + public readonly type!: pulumi.Output; + /** + * Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + */ + public /*out*/ readonly updateTime!: pulumi.Output; + + /** + * Create a V2OrganizationMuteConfig resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: V2OrganizationMuteConfigArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: V2OrganizationMuteConfigArgs | V2OrganizationMuteConfigState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as V2OrganizationMuteConfigState | undefined; + resourceInputs["createTime"] = state ? state.createTime : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["filter"] = state ? state.filter : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["mostRecentEditor"] = state ? state.mostRecentEditor : undefined; + resourceInputs["muteConfigId"] = state ? state.muteConfigId : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["organization"] = state ? state.organization : undefined; + resourceInputs["type"] = state ? state.type : undefined; + resourceInputs["updateTime"] = state ? state.updateTime : undefined; + } else { + const args = argsOrState as V2OrganizationMuteConfigArgs | undefined; + if ((!args || args.filter === undefined) && !opts.urn) { + throw new Error("Missing required property 'filter'"); + } + if ((!args || args.muteConfigId === undefined) && !opts.urn) { + throw new Error("Missing required property 'muteConfigId'"); + } + if ((!args || args.organization === undefined) && !opts.urn) { + throw new Error("Missing required property 'organization'"); + } + if ((!args || args.type === undefined) && !opts.urn) { + throw new Error("Missing required property 'type'"); + } + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["filter"] = args ? args.filter : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["muteConfigId"] = args ? args.muteConfigId : undefined; + resourceInputs["organization"] = args ? args.organization : undefined; + resourceInputs["type"] = args ? args.type : undefined; + resourceInputs["createTime"] = undefined /*out*/; + resourceInputs["mostRecentEditor"] = undefined /*out*/; + resourceInputs["name"] = undefined /*out*/; + resourceInputs["updateTime"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(V2OrganizationMuteConfig.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering V2OrganizationMuteConfig resources. + */ +export interface V2OrganizationMuteConfigState { + /** + * The time at which the mute config was created. This field is set by + * the server and will be ignored if provided on config creation. + */ + createTime?: pulumi.Input; + /** + * A description of the mute config. + */ + description?: pulumi.Input; + /** + * An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + */ + filter?: pulumi.Input; + /** + * location Id is provided by organization. If not provided, Use global as default. + */ + location?: pulumi.Input; + /** + * Email address of the user who last edited the mute config. This + * field is set by the server and will be ignored if provided on + * config creation or update. + */ + mostRecentEditor?: pulumi.Input; + /** + * Unique identifier provided by the client within the parent scope. + * + * + * - - - + */ + muteConfigId?: pulumi.Input; + /** + * Name of the mute config. Its format is + * organizations/{organization}/locations/global/muteConfigs/{configId}, + * folders/{folder}/locations/global/muteConfigs/{configId}, + * or projects/{project}/locations/global/muteConfigs/{configId} + */ + name?: pulumi.Input; + /** + * The organization whose Cloud Security Command Center the Mute + * Config lives in. + */ + organization?: pulumi.Input; + /** + * The type of the mute config. + */ + type?: pulumi.Input; + /** + * Output only. The most recent time at which the mute config was + * updated. This field is set by the server and will be ignored if + * provided on config creation or update. + */ + updateTime?: pulumi.Input; +} + +/** + * The set of arguments for constructing a V2OrganizationMuteConfig resource. + */ +export interface V2OrganizationMuteConfigArgs { + /** + * A description of the mute config. + */ + description?: pulumi.Input; + /** + * An expression that defines the filter to apply across create/update + * events of findings. While creating a filter string, be mindful of + * the scope in which the mute configuration is being created. E.g., + * If a filter contains project = X but is created under the + * project = Y scope, it might not match any findings. + */ + filter: pulumi.Input; + /** + * location Id is provided by organization. If not provided, Use global as default. + */ + location?: pulumi.Input; + /** + * Unique identifier provided by the client within the parent scope. + * + * + * - - - + */ + muteConfigId: pulumi.Input; + /** + * The organization whose Cloud Security Command Center the Mute + * Config lives in. + */ + organization: pulumi.Input; + /** + * The type of the mute config. + */ + type: pulumi.Input; +} diff --git a/sdk/nodejs/sql/databaseInstance.ts b/sdk/nodejs/sql/databaseInstance.ts index 7336d432e4..21d424fdf2 100644 --- a/sdk/nodejs/sql/databaseInstance.ts +++ b/sdk/nodejs/sql/databaseInstance.ts @@ -67,7 +67,7 @@ import * as utilities from "../utilities"; * tier: "db-f1-micro", * ipConfiguration: { * ipv4Enabled: false, - * privateNetwork: privateNetwork.id, + * privateNetwork: privateNetwork.selfLink, * enablePrivatePathForGoogleCloudServices: true, * }, * }, diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 2ca38cf171..1a78fec439 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -73,6 +73,8 @@ "apigee/environmentIamBinding.ts", "apigee/environmentIamMember.ts", "apigee/environmentIamPolicy.ts", + "apigee/environmentKeyvaluemaps.ts", + "apigee/environmentKeyvaluemapsEntries.ts", "apigee/flowhook.ts", "apigee/getEnvironmentIamPolicy.ts", "apigee/index.ts", @@ -498,12 +500,14 @@ "compute/regionTargetTcpProxy.ts", "compute/regionUrlMap.ts", "compute/reservation.ts", + "compute/resizeRequest.ts", "compute/resourcePolicy.ts", "compute/route.ts", "compute/router.ts", "compute/routerInterface.ts", "compute/routerNat.ts", "compute/routerPeer.ts", + "compute/routerRoutePolicy.ts", "compute/routerStatus.ts", "compute/securityPolicy.ts", "compute/securityPolicyRule.ts", @@ -1208,6 +1212,7 @@ "securitycenter/sourceIamBinding.ts", "securitycenter/sourceIamMember.ts", "securitycenter/sourceIamPolicy.ts", + "securitycenter/v2organizationMuteConfig.ts", "securitycenter/v2organizationNotificationConfig.ts", "securityposture/index.ts", "securityposture/posture.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 76e11f7798..30814f9d21 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -2174,6 +2174,41 @@ export namespace alloydb { cidrRange?: pulumi.Input; } + export interface InstanceObservabilityConfig { + /** + * Observability feature status for an instance. + */ + enabled?: pulumi.Input; + /** + * Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + */ + maxQueryStringLength?: pulumi.Input; + /** + * Preserve comments in the query string. + */ + preserveComments?: pulumi.Input; + /** + * 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. + */ + queryPlansPerMinute?: pulumi.Input; + /** + * Record application tags for an instance. This flag is turned "on" by default. + */ + recordApplicationTags?: pulumi.Input; + /** + * Track actively running queries. If not set, default value is "off". + */ + trackActiveQueries?: pulumi.Input; + /** + * Record wait event types during query execution for an instance. + */ + trackWaitEventTypes?: pulumi.Input; + /** + * Record wait events during query execution for an instance. + */ + trackWaitEvents?: pulumi.Input; + } + export interface InstancePscInstanceConfig { /** * List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance. @@ -4744,6 +4779,14 @@ export namespace biglake { } export namespace bigquery { + export interface AppProfileDataBoostIsolationReadOnly { + /** + * The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + */ + computeBillingOwner: pulumi.Input; + } + export interface AppProfileSingleClusterRouting { /** * If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile. @@ -12067,8 +12110,8 @@ export namespace cloudrun { export interface DomainMappingMetadata { /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -12239,8 +12282,8 @@ export namespace cloudrun { export interface ServiceMetadata { /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -12431,8 +12474,8 @@ export namespace cloudrun { export interface ServiceTemplateMetadata { /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -12501,7 +12544,8 @@ export namespace cloudrun { export interface ServiceTemplateSpec { /** * ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. */ containerConcurrency?: pulumi.Input; /** @@ -13650,6 +13694,7 @@ export namespace cloudrunv2 { labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. */ maxInstanceRequestConcurrency?: pulumi.Input; /** @@ -15918,18 +15963,48 @@ export namespace compute { } export interface BackendServiceSecuritySettings { + /** + * The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * + * The `awsV4Authentication` block supports: + */ + awsV4Authentication?: pulumi.Input; /** * ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect * configuration unless it is attached to a backend service resource. */ - clientTlsPolicy: pulumi.Input; + clientTlsPolicy?: pulumi.Input; /** * A list of alternate names to verify the subject identity in the certificate. * If specified, the client will verify that the server certificate's subject * alt name matches one of the specified values. */ - subjectAltNames: pulumi.Input[]>; + subjectAltNames?: pulumi.Input[]>; + } + + export interface BackendServiceSecuritySettingsAwsV4Authentication { + /** + * The access key used for s3 bucket authentication. + * Required 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. + */ + accessKey?: pulumi.Input; + /** + * The identifier of an access key used for s3 bucket authentication. + */ + accessKeyId?: pulumi.Input; + /** + * The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + */ + accessKeyVersion?: pulumi.Input; + /** + * 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + */ + originRegion?: pulumi.Input; } export interface DiskAsyncPrimaryDisk { @@ -16793,6 +16868,13 @@ export namespace compute { * will inherit the size of its base image. */ size?: pulumi.Input; + /** + * The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + */ + storagePool?: pulumi.Input; /** * The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. */ @@ -16916,6 +16998,10 @@ export namespace compute { * The size of the image in gigabytes. */ size?: pulumi.Input; + /** + * The URL of the storage pool in which the new disk is created + */ + storagePool?: pulumi.Input; /** * The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. */ @@ -17345,6 +17431,10 @@ export namespace compute { * The size of the image in gigabytes. */ size?: pulumi.Input; + /** + * The URL of the storage pool in which the new disk is created + */ + storagePool?: pulumi.Input; /** * The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. */ @@ -23678,6 +23768,333 @@ export namespace compute { interface?: pulumi.Input; } + export interface ResizeRequestRequestedRunDuration { + /** + * 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. + */ + nanos?: pulumi.Input; + /** + * 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 + */ + seconds: pulumi.Input; + } + + export interface ResizeRequestStatus { + /** + * (Output) + * [Output only] Fatal 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. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + /** + * (Output) + * [Output only] Information 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. + * Structure is documented below. + */ + lastAttempts?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusError { + /** + * (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusErrorError { + /** + * (Output) + * [Output Only] The error type identifier for this error. + */ + code?: pulumi.Input; + /** + * (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + */ + errorDetails?: pulumi.Input[]>; + /** + * (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + */ + location?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface ResizeRequestStatusErrorErrorErrorDetail { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + errorInfos?: pulumi.Input[]>; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + helps?: pulumi.Input[]>; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + localizedMessages?: pulumi.Input[]>; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + quotaInfos?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + */ + domain?: pulumi.Input; + /** + * (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + */ + metadatas?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + */ + reason?: pulumi.Input; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailHelp { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + links?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * (Output) + * The URL of the link. + */ + url?: pulumi.Input; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit?: pulumi.Input; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit?: pulumi.Input; + /** + * (Output) + * The name of the quota limit. + */ + limitName?: pulumi.Input; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName?: pulumi.Input; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus?: pulumi.Input; + } + + export interface ResizeRequestStatusLastAttempt { + /** + * (Output) + * [Output only] Fatal 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. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusLastAttemptError { + /** + * (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusLastAttemptErrorError { + /** + * (Output) + * [Output Only] The error type identifier for this error. + */ + code?: pulumi.Input; + /** + * (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + */ + errorDetails?: pulumi.Input[]>; + /** + * (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + */ + location?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetail { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + errorInfos?: pulumi.Input[]>; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + helps?: pulumi.Input[]>; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + localizedMessages?: pulumi.Input[]>; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + quotaInfos?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + */ + domain?: pulumi.Input; + /** + * (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + */ + metadatas?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + */ + reason?: pulumi.Input; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + links?: pulumi.Input[]>; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description?: pulumi.Input; + /** + * (Output) + * The URL of the link. + */ + url?: pulumi.Input; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale?: pulumi.Input; + /** + * (Output) + * The localized error message in the above locale. + */ + message?: pulumi.Input; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit?: pulumi.Input; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit?: pulumi.Input; + /** + * (Output) + * The name of the quota limit. + */ + limitName?: pulumi.Input; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName?: pulumi.Input; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus?: pulumi.Input; + } + export interface ResourcePolicyDiskConsistencyGroupPolicy { /** * Enable disk consistency on the resource policy. @@ -24072,6 +24489,14 @@ export namespace compute { sessionInitializationMode: pulumi.Input; } + export interface RouterPeerCustomLearnedIpRange { + /** + * The IP range to advertise. The value must be a + * CIDR-formatted string. + */ + range: pulumi.Input; + } + export interface RouterPeerMd5AuthenticationKey { /** * Value of the key. @@ -24088,6 +24513,66 @@ export namespace compute { name: pulumi.Input; } + export interface RouterRoutePolicyTerm { + /** + * 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + */ + actions?: pulumi.Input[]>; + /** + * CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + */ + match?: pulumi.Input; + /** + * The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + */ + priority: pulumi.Input; + } + + export interface RouterRoutePolicyTermAction { + /** + * Description of the expression + */ + description?: pulumi.Input; + /** + * Textual representation of an expression in Common Expression + * Language syntax. + */ + expression: pulumi.Input; + /** + * String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * - - - + */ + location?: pulumi.Input; + /** + * Title for the expression, i.e. a short string describing its + * purpose. + */ + title?: pulumi.Input; + } + + export interface RouterRoutePolicyTermMatch { + /** + * Description of the expression + */ + description?: pulumi.Input; + /** + * Textual representation of an expression in Common Expression Language syntax. + */ + expression: pulumi.Input; + /** + * String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + */ + location?: pulumi.Input; + /** + * Title for the expression, i.e. a short string describing its purpose. + */ + title?: pulumi.Input; + } + export interface SecurityPolicyAdaptiveProtectionConfig { /** * Configuration for [Automatically deploy Adaptive Protection suggested rules](https://cloud.google.com/armor/docs/adaptive-protection-auto-deploy?hl=en). Structure is documented below. @@ -27820,12 +28305,28 @@ export namespace container { * Defaults to disabled; set `disabled = false` to enable. */ networkPolicyConfig?: pulumi.Input; + /** + * . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * + * This example `addonsConfig` disables two addons: + */ + rayOperatorConfigs?: pulumi.Input[]>; /** * . * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. * It is disabled by default for Standard clusters. Set `enabled = true` to enable. - * - * This example `addonsConfig` disables two addons: */ statefulHaConfig?: pulumi.Input; } @@ -27909,6 +28410,26 @@ export namespace container { disabled: pulumi.Input; } + export interface ClusterAddonsConfigRayOperatorConfig { + enabled: pulumi.Input; + /** + * The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + */ + rayClusterLoggingConfig?: pulumi.Input; + /** + * The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + */ + rayClusterMonitoringConfig?: pulumi.Input; + } + + export interface ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + enabled: pulumi.Input; + } + + export interface ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + enabled: pulumi.Input; + } + export interface ClusterAddonsConfigStatefulHaConfig { enabled: pulumi.Input; } @@ -30409,7 +30930,10 @@ export namespace container { */ preemptible?: pulumi.Input; /** - * The reservation affinity configuration for the node pool. + * The configuration of the desired reservation which instances could take capacity from. + * Structure is documented below. + * + * The `autoscaling` block supports (either total or per zone limits are required): */ reservationAffinity?: pulumi.Input; /** @@ -30650,15 +31174,21 @@ export namespace container { export interface NodePoolNodeConfigReservationAffinity { /** - * Corresponds to the type of reservation consumption. + * The type of reservation consumption + * Accepted values are: + * + * * `"UNSPECIFIED"`: Default value. This should not be used. + * * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * * `"ANY_RESERVATION"`: Consume any reservation available. + * * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. */ consumeReservationType: pulumi.Input; /** - * The label key of a reservation resource. + * 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. */ key?: pulumi.Input; /** - * The label values of the reservation resource. + * 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" */ values?: pulumi.Input[]>; } @@ -35672,6 +36202,11 @@ export namespace dataloss { * Structure is documented below. */ cloudSqlTarget?: pulumi.Input; + /** + * Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + */ + cloudStorageTarget?: pulumi.Input; /** * 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. */ @@ -35741,7 +36276,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetBigQueryTargetConditions { /** - * A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * 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. */ createdAfter?: pulumi.Input; /** @@ -35824,7 +36359,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes { /** - * A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. */ patterns?: pulumi.Input[]>; @@ -35885,7 +36420,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetCloudSqlTargetFilter { /** - * A specific set of database resources for this filter to apply to. + * A specific set of buckets for this filter to apply to. * Structure is documented below. */ collection?: pulumi.Input; @@ -35895,14 +36430,14 @@ export namespace dataloss { */ databaseResourceReference?: pulumi.Input; /** - * Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + * Match discovery resources not covered by any other filter. */ others?: pulumi.Input; } export interface PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection { /** - * A collection of regular expressions to match a database resource against. + * A collection of regular expressions to match a file store against. * Structure is documented below. */ includeRegexes?: pulumi.Input; @@ -35910,7 +36445,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes { /** - * A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. */ patterns?: pulumi.Input[]>; @@ -35959,7 +36494,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence { /** - * Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + * Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. */ refreshFrequency?: pulumi.Input; @@ -35983,6 +36518,147 @@ export namespace dataloss { types?: pulumi.Input[]>; } + export interface PreventionDiscoveryConfigTargetCloudStorageTarget { + /** + * In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + */ + conditions?: pulumi.Input; + /** + * Disable profiling for buckets that match this filter. + */ + disabled?: pulumi.Input; + /** + * The buckets the generationCadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + */ + filter: pulumi.Input; + /** + * 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. + * Structure is documented below. + */ + generationCadence?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetConditions { + /** + * Cloud Storage conditions. + * Structure is documented below. + */ + cloudStorageConditions?: pulumi.Input; + /** + * 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. + */ + createdAfter?: pulumi.Input; + /** + * Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + */ + minAge?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions { + /** + * Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + */ + includedBucketAttributes?: pulumi.Input[]>; + /** + * 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + */ + includedObjectAttributes?: pulumi.Input[]>; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetDisabled { + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilter { + /** + * 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. + * Structure is documented below. + */ + cloudStorageResourceReference?: pulumi.Input; + /** + * A specific set of buckets for this filter to apply to. + * Structure is documented below. + */ + collection?: pulumi.Input; + /** + * Match discovery resources not covered by any other filter. + */ + others?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference { + /** + * The bucket to scan. + */ + bucketName?: pulumi.Input; + /** + * If within a project-level config, then this must match the config's project id. + */ + projectId?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection { + /** + * A collection of regular expressions to match a file store against. + * Structure is documented below. + */ + includeRegexes?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes { + /** + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + */ + patterns?: pulumi.Input[]>; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern { + /** + * Regex for Cloud Storage. + * Structure is documented below. + */ + cloudStorageRegex?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex { + /** + * 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 + */ + bucketNameRegex?: pulumi.Input; + /** + * For organizations, if unset, will match all projects. + */ + projectIdRegex?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers { + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence { + /** + * 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. + * Structure is documented below. + */ + inspectTemplateModifiedCadence?: pulumi.Input; + /** + * Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + */ + refreshFrequency?: pulumi.Input; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence { + /** + * How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + */ + frequency?: pulumi.Input; + } + export interface PreventionDiscoveryConfigTargetSecretsTarget { } @@ -41904,7 +42580,7 @@ export namespace datastream { export interface StreamDestinationConfig { /** - * A configuration for how data should be loaded to Cloud Storage. + * A configuration for how data should be loaded to Google BigQuery. * Structure is documented below. */ bigqueryDestinationConfig?: pulumi.Input; @@ -41920,6 +42596,12 @@ export namespace datastream { } export interface StreamDestinationConfigBigqueryDestinationConfig { + /** + * AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + * events) to a source table will be written to the destination Google BigQuery table, retaining the + * historical state of the data. + */ + appendOnly?: pulumi.Input; /** * The guaranteed data freshness (in seconds) when querying tables created by the stream. * Editing this field will only affect new tables created in the future, but existing tables @@ -41927,6 +42609,12 @@ export namespace datastream { * A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. */ dataFreshness?: pulumi.Input; + /** + * Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + */ + merge?: pulumi.Input; /** * A single target dataset to which all data will be streamed. * Structure is documented below. @@ -41939,6 +42627,12 @@ export namespace datastream { sourceHierarchyDatasets?: pulumi.Input; } + export interface StreamDestinationConfigBigqueryDestinationConfigAppendOnly { + } + + export interface StreamDestinationConfigBigqueryDestinationConfigMerge { + } + export interface StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { /** * Dataset ID in the format projects/{project}/datasets/{dataset_id} or @@ -48811,9 +49505,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -48841,9 +49535,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -48966,14 +49660,14 @@ export namespace gkeonprem { export interface BareMetalAdminClusterProxy { /** * A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxies?: pulumi.Input[]>; /** * Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password@)domain these will be rejected by the server. + * of http://(username:password@)domain these will be rejected by the server. */ uri: pulumi.Input; } @@ -49212,9 +49906,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -49242,9 +49936,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -49401,9 +50095,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -49459,9 +50153,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -49546,9 +50240,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -49576,9 +50270,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -49716,14 +50410,14 @@ export namespace gkeonprem { export interface BareMetalClusterProxy { /** * A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxies?: pulumi.Input[]>; /** * Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password@)domain these will be rejected by the server. + * of http://(username:password@)domain these will be rejected by the server. */ uri: pulumi.Input; } @@ -49922,9 +50616,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -49952,9 +50646,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -52200,8 +52894,8 @@ export namespace integrationconnectors { export interface ConnectionAuthConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: pulumi.Input; @@ -52397,8 +53091,8 @@ export namespace integrationconnectors { export interface ConnectionConfigVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: pulumi.Input; @@ -52504,8 +53198,8 @@ export namespace integrationconnectors { export interface ConnectionEventingConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: pulumi.Input; @@ -52576,8 +53270,8 @@ export namespace integrationconnectors { export interface ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: pulumi.Input; @@ -52779,8 +53473,8 @@ export namespace integrationconnectors { export interface ConnectionSslConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: pulumi.Input; @@ -56005,6 +56699,7 @@ export namespace networkconnectivity { export interface SpokeLinkedRouterApplianceInstances { /** * The list of router appliance instances + * Structure is documented below. */ instances: pulumi.Input[]>; /** @@ -56020,8 +56715,6 @@ export namespace networkconnectivity { ipAddress?: pulumi.Input; /** * The URI of the virtual machine resource - * - * - - - */ virtualMachine?: pulumi.Input; } @@ -65935,6 +66628,14 @@ export namespace workbench { } export interface InstanceGceSetupNetworkInterface { + /** + * Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + */ + accessConfigs?: pulumi.Input[]>; /** * Optional. The name of the VPC that this VM instance is in. */ @@ -65951,6 +66652,17 @@ export namespace workbench { subnet?: pulumi.Input; } + export interface InstanceGceSetupNetworkInterfaceAccessConfig { + /** + * An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + */ + externalIp: pulumi.Input; + } + export interface InstanceGceSetupServiceAccount { /** * Optional. Email address of the service account. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 704e8f2524..8d3021c337 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -2247,6 +2247,41 @@ export namespace alloydb { cidrRange?: string; } + export interface InstanceObservabilityConfig { + /** + * Observability feature status for an instance. + */ + enabled?: boolean; + /** + * Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + */ + maxQueryStringLength?: number; + /** + * Preserve comments in the query string. + */ + preserveComments?: boolean; + /** + * 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. + */ + queryPlansPerMinute?: number; + /** + * Record application tags for an instance. This flag is turned "on" by default. + */ + recordApplicationTags?: boolean; + /** + * Track actively running queries. If not set, default value is "off". + */ + trackActiveQueries?: boolean; + /** + * Record wait event types during query execution for an instance. + */ + trackWaitEventTypes?: boolean; + /** + * Record wait events during query execution for an instance. + */ + trackWaitEvents?: boolean; + } + export interface InstancePscInstanceConfig { /** * List of consumer projects that are allowed to create PSC endpoints to service-attachments to this instance. @@ -5299,6 +5334,14 @@ export namespace biglake { } export namespace bigquery { + export interface AppProfileDataBoostIsolationReadOnly { + /** + * The Compute Billing Owner for this Data Boost App Profile. + * Possible values are: `HOST_PAYS`. + */ + computeBillingOwner: string; + } + export interface AppProfileSingleClusterRouting { /** * If true, CheckAndMutateRow and ReadModifyWriteRow requests are allowed by this app profile. @@ -14802,8 +14845,8 @@ export namespace cloudrun { export interface DomainMappingMetadata { /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -15149,11 +15192,8 @@ export namespace cloudrun { export interface GetServiceTemplateSpec { /** * ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: - * - '0' thread-safe, the system should manage the max concurrency. This is - * the default value. - * - '1' not-thread-safe. Single concurrency - * - '2-N' thread-safe, max concurrency of N + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. */ containerConcurrency: number; /** @@ -15704,8 +15744,8 @@ export namespace cloudrun { export interface ServiceMetadata { /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -15896,8 +15936,8 @@ export namespace cloudrun { export interface ServiceTemplateMetadata { /** * Annotations is a key value map stored with a resource that - * may be set by external tools to store and retrieve arbitrary metadata. More - * info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + * may be set by external tools to store and retrieve arbitrary metadata. + * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations * **Note**: The Cloud Run API may add additional annotations that were not provided in your config. * If the provider plan shows a diff where a server-side annotation is added, you can add it to your config * or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -15966,7 +16006,8 @@ export namespace cloudrun { export interface ServiceTemplateSpec { /** * ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - * requests per container of the Revision. Values are: + * requests per container of the Revision. If not specified or 0, defaults to 80 when + * requested CPU >= 1 and defaults to 1 when requested CPU < 1. */ containerConcurrency: number; /** @@ -17054,6 +17095,7 @@ export namespace cloudrunv2 { labels: {[key: string]: string}; /** * Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. */ maxInstanceRequestConcurrency: number; /** @@ -18157,6 +18199,7 @@ export namespace cloudrunv2 { labels?: {[key: string]: string}; /** * Sets the maximum number of requests that each serving instance can receive. + * If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. */ maxInstanceRequestConcurrency: number; /** @@ -20919,18 +20962,48 @@ export namespace compute { } export interface BackendServiceSecuritySettings { + /** + * The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + * Structure is documented below. + * + * + * The `awsV4Authentication` block supports: + */ + awsV4Authentication?: outputs.compute.BackendServiceSecuritySettingsAwsV4Authentication; /** * ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect * configuration unless it is attached to a backend service resource. */ - clientTlsPolicy: string; + clientTlsPolicy?: string; /** * A list of alternate names to verify the subject identity in the certificate. * If specified, the client will verify that the server certificate's subject * alt name matches one of the specified values. */ - subjectAltNames: string[]; + subjectAltNames?: string[]; + } + + export interface BackendServiceSecuritySettingsAwsV4Authentication { + /** + * The access key used for s3 bucket authentication. + * Required 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. + */ + accessKey?: string; + /** + * The identifier of an access key used for s3 bucket authentication. + */ + accessKeyId?: string; + /** + * The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + */ + accessKeyVersion?: string; + /** + * 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + */ + originRegion?: string; } export interface DiskAsyncPrimaryDisk { @@ -21825,6 +21898,11 @@ export namespace compute { } export interface GetBackendServiceSecuritySetting { + /** + * The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + * Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + */ + awsV4Authentications: outputs.compute.GetBackendServiceSecuritySettingAwsV4Authentication[]; /** * ClientTlsPolicy is a resource that specifies how a client should authenticate * connections to backends of a service. This resource itself does not affect @@ -21839,6 +21917,27 @@ export namespace compute { subjectAltNames: string[]; } + export interface GetBackendServiceSecuritySettingAwsV4Authentication { + /** + * The access key used for s3 bucket authentication. + * Required 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. + */ + accessKey: string; + /** + * The identifier of an access key used for s3 bucket authentication. + */ + accessKeyId: string; + /** + * The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + */ + accessKeyVersion: string; + /** + * 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. + * For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + */ + originRegion: string; + } + export interface GetDiskAsyncPrimaryDisk { /** * Primary disk for asynchronous disk replication. @@ -22777,6 +22876,10 @@ export namespace compute { * The size of the image in gigabytes. */ size: number; + /** + * The URL of the storage pool in which the new disk is created + */ + storagePool: string; /** * The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. */ @@ -26184,6 +26287,13 @@ export namespace compute { * will inherit the size of its base image. */ size: number; + /** + * The URL of the storage pool in which the new disk is created. + * For example: + * * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * * /projects/{project}/zones/{zone}/storagePools/{storagePool} + */ + storagePool?: string; /** * The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. */ @@ -26307,6 +26417,10 @@ export namespace compute { * The size of the image in gigabytes. */ size: number; + /** + * The URL of the storage pool in which the new disk is created + */ + storagePool: string; /** * The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. */ @@ -26736,6 +26850,10 @@ export namespace compute { * The size of the image in gigabytes. */ size: number; + /** + * The URL of the storage pool in which the new disk is created + */ + storagePool: string; /** * The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. */ @@ -33069,6 +33187,333 @@ export namespace compute { interface?: string; } + export interface ResizeRequestRequestedRunDuration { + /** + * 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. + */ + nanos?: number; + /** + * 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 + */ + seconds: string; + } + + export interface ResizeRequestStatus { + /** + * (Output) + * [Output only] Fatal 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. + * Structure is documented below. + */ + errors: outputs.compute.ResizeRequestStatusError[]; + /** + * (Output) + * [Output only] Information 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. + * Structure is documented below. + */ + lastAttempts: outputs.compute.ResizeRequestStatusLastAttempt[]; + } + + export interface ResizeRequestStatusError { + /** + * (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors: outputs.compute.ResizeRequestStatusErrorError[]; + } + + export interface ResizeRequestStatusErrorError { + /** + * (Output) + * [Output Only] The error type identifier for this error. + */ + code: string; + /** + * (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + */ + errorDetails: outputs.compute.ResizeRequestStatusErrorErrorErrorDetail[]; + /** + * (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + */ + location: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface ResizeRequestStatusErrorErrorErrorDetail { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + errorInfos: outputs.compute.ResizeRequestStatusErrorErrorErrorDetailErrorInfo[]; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + helps: outputs.compute.ResizeRequestStatusErrorErrorErrorDetailHelp[]; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + localizedMessages: outputs.compute.ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage[]; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + quotaInfos: outputs.compute.ResizeRequestStatusErrorErrorErrorDetailQuotaInfo[]; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + */ + domain: string; + /** + * (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + */ + metadatas: {[key: string]: string}; + /** + * (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + */ + reason: string; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailHelp { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + links: outputs.compute.ResizeRequestStatusErrorErrorErrorDetailHelpLink[]; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description: string; + /** + * (Output) + * The URL of the link. + */ + url: string; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface ResizeRequestStatusErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions: {[key: string]: string}; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit: number; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit: number; + /** + * (Output) + * The name of the quota limit. + */ + limitName: string; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName: string; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus: string; + } + + export interface ResizeRequestStatusLastAttempt { + /** + * (Output) + * [Output only] Fatal 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. + * Structure is documented below. + */ + errors: outputs.compute.ResizeRequestStatusLastAttemptError[]; + } + + export interface ResizeRequestStatusLastAttemptError { + /** + * (Output) + * [Output Only] The array of errors encountered while processing this operation. + * Structure is documented below. + */ + errors: outputs.compute.ResizeRequestStatusLastAttemptErrorError[]; + } + + export interface ResizeRequestStatusLastAttemptErrorError { + /** + * (Output) + * [Output Only] The error type identifier for this error. + */ + code: string; + /** + * (Output) + * [Output Only] An optional list 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. + * Structure is documented below. + */ + errorDetails: outputs.compute.ResizeRequestStatusLastAttemptErrorErrorErrorDetail[]; + /** + * (Output) + * Output Only] Indicates the field in the request that caused the error. This property is optional. + */ + location: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetail { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + errorInfos: outputs.compute.ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo[]; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + helps: outputs.compute.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp[]; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + localizedMessages: outputs.compute.ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage[]; + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + quotaInfos: outputs.compute.ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo[]; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo { + /** + * (Output) + * The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + */ + domain: string; + /** + * (Output) + * Additional structured details about this error. + * Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + */ + metadatas: {[key: string]: string}; + /** + * (Output) + * The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + */ + reason: string; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp { + /** + * (Output) + * [Output Only] + * Structure is documented below. + */ + links: outputs.compute.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink[]; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink { + /** + * An optional description of this resize-request. + */ + description: string; + /** + * (Output) + * The URL of the link. + */ + url: string; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage { + /** + * (Output) + * The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + */ + locale: string; + /** + * (Output) + * The localized error message in the above locale. + */ + message: string; + } + + export interface ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo { + /** + * (Output) + * The map holding related quota dimensions + */ + dimensions: {[key: string]: string}; + /** + * (Output) + * Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + */ + futureLimit: number; + /** + * (Output) + * Current effective quota limit. The limit's unit depends on the quota type or metric. + */ + limit: number; + /** + * (Output) + * The name of the quota limit. + */ + limitName: string; + /** + * (Output) + * The Compute Engine quota metric name. + */ + metricName: string; + /** + * (Output) + * Rollout status of the future quota limit. + */ + rolloutStatus: string; + } + export interface ResourcePolicyDiskConsistencyGroupPolicy { /** * Enable disk consistency on the resource policy. @@ -33463,6 +33908,14 @@ export namespace compute { sessionInitializationMode: string; } + export interface RouterPeerCustomLearnedIpRange { + /** + * The IP range to advertise. The value must be a + * CIDR-formatted string. + */ + range: string; + } + export interface RouterPeerMd5AuthenticationKey { /** * Value of the key. @@ -33479,6 +33932,66 @@ export namespace compute { name: string; } + export interface RouterRoutePolicyTerm { + /** + * 'CEL expressions to evaluate to modify a route when this term matches.'\ + * Structure is documented below. + */ + actions?: outputs.compute.RouterRoutePolicyTermAction[]; + /** + * CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + * Structure is documented below. + */ + match?: outputs.compute.RouterRoutePolicyTermMatch; + /** + * The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + */ + priority: number; + } + + export interface RouterRoutePolicyTermAction { + /** + * Description of the expression + */ + description?: string; + /** + * Textual representation of an expression in Common Expression + * Language syntax. + */ + expression: string; + /** + * String indicating the location of the expression for error + * reporting, e.g. a file name and a position in the file + * + * - - - + */ + location?: string; + /** + * Title for the expression, i.e. a short string describing its + * purpose. + */ + title?: string; + } + + export interface RouterRoutePolicyTermMatch { + /** + * Description of the expression + */ + description?: string; + /** + * Textual representation of an expression in Common Expression Language syntax. + */ + expression: string; + /** + * String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + */ + location?: string; + /** + * Title for the expression, i.e. a short string describing its purpose. + */ + title?: string; + } + export interface RouterStatusBestRoute { /** * An optional description of this resource. Provide this property @@ -37409,12 +37922,28 @@ export namespace container { * Defaults to disabled; set `disabled = false` to enable. */ networkPolicyConfig: outputs.container.ClusterAddonsConfigNetworkPolicyConfig; + /** + * . The status of the [Ray Operator + * addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + * It is disabled by default. Set `enabled = true` to enable. The minimum + * cluster version to enable Ray is 1.30.0-gke.1747000. + * + * Ray Operator config has optional subfields + * `ray_cluster_logging_config.enabled` and + * `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + * and monitoring respectively. See [Collect and view logs and metrics for Ray + * clusters on + * GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + * for more information. + * + * + * This example `addonsConfig` disables two addons: + */ + rayOperatorConfigs: outputs.container.ClusterAddonsConfigRayOperatorConfig[]; /** * . * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. * It is disabled by default for Standard clusters. Set `enabled = true` to enable. - * - * This example `addonsConfig` disables two addons: */ statefulHaConfig: outputs.container.ClusterAddonsConfigStatefulHaConfig; } @@ -37498,6 +38027,26 @@ export namespace container { disabled: boolean; } + export interface ClusterAddonsConfigRayOperatorConfig { + enabled: boolean; + /** + * The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + */ + rayClusterLoggingConfig: outputs.container.ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig; + /** + * The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + */ + rayClusterMonitoringConfig: outputs.container.ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig; + } + + export interface ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + enabled: boolean; + } + + export interface ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + enabled: boolean; + } + export interface ClusterAddonsConfigStatefulHaConfig { enabled: boolean; } @@ -39812,6 +40361,10 @@ export namespace container { * 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 networkPolicy block, 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. */ networkPolicyConfigs: outputs.container.GetClusterAddonsConfigNetworkPolicyConfig[]; + /** + * 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. + */ + rayOperatorConfigs: outputs.container.GetClusterAddonsConfigRayOperatorConfig[]; /** * The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. */ @@ -39874,6 +40427,26 @@ export namespace container { disabled: boolean; } + export interface GetClusterAddonsConfigRayOperatorConfig { + enabled: boolean; + /** + * The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + */ + rayClusterLoggingConfigs: outputs.container.GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig[]; + /** + * The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + */ + rayClusterMonitoringConfigs: outputs.container.GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig[]; + } + + export interface GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig { + enabled: boolean; + } + + export interface GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig { + enabled: boolean; + } + export interface GetClusterAddonsConfigStatefulHaConfig { enabled: boolean; } @@ -41982,7 +42555,10 @@ export namespace container { */ preemptible?: boolean; /** - * The reservation affinity configuration for the node pool. + * The configuration of the desired reservation which instances could take capacity from. + * Structure is documented below. + * + * The `autoscaling` block supports (either total or per zone limits are required): */ reservationAffinity?: outputs.container.NodePoolNodeConfigReservationAffinity; /** @@ -42223,15 +42799,21 @@ export namespace container { export interface NodePoolNodeConfigReservationAffinity { /** - * Corresponds to the type of reservation consumption. + * The type of reservation consumption + * Accepted values are: + * + * * `"UNSPECIFIED"`: Default value. This should not be used. + * * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * * `"ANY_RESERVATION"`: Consume any reservation available. + * * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. */ consumeReservationType: string; /** - * The label key of a reservation resource. + * 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. */ key?: string; /** - * The label values of the reservation resource. + * 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" */ values?: string[]; } @@ -47252,6 +47834,11 @@ export namespace dataloss { * Structure is documented below. */ cloudSqlTarget?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudSqlTarget; + /** + * Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + * Structure is documented below. + */ + cloudStorageTarget?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTarget; /** * 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. */ @@ -47321,7 +47908,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetBigQueryTargetConditions { /** - * A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + * 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. */ createdAfter?: string; /** @@ -47404,7 +47991,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes { /** - * A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. */ patterns?: outputs.dataloss.PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern[]; @@ -47465,7 +48052,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetCloudSqlTargetFilter { /** - * A specific set of database resources for this filter to apply to. + * A specific set of buckets for this filter to apply to. * Structure is documented below. */ collection?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection; @@ -47475,14 +48062,14 @@ export namespace dataloss { */ databaseResourceReference?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference; /** - * Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + * Match discovery resources not covered by any other filter. */ others?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers; } export interface PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection { /** - * A collection of regular expressions to match a database resource against. + * A collection of regular expressions to match a file store against. * Structure is documented below. */ includeRegexes?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes; @@ -47490,7 +48077,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes { /** - * A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. * Structure is documented below. */ patterns?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern[]; @@ -47539,7 +48126,7 @@ export namespace dataloss { export interface PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence { /** - * Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + * Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. */ refreshFrequency?: string; @@ -47563,6 +48150,147 @@ export namespace dataloss { types?: string[]; } + export interface PreventionDiscoveryConfigTargetCloudStorageTarget { + /** + * In addition to matching the filter, these conditions must be true before a profile is generated. + * Structure is documented below. + */ + conditions?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetConditions; + /** + * Disable profiling for buckets that match this filter. + */ + disabled?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetDisabled; + /** + * The buckets the generationCadence applies to. The first target with a matching filter will be the one to apply to a bucket. + * Structure is documented below. + */ + filter: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetFilter; + /** + * 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. + * Structure is documented below. + */ + generationCadence?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetConditions { + /** + * Cloud Storage conditions. + * Structure is documented below. + */ + cloudStorageConditions?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions; + /** + * 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. + */ + createdAfter?: string; + /** + * Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + */ + minAge?: string; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions { + /** + * Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + * Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + */ + includedBucketAttributes?: string[]; + /** + * 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. + * Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + */ + includedObjectAttributes?: string[]; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetDisabled { + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilter { + /** + * 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. + * Structure is documented below. + */ + cloudStorageResourceReference?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference; + /** + * A specific set of buckets for this filter to apply to. + * Structure is documented below. + */ + collection?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection; + /** + * Match discovery resources not covered by any other filter. + */ + others?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference { + /** + * The bucket to scan. + */ + bucketName?: string; + /** + * If within a project-level config, then this must match the config's project id. + */ + projectId?: string; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection { + /** + * A collection of regular expressions to match a file store against. + * Structure is documented below. + */ + includeRegexes?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes { + /** + * The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + * Structure is documented below. + */ + patterns?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern[]; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern { + /** + * Regex for Cloud Storage. + * Structure is documented below. + */ + cloudStorageRegex?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex { + /** + * 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 + */ + bucketNameRegex?: string; + /** + * For organizations, if unset, will match all projects. + */ + projectIdRegex?: string; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers { + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence { + /** + * 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. + * Structure is documented below. + */ + inspectTemplateModifiedCadence?: outputs.dataloss.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence; + /** + * Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + */ + refreshFrequency?: string; + } + + export interface PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence { + /** + * How frequently data profiles can be updated when the template is modified. Defaults to never. + * Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + */ + frequency?: string; + } + export interface PreventionDiscoveryConfigTargetSecretsTarget { } @@ -53674,7 +54402,7 @@ export namespace datastream { export interface StreamDestinationConfig { /** - * A configuration for how data should be loaded to Cloud Storage. + * A configuration for how data should be loaded to Google BigQuery. * Structure is documented below. */ bigqueryDestinationConfig?: outputs.datastream.StreamDestinationConfigBigqueryDestinationConfig; @@ -53690,6 +54418,12 @@ export namespace datastream { } export interface StreamDestinationConfigBigqueryDestinationConfig { + /** + * AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + * events) to a source table will be written to the destination Google BigQuery table, retaining the + * historical state of the data. + */ + appendOnly?: outputs.datastream.StreamDestinationConfigBigqueryDestinationConfigAppendOnly; /** * The guaranteed data freshness (in seconds) when querying tables created by the stream. * Editing this field will only affect new tables created in the future, but existing tables @@ -53697,6 +54431,12 @@ export namespace datastream { * A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. */ dataFreshness?: string; + /** + * Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + * table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + * in the source database. With Merge mode, no historical record of the change events is kept. + */ + merge?: outputs.datastream.StreamDestinationConfigBigqueryDestinationConfigMerge; /** * A single target dataset to which all data will be streamed. * Structure is documented below. @@ -53709,6 +54449,12 @@ export namespace datastream { sourceHierarchyDatasets?: outputs.datastream.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets; } + export interface StreamDestinationConfigBigqueryDestinationConfigAppendOnly { + } + + export interface StreamDestinationConfigBigqueryDestinationConfigMerge { + } + export interface StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset { /** * Dataset ID in the format projects/{project}/datasets/{dataset_id} or @@ -60860,9 +61606,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: {[key: string]: string}; /** @@ -60890,9 +61636,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: {[key: string]: string}; /** @@ -61015,14 +61761,14 @@ export namespace gkeonprem { export interface BareMetalAdminClusterProxy { /** * A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxies?: string[]; /** * Specifies the address of your proxy server. - * Examples: http://domain + * For Example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password@)domain these will be rejected by the server. + * of http://(username:password@)domain these will be rejected by the server. */ uri: string; } @@ -61261,9 +62007,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels: {[key: string]: string}; /** @@ -61291,9 +62037,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: {[key: string]: string}; /** @@ -61450,9 +62196,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: {[key: string]: string}; /** @@ -61508,9 +62254,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: {[key: string]: string}; /** @@ -61595,9 +62341,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels: {[key: string]: string}; /** @@ -61625,9 +62371,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: {[key: string]: string}; /** @@ -61765,14 +62511,14 @@ export namespace gkeonprem { export interface BareMetalClusterProxy { /** * A list of IPs, hostnames, and domains that should skip the proxy. - * Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + * For example ["127.0.0.1", "example.com", ".corp", "localhost"]. */ noProxies?: string[]; /** * Specifies the address of your proxy server. - * Examples: http://domain + * For example: http://domain * WARNING: Do not provide credentials in the format - * http://(username:password@)domain these will be rejected by the server. + * of http://(username:password@)domain these will be rejected by the server. */ uri: string; } @@ -61971,9 +62717,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels: {[key: string]: string}; /** @@ -62001,9 +62747,9 @@ export namespace gkeonprem { * version -- it's best to assume the behavior is undefined and * conflicts should be avoided. For more information, including usage * and the valid values, see: - * http://kubernetes.io/v1.1/docs/user-guide/labels.html + * - http://kubernetes.io/v1.1/docs/user-guide/labels.html * An object containing a list of "key": value pairs. - * Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + * For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. */ labels?: {[key: string]: string}; /** @@ -64339,8 +65085,8 @@ export namespace integrationconnectors { export interface ConnectionAuthConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: string; @@ -64536,8 +65282,8 @@ export namespace integrationconnectors { export interface ConnectionConfigVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: string; @@ -64643,8 +65389,8 @@ export namespace integrationconnectors { export interface ConnectionEventingConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: string; @@ -64715,8 +65461,8 @@ export namespace integrationconnectors { export interface ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: string; @@ -64918,8 +65664,8 @@ export namespace integrationconnectors { export interface ConnectionSslConfigAdditionalVariableEncryptionKeyValue { /** - * The [KMS key name] with which the content of the Operation is encrypted. The expected - * format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + * The [KMS key name] with which the content of the Operation is encrypted. The + * expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. * Will be empty string if google managed. */ kmsKeyName?: string; @@ -68254,7 +69000,7 @@ export namespace networkconnectivity { /** * The URI of the VPC network. */ - uri: string; + uri?: string; } export interface PolicyBasedRouteFilter { @@ -68411,6 +69157,7 @@ export namespace networkconnectivity { export interface SpokeLinkedRouterApplianceInstances { /** * The list of router appliance instances + * Structure is documented below. */ instances: outputs.networkconnectivity.SpokeLinkedRouterApplianceInstancesInstance[]; /** @@ -68426,8 +69173,6 @@ export namespace networkconnectivity { ipAddress?: string; /** * The URI of the virtual machine resource - * - * - - - */ virtualMachine?: string; } @@ -80880,6 +81625,14 @@ export namespace workbench { } export interface InstanceGceSetupNetworkInterface { + /** + * Optional. An array of configurations for this interface. Currently, only one access + * config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + * instance will have an external internet access through an ephemeral + * external IP address. + * Structure is documented below. + */ + accessConfigs: outputs.workbench.InstanceGceSetupNetworkInterfaceAccessConfig[]; /** * Optional. The name of the VPC that this VM instance is in. */ @@ -80896,6 +81649,17 @@ export namespace workbench { subnet: string; } + export interface InstanceGceSetupNetworkInterfaceAccessConfig { + /** + * An external IP address associated with this instance. Specify an unused + * static external IP address available to the project or leave this field + * undefined to use an IP from a shared ephemeral IP address pool. If you + * specify a static external IP address, it must live in the same region as + * the zone of the instance. + */ + externalIp: string; + } + export interface InstanceGceSetupServiceAccount { /** * Optional. Email address of the service account. diff --git a/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts b/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts index 4a0ae7b563..8b296639cf 100644 --- a/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts +++ b/sdk/nodejs/vertex/aiFeatureOnlineStoreFeatureview.ts @@ -179,8 +179,8 @@ import * as utilities from "../utilities"; * * const testProject = gcp.organizations.getProject({}); * const project = new gcp.organizations.Project("project", { - * projectId: "tf-test_55138", - * name: "tf-test_37559", + * projectId: "tf-test_13293", + * name: "tf-test_40289", * orgId: "123456789", * billingAccount: "000000-0000000-0000000-000000", * }); diff --git a/sdk/nodejs/vmwareengine/getPrivateCloud.ts b/sdk/nodejs/vmwareengine/getPrivateCloud.ts index df412832a9..08a58a7c8a 100644 --- a/sdk/nodejs/vmwareengine/getPrivateCloud.ts +++ b/sdk/nodejs/vmwareengine/getPrivateCloud.ts @@ -59,6 +59,7 @@ export interface GetPrivateCloudArgs { * A collection of values returned by getPrivateCloud. */ export interface GetPrivateCloudResult { + readonly deletionDelayHours: number; readonly description: string; readonly hcxes: outputs.vmwareengine.GetPrivateCloudHcx[]; /** @@ -71,6 +72,7 @@ export interface GetPrivateCloudResult { readonly networkConfigs: outputs.vmwareengine.GetPrivateCloudNetworkConfig[]; readonly nsxes: outputs.vmwareengine.GetPrivateCloudNsx[]; readonly project?: string; + readonly sendDeletionDelayHoursIfZero: boolean; readonly state: string; readonly type: string; readonly uid: string; diff --git a/sdk/nodejs/vmwareengine/privateCloud.ts b/sdk/nodejs/vmwareengine/privateCloud.ts index bd9f436e32..1996e2be57 100644 --- a/sdk/nodejs/vmwareengine/privateCloud.ts +++ b/sdk/nodejs/vmwareengine/privateCloud.ts @@ -73,6 +73,8 @@ import * as utilities from "../utilities"; * customCoreCount: 32, * }], * }, + * deletionDelayHours: 0, + * sendDeletionDelayHoursIfZero: true, * }); * ``` * @@ -128,6 +130,11 @@ export class PrivateCloud extends pulumi.CustomResource { return obj['__pulumiType'] === PrivateCloud.__pulumiType; } + /** + * The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + */ + public readonly deletionDelayHours!: pulumi.Output; /** * User-provided description for this private cloud. */ @@ -161,6 +168,12 @@ export class PrivateCloud extends pulumi.CustomResource { */ public /*out*/ readonly nsxes!: pulumi.Output; public readonly project!: pulumi.Output; + /** + * While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + * deletion_delay_hours. + */ + public readonly sendDeletionDelayHoursIfZero!: pulumi.Output; /** * State of the appliance. * Possible values are: `ACTIVE`, `CREATING`. @@ -193,6 +206,7 @@ export class PrivateCloud extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as PrivateCloudState | undefined; + resourceInputs["deletionDelayHours"] = state ? state.deletionDelayHours : undefined; resourceInputs["description"] = state ? state.description : undefined; resourceInputs["hcxes"] = state ? state.hcxes : undefined; resourceInputs["location"] = state ? state.location : undefined; @@ -201,6 +215,7 @@ export class PrivateCloud extends pulumi.CustomResource { resourceInputs["networkConfig"] = state ? state.networkConfig : undefined; resourceInputs["nsxes"] = state ? state.nsxes : undefined; resourceInputs["project"] = state ? state.project : undefined; + resourceInputs["sendDeletionDelayHoursIfZero"] = state ? state.sendDeletionDelayHoursIfZero : undefined; resourceInputs["state"] = state ? state.state : undefined; resourceInputs["type"] = state ? state.type : undefined; resourceInputs["uid"] = state ? state.uid : undefined; @@ -216,12 +231,14 @@ export class PrivateCloud extends pulumi.CustomResource { if ((!args || args.networkConfig === undefined) && !opts.urn) { throw new Error("Missing required property 'networkConfig'"); } + resourceInputs["deletionDelayHours"] = args ? args.deletionDelayHours : undefined; resourceInputs["description"] = args ? args.description : undefined; resourceInputs["location"] = args ? args.location : undefined; resourceInputs["managementCluster"] = args ? args.managementCluster : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["networkConfig"] = args ? args.networkConfig : undefined; resourceInputs["project"] = args ? args.project : undefined; + resourceInputs["sendDeletionDelayHoursIfZero"] = args ? args.sendDeletionDelayHoursIfZero : undefined; resourceInputs["type"] = args ? args.type : undefined; resourceInputs["hcxes"] = undefined /*out*/; resourceInputs["nsxes"] = undefined /*out*/; @@ -238,6 +255,11 @@ export class PrivateCloud extends pulumi.CustomResource { * Input properties used for looking up and filtering PrivateCloud resources. */ export interface PrivateCloudState { + /** + * The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + */ + deletionDelayHours?: pulumi.Input; /** * User-provided description for this private cloud. */ @@ -271,6 +293,12 @@ export interface PrivateCloudState { */ nsxes?: pulumi.Input[]>; project?: pulumi.Input; + /** + * While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + * deletion_delay_hours. + */ + sendDeletionDelayHoursIfZero?: pulumi.Input; /** * State of the appliance. * Possible values are: `ACTIVE`, `CREATING`. @@ -295,6 +323,11 @@ export interface PrivateCloudState { * The set of arguments for constructing a PrivateCloud resource. */ export interface PrivateCloudArgs { + /** + * The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + * starts the deletion request immediately. If no value is set, a default value is set at the API Level. + */ + deletionDelayHours?: pulumi.Input; /** * User-provided description for this private cloud. */ @@ -318,6 +351,12 @@ export interface PrivateCloudArgs { */ networkConfig: pulumi.Input; project?: pulumi.Input; + /** + * While set true, deletionDelayHours value will be sent in the request even for zero value of the field. This field is + * only useful for setting 0 value to the deletionDelayHours field. It can be used both alone and together with + * deletion_delay_hours. + */ + sendDeletionDelayHoursIfZero?: pulumi.Input; /** * Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] */ diff --git a/sdk/nodejs/workbench/instance.ts b/sdk/nodejs/workbench/instance.ts index 94386b6cf8..745dff0fd9 100644 --- a/sdk/nodejs/workbench/instance.ts +++ b/sdk/nodejs/workbench/instance.ts @@ -84,7 +84,6 @@ import * as utilities from "../utilities"; * terraform: "true", * }, * }, - * instanceOwners: ["my@service-account.com"], * labels: { * k: "val", * }, @@ -107,6 +106,12 @@ import * as utilities from "../utilities"; * region: "us-central1", * ipCidrRange: "10.0.1.0/24", * }); + * const static = new gcp.compute.Address("static", {name: "wbi-test-default"}); + * const actAsPermission = new gcp.serviceaccount.IAMBinding("act_as_permission", { + * serviceAccountId: "projects/my-project-name/serviceAccounts/my@service-account.com", + * role: "roles/iam.serviceAccountUser", + * members: ["user:example@example.com"], + * }); * const instance = new gcp.workbench.Instance("instance", { * name: "workbench-instance", * location: "us-central1-a", @@ -141,6 +146,9 @@ import * as utilities from "../utilities"; * network: myNetwork.id, * subnet: mySubnetwork.id, * nicType: "GVNIC", + * accessConfigs: [{ + * externalIp: static.address, + * }], * }], * metadata: { * terraform: "true", @@ -152,7 +160,7 @@ import * as utilities from "../utilities"; * ], * }, * disableProxyAccess: true, - * instanceOwners: ["my@service-account.com"], + * instanceOwners: ["example@example.com"], * labels: { * k: "val", * }, diff --git a/sdk/python/pulumi_gcp/__init__.py b/sdk/python/pulumi_gcp/__init__.py index 62ef162712..730a16e5dc 100644 --- a/sdk/python/pulumi_gcp/__init__.py +++ b/sdk/python/pulumi_gcp/__init__.py @@ -746,6 +746,22 @@ "gcp:apigee/environmentIamPolicy:EnvironmentIamPolicy": "EnvironmentIamPolicy" } }, + { + "pkg": "gcp", + "mod": "apigee/environmentKeyvaluemaps", + "fqn": "pulumi_gcp.apigee", + "classes": { + "gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps": "EnvironmentKeyvaluemaps" + } + }, + { + "pkg": "gcp", + "mod": "apigee/environmentKeyvaluemapsEntries", + "fqn": "pulumi_gcp.apigee", + "classes": { + "gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries": "EnvironmentKeyvaluemapsEntries" + } + }, { "pkg": "gcp", "mod": "apigee/flowhook", @@ -2978,6 +2994,14 @@ "gcp:compute/reservation:Reservation": "Reservation" } }, + { + "pkg": "gcp", + "mod": "compute/resizeRequest", + "fqn": "pulumi_gcp.compute", + "classes": { + "gcp:compute/resizeRequest:ResizeRequest": "ResizeRequest" + } + }, { "pkg": "gcp", "mod": "compute/resourcePolicy", @@ -3026,6 +3050,14 @@ "gcp:compute/routerPeer:RouterPeer": "RouterPeer" } }, + { + "pkg": "gcp", + "mod": "compute/routerRoutePolicy", + "fqn": "pulumi_gcp.compute", + "classes": { + "gcp:compute/routerRoutePolicy:RouterRoutePolicy": "RouterRoutePolicy" + } + }, { "pkg": "gcp", "mod": "compute/sSLCertificate", @@ -7074,6 +7106,14 @@ "gcp:securitycenter/sourceIamPolicy:SourceIamPolicy": "SourceIamPolicy" } }, + { + "pkg": "gcp", + "mod": "securitycenter/v2OrganizationMuteConfig", + "fqn": "pulumi_gcp.securitycenter", + "classes": { + "gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig": "V2OrganizationMuteConfig" + } + }, { "pkg": "gcp", "mod": "securitycenter/v2OrganizationNotificationConfig", diff --git a/sdk/python/pulumi_gcp/alloydb/_inputs.py b/sdk/python/pulumi_gcp/alloydb/_inputs.py index 5a2bd5bc4b..70f579da0c 100644 --- a/sdk/python/pulumi_gcp/alloydb/_inputs.py +++ b/sdk/python/pulumi_gcp/alloydb/_inputs.py @@ -77,6 +77,8 @@ 'InstanceNetworkConfigArgsDict', 'InstanceNetworkConfigAuthorizedExternalNetworkArgs', 'InstanceNetworkConfigAuthorizedExternalNetworkArgsDict', + 'InstanceObservabilityConfigArgs', + 'InstanceObservabilityConfigArgsDict', 'InstancePscInstanceConfigArgs', 'InstancePscInstanceConfigArgsDict', 'InstanceQueryInsightsConfigArgs', @@ -1804,6 +1806,178 @@ def cidr_range(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "cidr_range", value) +if not MYPY: + class InstanceObservabilityConfigArgsDict(TypedDict): + enabled: NotRequired[pulumi.Input[bool]] + """ + Observability feature status for an instance. + """ + max_query_string_length: NotRequired[pulumi.Input[int]] + """ + Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + """ + preserve_comments: NotRequired[pulumi.Input[bool]] + """ + Preserve comments in the query string. + """ + query_plans_per_minute: NotRequired[pulumi.Input[int]] + """ + 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. + """ + record_application_tags: NotRequired[pulumi.Input[bool]] + """ + Record application tags for an instance. This flag is turned "on" by default. + """ + track_active_queries: NotRequired[pulumi.Input[bool]] + """ + Track actively running queries. If not set, default value is "off". + """ + track_wait_event_types: NotRequired[pulumi.Input[bool]] + """ + Record wait event types during query execution for an instance. + """ + track_wait_events: NotRequired[pulumi.Input[bool]] + """ + Record wait events during query execution for an instance. + """ +elif False: + InstanceObservabilityConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class InstanceObservabilityConfigArgs: + def __init__(__self__, *, + enabled: Optional[pulumi.Input[bool]] = None, + max_query_string_length: Optional[pulumi.Input[int]] = None, + preserve_comments: Optional[pulumi.Input[bool]] = None, + query_plans_per_minute: Optional[pulumi.Input[int]] = None, + record_application_tags: Optional[pulumi.Input[bool]] = None, + track_active_queries: Optional[pulumi.Input[bool]] = None, + track_wait_event_types: Optional[pulumi.Input[bool]] = None, + track_wait_events: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] enabled: Observability feature status for an instance. + :param pulumi.Input[int] max_query_string_length: Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + :param pulumi.Input[bool] preserve_comments: Preserve comments in the query string. + :param pulumi.Input[int] query_plans_per_minute: 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. + :param pulumi.Input[bool] record_application_tags: Record application tags for an instance. This flag is turned "on" by default. + :param pulumi.Input[bool] track_active_queries: Track actively running queries. If not set, default value is "off". + :param pulumi.Input[bool] track_wait_event_types: Record wait event types during query execution for an instance. + :param pulumi.Input[bool] track_wait_events: Record wait events during query execution for an instance. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if max_query_string_length is not None: + pulumi.set(__self__, "max_query_string_length", max_query_string_length) + if preserve_comments is not None: + pulumi.set(__self__, "preserve_comments", preserve_comments) + if query_plans_per_minute is not None: + pulumi.set(__self__, "query_plans_per_minute", query_plans_per_minute) + if record_application_tags is not None: + pulumi.set(__self__, "record_application_tags", record_application_tags) + if track_active_queries is not None: + pulumi.set(__self__, "track_active_queries", track_active_queries) + if track_wait_event_types is not None: + pulumi.set(__self__, "track_wait_event_types", track_wait_event_types) + if track_wait_events is not None: + pulumi.set(__self__, "track_wait_events", track_wait_events) + + @property + @pulumi.getter + def enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Observability feature status for an instance. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="maxQueryStringLength") + def max_query_string_length(self) -> Optional[pulumi.Input[int]]: + """ + Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + """ + return pulumi.get(self, "max_query_string_length") + + @max_query_string_length.setter + def max_query_string_length(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_query_string_length", value) + + @property + @pulumi.getter(name="preserveComments") + def preserve_comments(self) -> Optional[pulumi.Input[bool]]: + """ + Preserve comments in the query string. + """ + return pulumi.get(self, "preserve_comments") + + @preserve_comments.setter + def preserve_comments(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "preserve_comments", value) + + @property + @pulumi.getter(name="queryPlansPerMinute") + def query_plans_per_minute(self) -> Optional[pulumi.Input[int]]: + """ + 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. + """ + return pulumi.get(self, "query_plans_per_minute") + + @query_plans_per_minute.setter + def query_plans_per_minute(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "query_plans_per_minute", value) + + @property + @pulumi.getter(name="recordApplicationTags") + def record_application_tags(self) -> Optional[pulumi.Input[bool]]: + """ + Record application tags for an instance. This flag is turned "on" by default. + """ + return pulumi.get(self, "record_application_tags") + + @record_application_tags.setter + def record_application_tags(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "record_application_tags", value) + + @property + @pulumi.getter(name="trackActiveQueries") + def track_active_queries(self) -> Optional[pulumi.Input[bool]]: + """ + Track actively running queries. If not set, default value is "off". + """ + return pulumi.get(self, "track_active_queries") + + @track_active_queries.setter + def track_active_queries(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "track_active_queries", value) + + @property + @pulumi.getter(name="trackWaitEventTypes") + def track_wait_event_types(self) -> Optional[pulumi.Input[bool]]: + """ + Record wait event types during query execution for an instance. + """ + return pulumi.get(self, "track_wait_event_types") + + @track_wait_event_types.setter + def track_wait_event_types(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "track_wait_event_types", value) + + @property + @pulumi.getter(name="trackWaitEvents") + def track_wait_events(self) -> Optional[pulumi.Input[bool]]: + """ + Record wait events during query execution for an instance. + """ + return pulumi.get(self, "track_wait_events") + + @track_wait_events.setter + def track_wait_events(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "track_wait_events", value) + + if not MYPY: class InstancePscInstanceConfigArgsDict(TypedDict): allowed_consumer_projects: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] diff --git a/sdk/python/pulumi_gcp/alloydb/instance.py b/sdk/python/pulumi_gcp/alloydb/instance.py index 68bb8f7d5c..90e085422a 100644 --- a/sdk/python/pulumi_gcp/alloydb/instance.py +++ b/sdk/python/pulumi_gcp/alloydb/instance.py @@ -33,6 +33,7 @@ def __init__(__self__, *, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, machine_config: Optional[pulumi.Input['InstanceMachineConfigArgs']] = None, network_config: Optional[pulumi.Input['InstanceNetworkConfigArgs']] = None, + observability_config: Optional[pulumi.Input['InstanceObservabilityConfigArgs']] = None, psc_instance_config: Optional[pulumi.Input['InstancePscInstanceConfigArgs']] = None, query_insights_config: Optional[pulumi.Input['InstanceQueryInsightsConfigArgs']] = None, read_pool_config: Optional[pulumi.Input['InstanceReadPoolConfigArgs']] = None): @@ -66,6 +67,8 @@ def __init__(__self__, *, Structure is documented below. :param pulumi.Input['InstanceNetworkConfigArgs'] network_config: Instance level network configuration. Structure is documented below. + :param pulumi.Input['InstanceObservabilityConfigArgs'] observability_config: Configuration for enhanced query insights. + Structure is documented below. :param pulumi.Input['InstancePscInstanceConfigArgs'] psc_instance_config: Configuration for Private Service Connect (PSC) for the instance. Structure is documented below. :param pulumi.Input['InstanceQueryInsightsConfigArgs'] query_insights_config: Configuration for query insights. @@ -94,6 +97,8 @@ def __init__(__self__, *, pulumi.set(__self__, "machine_config", machine_config) if network_config is not None: pulumi.set(__self__, "network_config", network_config) + if observability_config is not None: + pulumi.set(__self__, "observability_config", observability_config) if psc_instance_config is not None: pulumi.set(__self__, "psc_instance_config", psc_instance_config) if query_insights_config is not None: @@ -259,6 +264,19 @@ def network_config(self) -> Optional[pulumi.Input['InstanceNetworkConfigArgs']]: def network_config(self, value: Optional[pulumi.Input['InstanceNetworkConfigArgs']]): pulumi.set(self, "network_config", value) + @property + @pulumi.getter(name="observabilityConfig") + def observability_config(self) -> Optional[pulumi.Input['InstanceObservabilityConfigArgs']]: + """ + Configuration for enhanced query insights. + Structure is documented below. + """ + return pulumi.get(self, "observability_config") + + @observability_config.setter + def observability_config(self, value: Optional[pulumi.Input['InstanceObservabilityConfigArgs']]): + pulumi.set(self, "observability_config", value) + @property @pulumi.getter(name="pscInstanceConfig") def psc_instance_config(self) -> Optional[pulumi.Input['InstancePscInstanceConfigArgs']]: @@ -319,6 +337,7 @@ def __init__(__self__, *, machine_config: Optional[pulumi.Input['InstanceMachineConfigArgs']] = None, name: Optional[pulumi.Input[str]] = None, network_config: Optional[pulumi.Input['InstanceNetworkConfigArgs']] = None, + observability_config: Optional[pulumi.Input['InstanceObservabilityConfigArgs']] = None, psc_instance_config: Optional[pulumi.Input['InstancePscInstanceConfigArgs']] = None, public_ip_address: Optional[pulumi.Input[str]] = None, pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -362,6 +381,8 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the instance resource. :param pulumi.Input['InstanceNetworkConfigArgs'] network_config: Instance level network configuration. Structure is documented below. + :param pulumi.Input['InstanceObservabilityConfigArgs'] observability_config: Configuration for enhanced query insights. + Structure is documented below. :param pulumi.Input['InstancePscInstanceConfigArgs'] psc_instance_config: Configuration for Private Service Connect (PSC) for the instance. Structure is documented below. :param pulumi.Input[str] public_ip_address: The public IP addresses for the Instance. This is available ONLY when @@ -412,6 +433,8 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if network_config is not None: pulumi.set(__self__, "network_config", network_config) + if observability_config is not None: + pulumi.set(__self__, "observability_config", observability_config) if psc_instance_config is not None: pulumi.set(__self__, "psc_instance_config", psc_instance_config) if public_ip_address is not None: @@ -646,6 +669,19 @@ def network_config(self) -> Optional[pulumi.Input['InstanceNetworkConfigArgs']]: def network_config(self, value: Optional[pulumi.Input['InstanceNetworkConfigArgs']]): pulumi.set(self, "network_config", value) + @property + @pulumi.getter(name="observabilityConfig") + def observability_config(self) -> Optional[pulumi.Input['InstanceObservabilityConfigArgs']]: + """ + Configuration for enhanced query insights. + Structure is documented below. + """ + return pulumi.get(self, "observability_config") + + @observability_config.setter + def observability_config(self, value: Optional[pulumi.Input['InstanceObservabilityConfigArgs']]): + pulumi.set(self, "observability_config", value) + @property @pulumi.getter(name="pscInstanceConfig") def psc_instance_config(self) -> Optional[pulumi.Input['InstancePscInstanceConfigArgs']]: @@ -778,6 +814,7 @@ def __init__(__self__, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, machine_config: Optional[pulumi.Input[Union['InstanceMachineConfigArgs', 'InstanceMachineConfigArgsDict']]] = None, network_config: Optional[pulumi.Input[Union['InstanceNetworkConfigArgs', 'InstanceNetworkConfigArgsDict']]] = None, + observability_config: Optional[pulumi.Input[Union['InstanceObservabilityConfigArgs', 'InstanceObservabilityConfigArgsDict']]] = None, psc_instance_config: Optional[pulumi.Input[Union['InstancePscInstanceConfigArgs', 'InstancePscInstanceConfigArgsDict']]] = None, query_insights_config: Optional[pulumi.Input[Union['InstanceQueryInsightsConfigArgs', 'InstanceQueryInsightsConfigArgsDict']]] = None, read_pool_config: Optional[pulumi.Input[Union['InstanceReadPoolConfigArgs', 'InstanceReadPoolConfigArgsDict']]] = None, @@ -928,6 +965,8 @@ def __init__(__self__, Structure is documented below. :param pulumi.Input[Union['InstanceNetworkConfigArgs', 'InstanceNetworkConfigArgsDict']] network_config: Instance level network configuration. Structure is documented below. + :param pulumi.Input[Union['InstanceObservabilityConfigArgs', 'InstanceObservabilityConfigArgsDict']] observability_config: Configuration for enhanced query insights. + Structure is documented below. :param pulumi.Input[Union['InstancePscInstanceConfigArgs', 'InstancePscInstanceConfigArgsDict']] psc_instance_config: Configuration for Private Service Connect (PSC) for the instance. Structure is documented below. :param pulumi.Input[Union['InstanceQueryInsightsConfigArgs', 'InstanceQueryInsightsConfigArgsDict']] query_insights_config: Configuration for query insights. @@ -1084,6 +1123,7 @@ def _internal_init(__self__, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, machine_config: Optional[pulumi.Input[Union['InstanceMachineConfigArgs', 'InstanceMachineConfigArgsDict']]] = None, network_config: Optional[pulumi.Input[Union['InstanceNetworkConfigArgs', 'InstanceNetworkConfigArgsDict']]] = None, + observability_config: Optional[pulumi.Input[Union['InstanceObservabilityConfigArgs', 'InstanceObservabilityConfigArgsDict']]] = None, psc_instance_config: Optional[pulumi.Input[Union['InstancePscInstanceConfigArgs', 'InstancePscInstanceConfigArgsDict']]] = None, query_insights_config: Optional[pulumi.Input[Union['InstanceQueryInsightsConfigArgs', 'InstanceQueryInsightsConfigArgsDict']]] = None, read_pool_config: Optional[pulumi.Input[Union['InstanceReadPoolConfigArgs', 'InstanceReadPoolConfigArgsDict']]] = None, @@ -1114,6 +1154,7 @@ def _internal_init(__self__, __props__.__dict__["labels"] = labels __props__.__dict__["machine_config"] = machine_config __props__.__dict__["network_config"] = network_config + __props__.__dict__["observability_config"] = observability_config __props__.__dict__["psc_instance_config"] = psc_instance_config __props__.__dict__["query_insights_config"] = query_insights_config __props__.__dict__["read_pool_config"] = read_pool_config @@ -1157,6 +1198,7 @@ def get(resource_name: str, machine_config: Optional[pulumi.Input[Union['InstanceMachineConfigArgs', 'InstanceMachineConfigArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, network_config: Optional[pulumi.Input[Union['InstanceNetworkConfigArgs', 'InstanceNetworkConfigArgsDict']]] = None, + observability_config: Optional[pulumi.Input[Union['InstanceObservabilityConfigArgs', 'InstanceObservabilityConfigArgsDict']]] = None, psc_instance_config: Optional[pulumi.Input[Union['InstancePscInstanceConfigArgs', 'InstancePscInstanceConfigArgsDict']]] = None, public_ip_address: Optional[pulumi.Input[str]] = None, pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -1205,6 +1247,8 @@ def get(resource_name: str, :param pulumi.Input[str] name: The name of the instance resource. :param pulumi.Input[Union['InstanceNetworkConfigArgs', 'InstanceNetworkConfigArgsDict']] network_config: Instance level network configuration. Structure is documented below. + :param pulumi.Input[Union['InstanceObservabilityConfigArgs', 'InstanceObservabilityConfigArgsDict']] observability_config: Configuration for enhanced query insights. + Structure is documented below. :param pulumi.Input[Union['InstancePscInstanceConfigArgs', 'InstancePscInstanceConfigArgsDict']] psc_instance_config: Configuration for Private Service Connect (PSC) for the instance. Structure is documented below. :param pulumi.Input[str] public_ip_address: The public IP addresses for the Instance. This is available ONLY when @@ -1242,6 +1286,7 @@ def get(resource_name: str, __props__.__dict__["machine_config"] = machine_config __props__.__dict__["name"] = name __props__.__dict__["network_config"] = network_config + __props__.__dict__["observability_config"] = observability_config __props__.__dict__["psc_instance_config"] = psc_instance_config __props__.__dict__["public_ip_address"] = public_ip_address __props__.__dict__["pulumi_labels"] = pulumi_labels @@ -1400,6 +1445,15 @@ def network_config(self) -> pulumi.Output[Optional['outputs.InstanceNetworkConfi """ return pulumi.get(self, "network_config") + @property + @pulumi.getter(name="observabilityConfig") + def observability_config(self) -> pulumi.Output['outputs.InstanceObservabilityConfig']: + """ + Configuration for enhanced query insights. + Structure is documented below. + """ + return pulumi.get(self, "observability_config") + @property @pulumi.getter(name="pscInstanceConfig") def psc_instance_config(self) -> pulumi.Output[Optional['outputs.InstancePscInstanceConfig']]: diff --git a/sdk/python/pulumi_gcp/alloydb/outputs.py b/sdk/python/pulumi_gcp/alloydb/outputs.py index a12d09a594..36d44f75d2 100644 --- a/sdk/python/pulumi_gcp/alloydb/outputs.py +++ b/sdk/python/pulumi_gcp/alloydb/outputs.py @@ -47,6 +47,7 @@ 'InstanceMachineConfig', 'InstanceNetworkConfig', 'InstanceNetworkConfigAuthorizedExternalNetwork', + 'InstanceObservabilityConfig', 'InstancePscInstanceConfig', 'InstanceQueryInsightsConfig', 'InstanceReadPoolConfig', @@ -1575,6 +1576,138 @@ def cidr_range(self) -> Optional[str]: return pulumi.get(self, "cidr_range") +@pulumi.output_type +class InstanceObservabilityConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "maxQueryStringLength": + suggest = "max_query_string_length" + elif key == "preserveComments": + suggest = "preserve_comments" + elif key == "queryPlansPerMinute": + suggest = "query_plans_per_minute" + elif key == "recordApplicationTags": + suggest = "record_application_tags" + elif key == "trackActiveQueries": + suggest = "track_active_queries" + elif key == "trackWaitEventTypes": + suggest = "track_wait_event_types" + elif key == "trackWaitEvents": + suggest = "track_wait_events" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in InstanceObservabilityConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + InstanceObservabilityConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + InstanceObservabilityConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: Optional[bool] = None, + max_query_string_length: Optional[int] = None, + preserve_comments: Optional[bool] = None, + query_plans_per_minute: Optional[int] = None, + record_application_tags: Optional[bool] = None, + track_active_queries: Optional[bool] = None, + track_wait_event_types: Optional[bool] = None, + track_wait_events: Optional[bool] = None): + """ + :param bool enabled: Observability feature status for an instance. + :param int max_query_string_length: Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + :param bool preserve_comments: Preserve comments in the query string. + :param int query_plans_per_minute: 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. + :param bool record_application_tags: Record application tags for an instance. This flag is turned "on" by default. + :param bool track_active_queries: Track actively running queries. If not set, default value is "off". + :param bool track_wait_event_types: Record wait event types during query execution for an instance. + :param bool track_wait_events: Record wait events during query execution for an instance. + """ + if enabled is not None: + pulumi.set(__self__, "enabled", enabled) + if max_query_string_length is not None: + pulumi.set(__self__, "max_query_string_length", max_query_string_length) + if preserve_comments is not None: + pulumi.set(__self__, "preserve_comments", preserve_comments) + if query_plans_per_minute is not None: + pulumi.set(__self__, "query_plans_per_minute", query_plans_per_minute) + if record_application_tags is not None: + pulumi.set(__self__, "record_application_tags", record_application_tags) + if track_active_queries is not None: + pulumi.set(__self__, "track_active_queries", track_active_queries) + if track_wait_event_types is not None: + pulumi.set(__self__, "track_wait_event_types", track_wait_event_types) + if track_wait_events is not None: + pulumi.set(__self__, "track_wait_events", track_wait_events) + + @property + @pulumi.getter + def enabled(self) -> Optional[bool]: + """ + Observability feature status for an instance. + """ + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="maxQueryStringLength") + def max_query_string_length(self) -> Optional[int]: + """ + Query string length. The default value is 10240. Any integer between 1024 and 100000 is considered valid. + """ + return pulumi.get(self, "max_query_string_length") + + @property + @pulumi.getter(name="preserveComments") + def preserve_comments(self) -> Optional[bool]: + """ + Preserve comments in the query string. + """ + return pulumi.get(self, "preserve_comments") + + @property + @pulumi.getter(name="queryPlansPerMinute") + def query_plans_per_minute(self) -> Optional[int]: + """ + 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. + """ + return pulumi.get(self, "query_plans_per_minute") + + @property + @pulumi.getter(name="recordApplicationTags") + def record_application_tags(self) -> Optional[bool]: + """ + Record application tags for an instance. This flag is turned "on" by default. + """ + return pulumi.get(self, "record_application_tags") + + @property + @pulumi.getter(name="trackActiveQueries") + def track_active_queries(self) -> Optional[bool]: + """ + Track actively running queries. If not set, default value is "off". + """ + return pulumi.get(self, "track_active_queries") + + @property + @pulumi.getter(name="trackWaitEventTypes") + def track_wait_event_types(self) -> Optional[bool]: + """ + Record wait event types during query execution for an instance. + """ + return pulumi.get(self, "track_wait_event_types") + + @property + @pulumi.getter(name="trackWaitEvents") + def track_wait_events(self) -> Optional[bool]: + """ + Record wait events during query execution for an instance. + """ + return pulumi.get(self, "track_wait_events") + + @pulumi.output_type class InstancePscInstanceConfig(dict): @staticmethod diff --git a/sdk/python/pulumi_gcp/apigee/__init__.py b/sdk/python/pulumi_gcp/apigee/__init__.py index 9a41bdb8cb..d5ede2d9ec 100644 --- a/sdk/python/pulumi_gcp/apigee/__init__.py +++ b/sdk/python/pulumi_gcp/apigee/__init__.py @@ -15,6 +15,8 @@ from .environment_iam_binding import * from .environment_iam_member import * from .environment_iam_policy import * +from .environment_keyvaluemaps import * +from .environment_keyvaluemaps_entries import * from .flowhook import * from .get_environment_iam_policy import * from .instance import * diff --git a/sdk/python/pulumi_gcp/apigee/environment_keyvaluemaps.py b/sdk/python/pulumi_gcp/apigee/environment_keyvaluemaps.py new file mode 100644 index 0000000000..05d25925f5 --- /dev/null +++ b/sdk/python/pulumi_gcp/apigee/environment_keyvaluemaps.py @@ -0,0 +1,370 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['EnvironmentKeyvaluemapsArgs', 'EnvironmentKeyvaluemaps'] + +@pulumi.input_type +class EnvironmentKeyvaluemapsArgs: + def __init__(__self__, *, + env_id: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a EnvironmentKeyvaluemaps resource. + :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}`. + + + - - - + :param pulumi.Input[str] name: Required. ID of the key value map. + """ + pulumi.set(__self__, "env_id", env_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="envId") + def env_id(self) -> pulumi.Input[str]: + """ + The Apigee environment group associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}`. + + + - - - + """ + return pulumi.get(self, "env_id") + + @env_id.setter + def env_id(self, value: pulumi.Input[str]): + pulumi.set(self, "env_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Required. ID of the key value map. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _EnvironmentKeyvaluemapsState: + def __init__(__self__, *, + env_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering EnvironmentKeyvaluemaps resources. + :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}`. + + + - - - + :param pulumi.Input[str] name: Required. ID of the key value map. + """ + if env_id is not None: + pulumi.set(__self__, "env_id", env_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="envId") + def env_id(self) -> Optional[pulumi.Input[str]]: + """ + The Apigee environment group associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}`. + + + - - - + """ + return pulumi.get(self, "env_id") + + @env_id.setter + def env_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "env_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Required. ID of the key value map. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +class EnvironmentKeyvaluemaps(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + env_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Collection of key/value string pairs. + + To get more information about EnvironmentKeyvaluemaps, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create) + * How-to Guides + * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + + ## Example Usage + + ### Apigee Environment Keyvaluemaps Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + current = gcp.organizations.get_client_config() + apigee_network = gcp.compute.Network("apigee_network", name="apigee-network") + apigee_range = gcp.compute.GlobalAddress("apigee_range", + name="apigee-range", + purpose="VPC_PEERING", + address_type="INTERNAL", + prefix_length=16, + network=apigee_network.id) + apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection", + network=apigee_network.id, + service="servicenetworking.googleapis.com", + reserved_peering_ranges=[apigee_range.name]) + apigee_org = gcp.apigee.Organization("apigee_org", + analytics_region="us-central1", + project_id=current.project, + authorized_network=apigee_network.id, + opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection])) + apigee_environment = gcp.apigee.Environment("apigee_environment", + org_id=apigee_org.id, + name="tf-test-env", + description="Apigee Environment", + display_name="Apigee Environment") + apigee_instance = gcp.apigee.Instance("apigee_instance", + name="tf-test-instance", + location="us-central1", + org_id=apigee_org.id) + apigee_instance_attachment = gcp.apigee.InstanceAttachment("apigee_instance_attachment", + instance_id=apigee_instance.id, + environment=apigee_environment.name) + apigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", + env_id=apigee_environment.id, + name="tf-test-env-kvms", + opts = pulumi.ResourceOptions(depends_on=[ + apigee_org, + apigee_environment, + apigee_instance, + apigee_instance_attachment, + ])) + ``` + + ## Import + + EnvironmentKeyvaluemaps can be imported using any of these accepted formats: + + * `{{env_id}}/keyvaluemaps/{{name}}` + + * `{{env_id}}/{{name}}` + + When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}`. + + + - - - + :param pulumi.Input[str] name: Required. ID of the key value map. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: EnvironmentKeyvaluemapsArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Collection of key/value string pairs. + + To get more information about EnvironmentKeyvaluemaps, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keyvaluemaps/create) + * How-to Guides + * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + + ## Example Usage + + ### Apigee Environment Keyvaluemaps Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + current = gcp.organizations.get_client_config() + apigee_network = gcp.compute.Network("apigee_network", name="apigee-network") + apigee_range = gcp.compute.GlobalAddress("apigee_range", + name="apigee-range", + purpose="VPC_PEERING", + address_type="INTERNAL", + prefix_length=16, + network=apigee_network.id) + apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection", + network=apigee_network.id, + service="servicenetworking.googleapis.com", + reserved_peering_ranges=[apigee_range.name]) + apigee_org = gcp.apigee.Organization("apigee_org", + analytics_region="us-central1", + project_id=current.project, + authorized_network=apigee_network.id, + opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection])) + apigee_environment = gcp.apigee.Environment("apigee_environment", + org_id=apigee_org.id, + name="tf-test-env", + description="Apigee Environment", + display_name="Apigee Environment") + apigee_instance = gcp.apigee.Instance("apigee_instance", + name="tf-test-instance", + location="us-central1", + org_id=apigee_org.id) + apigee_instance_attachment = gcp.apigee.InstanceAttachment("apigee_instance_attachment", + instance_id=apigee_instance.id, + environment=apigee_environment.name) + apigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", + env_id=apigee_environment.id, + name="tf-test-env-kvms", + opts = pulumi.ResourceOptions(depends_on=[ + apigee_org, + apigee_environment, + apigee_instance, + apigee_instance_attachment, + ])) + ``` + + ## Import + + EnvironmentKeyvaluemaps can be imported using any of these accepted formats: + + * `{{env_id}}/keyvaluemaps/{{name}}` + + * `{{env_id}}/{{name}}` + + When using the `pulumi import` command, EnvironmentKeyvaluemaps can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/keyvaluemaps/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps default {{env_id}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param EnvironmentKeyvaluemapsArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(EnvironmentKeyvaluemapsArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + env_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = EnvironmentKeyvaluemapsArgs.__new__(EnvironmentKeyvaluemapsArgs) + + if env_id is None and not opts.urn: + raise TypeError("Missing required property 'env_id'") + __props__.__dict__["env_id"] = env_id + __props__.__dict__["name"] = name + super(EnvironmentKeyvaluemaps, __self__).__init__( + 'gcp:apigee/environmentKeyvaluemaps:EnvironmentKeyvaluemaps', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + env_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None) -> 'EnvironmentKeyvaluemaps': + """ + Get an existing EnvironmentKeyvaluemaps resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] env_id: The Apigee environment group associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}`. + + + - - - + :param pulumi.Input[str] name: Required. ID of the key value map. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _EnvironmentKeyvaluemapsState.__new__(_EnvironmentKeyvaluemapsState) + + __props__.__dict__["env_id"] = env_id + __props__.__dict__["name"] = name + return EnvironmentKeyvaluemaps(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="envId") + def env_id(self) -> pulumi.Output[str]: + """ + The Apigee environment group associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}`. + + + - - - + """ + return pulumi.get(self, "env_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Required. ID of the key value map. + """ + return pulumi.get(self, "name") + diff --git a/sdk/python/pulumi_gcp/apigee/environment_keyvaluemaps_entries.py b/sdk/python/pulumi_gcp/apigee/environment_keyvaluemaps_entries.py new file mode 100644 index 0000000000..64caa442b9 --- /dev/null +++ b/sdk/python/pulumi_gcp/apigee/environment_keyvaluemaps_entries.py @@ -0,0 +1,440 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['EnvironmentKeyvaluemapsEntriesArgs', 'EnvironmentKeyvaluemapsEntries'] + +@pulumi.input_type +class EnvironmentKeyvaluemapsEntriesArgs: + def __init__(__self__, *, + env_keyvaluemap_id: pulumi.Input[str], + value: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a EnvironmentKeyvaluemapsEntries resource. + :param pulumi.Input[str] env_keyvaluemap_id: The Apigee environment keyvalumaps Id associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + + + - - - + :param pulumi.Input[str] value: Required. Data or payload that is being retrieved and associated with the unique key. + :param pulumi.Input[str] name: Required. Resource URI that can be used to identify the scope of the key value map entries. + """ + pulumi.set(__self__, "env_keyvaluemap_id", env_keyvaluemap_id) + pulumi.set(__self__, "value", value) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="envKeyvaluemapId") + def env_keyvaluemap_id(self) -> pulumi.Input[str]: + """ + The Apigee environment keyvalumaps Id associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + + + - - - + """ + return pulumi.get(self, "env_keyvaluemap_id") + + @env_keyvaluemap_id.setter + def env_keyvaluemap_id(self, value: pulumi.Input[str]): + pulumi.set(self, "env_keyvaluemap_id", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[str]: + """ + Required. Data or payload that is being retrieved and associated with the unique key. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[str]): + pulumi.set(self, "value", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Required. Resource URI that can be used to identify the scope of the key value map entries. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _EnvironmentKeyvaluemapsEntriesState: + def __init__(__self__, *, + env_keyvaluemap_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering EnvironmentKeyvaluemapsEntries resources. + :param pulumi.Input[str] env_keyvaluemap_id: The Apigee environment keyvalumaps Id associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + + + - - - + :param pulumi.Input[str] name: Required. Resource URI that can be used to identify the scope of the key value map entries. + :param pulumi.Input[str] value: Required. Data or payload that is being retrieved and associated with the unique key. + """ + if env_keyvaluemap_id is not None: + pulumi.set(__self__, "env_keyvaluemap_id", env_keyvaluemap_id) + if name is not None: + pulumi.set(__self__, "name", name) + if value is not None: + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter(name="envKeyvaluemapId") + def env_keyvaluemap_id(self) -> Optional[pulumi.Input[str]]: + """ + The Apigee environment keyvalumaps Id associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + + + - - - + """ + return pulumi.get(self, "env_keyvaluemap_id") + + @env_keyvaluemap_id.setter + def env_keyvaluemap_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "env_keyvaluemap_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Required. Resource URI that can be used to identify the scope of the key value map entries. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: + """ + Required. Data or payload that is being retrieved and associated with the unique key. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "value", value) + + +class EnvironmentKeyvaluemapsEntries(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + env_keyvaluemap_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Creates key value entries in a key value map scoped to an environment. + + To get more information about EnvironmentKeyvaluemapsEntries, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.keyvaluemaps.entries/create) + * How-to Guides + * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + + ## Example Usage + + ### Apigee Environment Keyvaluemaps Entries Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + current = gcp.organizations.get_client_config() + apigee_network = gcp.compute.Network("apigee_network", name="apigee-network") + apigee_range = gcp.compute.GlobalAddress("apigee_range", + name="apigee-range", + purpose="VPC_PEERING", + address_type="INTERNAL", + prefix_length=16, + network=apigee_network.id) + apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection", + network=apigee_network.id, + service="servicenetworking.googleapis.com", + reserved_peering_ranges=[apigee_range.name]) + apigee_org = gcp.apigee.Organization("apigee_org", + analytics_region="us-central1", + project_id=current.project, + authorized_network=apigee_network.id, + opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection])) + apigee_environment = gcp.apigee.Environment("apigee_environment", + org_id=apigee_org.id, + name="tf-test-env", + description="Apigee Environment", + display_name="Apigee Environment") + apigee_instance = gcp.apigee.Instance("apigee_instance", + name="tf-test-instance", + location="us-central1", + org_id=apigee_org.id) + apigee_instance_attachment = gcp.apigee.InstanceAttachment("apigee_instance_attachment", + instance_id=apigee_instance.id, + environment=apigee_environment.name) + apigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", + env_id=create_apigee_environment["id"], + name="tf-test-env-kvms", + opts = pulumi.ResourceOptions(depends_on=[ + apigee_org, + apigee_environment, + apigee_instance, + apigee_instance_attachment, + ])) + apigee_environment_keyvaluemaps_entries = gcp.apigee.EnvironmentKeyvaluemapsEntries("apigee_environment_keyvaluemaps_entries", + env_keyvaluemap_id=apigee_environment_keyvaluemaps.id, + name="testName", + value="testValue", + opts = pulumi.ResourceOptions(depends_on=[ + apigee_org, + apigee_environment, + apigee_instance, + apigee_instance_attachment, + apigee_environment_keyvaluemaps, + ])) + ``` + + ## Import + + EnvironmentKeyvaluemapsEntries can be imported using any of these accepted formats: + + * `{{env_keyvaluemap_id}}/entries/{{name}}` + + * `{{env_keyvaluemap_id}}/{{name}}` + + When using the `pulumi import` command, EnvironmentKeyvaluemapsEntries can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/entries/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] env_keyvaluemap_id: The Apigee environment keyvalumaps Id associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + + + - - - + :param pulumi.Input[str] name: Required. Resource URI that can be used to identify the scope of the key value map entries. + :param pulumi.Input[str] value: Required. Data or payload that is being retrieved and associated with the unique key. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: EnvironmentKeyvaluemapsEntriesArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Creates key value entries in a key value map scoped to an environment. + + To get more information about EnvironmentKeyvaluemapsEntries, see: + + * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.keyvaluemaps.entries/create) + * How-to Guides + * [Using key value maps](https://cloud.google.com/apigee/docs/api-platform/cache/key-value-maps) + + ## Example Usage + + ### Apigee Environment Keyvaluemaps Entries Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + current = gcp.organizations.get_client_config() + apigee_network = gcp.compute.Network("apigee_network", name="apigee-network") + apigee_range = gcp.compute.GlobalAddress("apigee_range", + name="apigee-range", + purpose="VPC_PEERING", + address_type="INTERNAL", + prefix_length=16, + network=apigee_network.id) + apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection", + network=apigee_network.id, + service="servicenetworking.googleapis.com", + reserved_peering_ranges=[apigee_range.name]) + apigee_org = gcp.apigee.Organization("apigee_org", + analytics_region="us-central1", + project_id=current.project, + authorized_network=apigee_network.id, + opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection])) + apigee_environment = gcp.apigee.Environment("apigee_environment", + org_id=apigee_org.id, + name="tf-test-env", + description="Apigee Environment", + display_name="Apigee Environment") + apigee_instance = gcp.apigee.Instance("apigee_instance", + name="tf-test-instance", + location="us-central1", + org_id=apigee_org.id) + apigee_instance_attachment = gcp.apigee.InstanceAttachment("apigee_instance_attachment", + instance_id=apigee_instance.id, + environment=apigee_environment.name) + apigee_environment_keyvaluemaps = gcp.apigee.EnvironmentKeyvaluemaps("apigee_environment_keyvaluemaps", + env_id=create_apigee_environment["id"], + name="tf-test-env-kvms", + opts = pulumi.ResourceOptions(depends_on=[ + apigee_org, + apigee_environment, + apigee_instance, + apigee_instance_attachment, + ])) + apigee_environment_keyvaluemaps_entries = gcp.apigee.EnvironmentKeyvaluemapsEntries("apigee_environment_keyvaluemaps_entries", + env_keyvaluemap_id=apigee_environment_keyvaluemaps.id, + name="testName", + value="testValue", + opts = pulumi.ResourceOptions(depends_on=[ + apigee_org, + apigee_environment, + apigee_instance, + apigee_instance_attachment, + apigee_environment_keyvaluemaps, + ])) + ``` + + ## Import + + EnvironmentKeyvaluemapsEntries can be imported using any of these accepted formats: + + * `{{env_keyvaluemap_id}}/entries/{{name}}` + + * `{{env_keyvaluemap_id}}/{{name}}` + + When using the `pulumi import` command, EnvironmentKeyvaluemapsEntries can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/entries/{{name}} + ``` + + ```sh + $ pulumi import gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries default {{env_keyvaluemap_id}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param EnvironmentKeyvaluemapsEntriesArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(EnvironmentKeyvaluemapsEntriesArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + env_keyvaluemap_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = EnvironmentKeyvaluemapsEntriesArgs.__new__(EnvironmentKeyvaluemapsEntriesArgs) + + if env_keyvaluemap_id is None and not opts.urn: + raise TypeError("Missing required property 'env_keyvaluemap_id'") + __props__.__dict__["env_keyvaluemap_id"] = env_keyvaluemap_id + __props__.__dict__["name"] = name + if value is None and not opts.urn: + raise TypeError("Missing required property 'value'") + __props__.__dict__["value"] = value + super(EnvironmentKeyvaluemapsEntries, __self__).__init__( + 'gcp:apigee/environmentKeyvaluemapsEntries:EnvironmentKeyvaluemapsEntries', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + env_keyvaluemap_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None) -> 'EnvironmentKeyvaluemapsEntries': + """ + Get an existing EnvironmentKeyvaluemapsEntries resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] env_keyvaluemap_id: The Apigee environment keyvalumaps Id associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + + + - - - + :param pulumi.Input[str] name: Required. Resource URI that can be used to identify the scope of the key value map entries. + :param pulumi.Input[str] value: Required. Data or payload that is being retrieved and associated with the unique key. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _EnvironmentKeyvaluemapsEntriesState.__new__(_EnvironmentKeyvaluemapsEntriesState) + + __props__.__dict__["env_keyvaluemap_id"] = env_keyvaluemap_id + __props__.__dict__["name"] = name + __props__.__dict__["value"] = value + return EnvironmentKeyvaluemapsEntries(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="envKeyvaluemapId") + def env_keyvaluemap_id(self) -> pulumi.Output[str]: + """ + The Apigee environment keyvalumaps Id associated with the Apigee environment, + in the format `organizations/{{org_name}}/environments/{{env_name}}/keyvaluemaps/{{keyvaluemap_name}}`. + + + - - - + """ + return pulumi.get(self, "env_keyvaluemap_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Required. Resource URI that can be used to identify the scope of the key value map entries. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def value(self) -> pulumi.Output[str]: + """ + Required. Data or payload that is being retrieved and associated with the unique key. + """ + return pulumi.get(self, "value") + diff --git a/sdk/python/pulumi_gcp/apigee/instance.py b/sdk/python/pulumi_gcp/apigee/instance.py index d9cb6949b8..63162f4877 100644 --- a/sdk/python/pulumi_gcp/apigee/instance.py +++ b/sdk/python/pulumi_gcp/apigee/instance.py @@ -572,7 +572,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) apigee_org = gcp.apigee.Organization("apigee_org", analytics_region="us-central1", display_name="apigee-org", @@ -771,7 +771,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) apigee_org = gcp.apigee.Organization("apigee_org", analytics_region="us-central1", display_name="apigee-org", diff --git a/sdk/python/pulumi_gcp/apigee/nat_address.py b/sdk/python/pulumi_gcp/apigee/nat_address.py index 10abb5d84d..2ac4c47052 100644 --- a/sdk/python/pulumi_gcp/apigee/nat_address.py +++ b/sdk/python/pulumi_gcp/apigee/nat_address.py @@ -193,7 +193,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) apigee_org = gcp.apigee.Organization("apigee_org", analytics_region="us-central1", display_name="apigee-org", @@ -292,7 +292,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) apigee_org = gcp.apigee.Organization("apigee_org", analytics_region="us-central1", display_name="apigee-org", diff --git a/sdk/python/pulumi_gcp/apigee/organization.py b/sdk/python/pulumi_gcp/apigee/organization.py index 4a2b75dfa0..0c4bc7ee98 100644 --- a/sdk/python/pulumi_gcp/apigee/organization.py +++ b/sdk/python/pulumi_gcp/apigee/organization.py @@ -739,7 +739,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) org = gcp.apigee.Organization("org", analytics_region="us-central1", display_name="apigee-org", @@ -771,7 +771,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) org = gcp.apigee.Organization("org", analytics_region="us-central1", display_name="apigee-org", @@ -924,7 +924,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) org = gcp.apigee.Organization("org", analytics_region="us-central1", display_name="apigee-org", @@ -956,7 +956,7 @@ def __init__(__self__, apigee_sa_keyuser = gcp.kms.CryptoKeyIAMMember("apigee_sa_keyuser", crypto_key_id=apigee_key.id, role="roles/cloudkms.cryptoKeyEncrypterDecrypter", - member=apigee_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=apigee_sa.member) org = gcp.apigee.Organization("org", analytics_region="us-central1", display_name="apigee-org", diff --git a/sdk/python/pulumi_gcp/apphub/service_project_attachment.py b/sdk/python/pulumi_gcp/apphub/service_project_attachment.py index 881fe6acb7..f95a872831 100644 --- a/sdk/python/pulumi_gcp/apphub/service_project_attachment.py +++ b/sdk/python/pulumi_gcp/apphub/service_project_attachment.py @@ -32,7 +32,7 @@ def __init__(__self__, *, If it is not provided, the provider project is used. :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\" or \\"projects/123\\". As input, project name with either project id or number - are accepted. As output, this field will contain project number. " + are accepted. As output, this field will contain project number." """ pulumi.set(__self__, "service_project_attachment_id", service_project_attachment_id) if project is not None: @@ -74,7 +74,7 @@ def service_project(self) -> Optional[pulumi.Input[str]]: """ "Immutable. Service project name in the format: \\"projects/abc\\" or \\"projects/123\\". As input, project name with either project id or number - are accepted. As output, this field will contain project number. " + are accepted. As output, this field will contain project number." """ return pulumi.get(self, "service_project") @@ -96,12 +96,12 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering ServiceProjectAttachment resources. :param pulumi.Input[str] create_time: Output only. Create time. - :param pulumi.Input[str] name: "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" " + :param pulumi.Input[str] name: "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\"" :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\" or \\"projects/123\\". As input, project name with either project id or number - are accepted. As output, this field will contain project number. " + are accepted. As output, this field will contain project number." :param pulumi.Input[str] service_project_attachment_id: Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" @@ -140,7 +140,7 @@ def create_time(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" " + "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\"" """ return pulumi.get(self, "name") @@ -167,7 +167,7 @@ def service_project(self) -> Optional[pulumi.Input[str]]: """ "Immutable. Service project name in the format: \\"projects/abc\\" or \\"projects/123\\". As input, project name with either project id or number - are accepted. As output, this field will contain project number. " + are accepted. As output, this field will contain project number." """ return pulumi.get(self, "service_project") @@ -294,7 +294,7 @@ def __init__(__self__, If it is not provided, the provider project is used. :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\" or \\"projects/123\\". As input, project name with either project id or number - are accepted. As output, this field will contain project number. " + are accepted. As output, this field will contain project number." :param pulumi.Input[str] service_project_attachment_id: Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" @@ -431,12 +431,12 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] create_time: Output only. Create time. - :param pulumi.Input[str] name: "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" " + :param pulumi.Input[str] name: "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\"" :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\" or \\"projects/123\\". As input, project name with either project id or number - are accepted. As output, this field will contain project number. " + are accepted. As output, this field will contain project number." :param pulumi.Input[str] service_project_attachment_id: Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}" @@ -469,7 +469,7 @@ def create_time(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" " + "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\"" """ return pulumi.get(self, "name") @@ -488,7 +488,7 @@ def service_project(self) -> pulumi.Output[Optional[str]]: """ "Immutable. Service project name in the format: \\"projects/abc\\" or \\"projects/123\\". As input, project name with either project id or number - are accepted. As output, this field will contain project number. " + are accepted. As output, this field will contain project number." """ return pulumi.get(self, "service_project") diff --git a/sdk/python/pulumi_gcp/bigquery/_inputs.py b/sdk/python/pulumi_gcp/bigquery/_inputs.py index a8edec6cbf..6298858ec8 100644 --- a/sdk/python/pulumi_gcp/bigquery/_inputs.py +++ b/sdk/python/pulumi_gcp/bigquery/_inputs.py @@ -15,6 +15,8 @@ from .. import _utilities __all__ = [ + 'AppProfileDataBoostIsolationReadOnlyArgs', + 'AppProfileDataBoostIsolationReadOnlyArgsDict', 'AppProfileSingleClusterRoutingArgs', 'AppProfileSingleClusterRoutingArgsDict', 'AppProfileStandardIsolationArgs', @@ -175,6 +177,40 @@ MYPY = False +if not MYPY: + class AppProfileDataBoostIsolationReadOnlyArgsDict(TypedDict): + compute_billing_owner: pulumi.Input[str] + """ + The Compute Billing Owner for this Data Boost App Profile. + Possible values are: `HOST_PAYS`. + """ +elif False: + AppProfileDataBoostIsolationReadOnlyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class AppProfileDataBoostIsolationReadOnlyArgs: + def __init__(__self__, *, + compute_billing_owner: pulumi.Input[str]): + """ + :param pulumi.Input[str] compute_billing_owner: The Compute Billing Owner for this Data Boost App Profile. + Possible values are: `HOST_PAYS`. + """ + pulumi.set(__self__, "compute_billing_owner", compute_billing_owner) + + @property + @pulumi.getter(name="computeBillingOwner") + def compute_billing_owner(self) -> pulumi.Input[str]: + """ + The Compute Billing Owner for this Data Boost App Profile. + Possible values are: `HOST_PAYS`. + """ + return pulumi.get(self, "compute_billing_owner") + + @compute_billing_owner.setter + def compute_billing_owner(self, value: pulumi.Input[str]): + pulumi.set(self, "compute_billing_owner", value) + + if not MYPY: class AppProfileSingleClusterRoutingArgsDict(TypedDict): cluster_id: pulumi.Input[str] diff --git a/sdk/python/pulumi_gcp/bigquery/app_profile.py b/sdk/python/pulumi_gcp/bigquery/app_profile.py index 5c51bfe890..46caa6a7cf 100644 --- a/sdk/python/pulumi_gcp/bigquery/app_profile.py +++ b/sdk/python/pulumi_gcp/bigquery/app_profile.py @@ -22,6 +22,7 @@ class AppProfileArgs: def __init__(__self__, *, app_profile_id: pulumi.Input[str], + data_boost_isolation_read_only: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']] = None, description: Optional[pulumi.Input[str]] = None, ignore_warnings: Optional[pulumi.Input[bool]] = None, instance: Optional[pulumi.Input[str]] = None, @@ -36,6 +37,8 @@ def __init__(__self__, *, - - - + :param pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs'] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature. + Structure is documented below. :param pulumi.Input[str] description: Long form description of the use case for this app profile. :param pulumi.Input[bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile. :param pulumi.Input[str] instance: The name of the instance to create the app profile within. @@ -52,6 +55,8 @@ def __init__(__self__, *, Structure is documented below. """ pulumi.set(__self__, "app_profile_id", app_profile_id) + if data_boost_isolation_read_only is not None: + pulumi.set(__self__, "data_boost_isolation_read_only", data_boost_isolation_read_only) if description is not None: pulumi.set(__self__, "description", description) if ignore_warnings is not None: @@ -84,6 +89,19 @@ def app_profile_id(self) -> pulumi.Input[str]: def app_profile_id(self, value: pulumi.Input[str]): pulumi.set(self, "app_profile_id", value) + @property + @pulumi.getter(name="dataBoostIsolationReadOnly") + def data_boost_isolation_read_only(self) -> Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]: + """ + Specifies that this app profile is intended for read-only usage via the Data Boost feature. + Structure is documented below. + """ + return pulumi.get(self, "data_boost_isolation_read_only") + + @data_boost_isolation_read_only.setter + def data_boost_isolation_read_only(self, value: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]): + pulumi.set(self, "data_boost_isolation_read_only", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -191,6 +209,7 @@ def standard_isolation(self, value: Optional[pulumi.Input['AppProfileStandardIso class _AppProfileState: def __init__(__self__, *, app_profile_id: Optional[pulumi.Input[str]] = None, + data_boost_isolation_read_only: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']] = None, description: Optional[pulumi.Input[str]] = None, ignore_warnings: Optional[pulumi.Input[bool]] = None, instance: Optional[pulumi.Input[str]] = None, @@ -206,6 +225,8 @@ def __init__(__self__, *, - - - + :param pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs'] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature. + Structure is documented below. :param pulumi.Input[str] description: Long form description of the use case for this app profile. :param pulumi.Input[bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile. :param pulumi.Input[str] instance: The name of the instance to create the app profile within. @@ -224,6 +245,8 @@ def __init__(__self__, *, """ if app_profile_id is not None: pulumi.set(__self__, "app_profile_id", app_profile_id) + if data_boost_isolation_read_only is not None: + pulumi.set(__self__, "data_boost_isolation_read_only", data_boost_isolation_read_only) if description is not None: pulumi.set(__self__, "description", description) if ignore_warnings is not None: @@ -258,6 +281,19 @@ def app_profile_id(self) -> Optional[pulumi.Input[str]]: def app_profile_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "app_profile_id", value) + @property + @pulumi.getter(name="dataBoostIsolationReadOnly") + def data_boost_isolation_read_only(self) -> Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]: + """ + Specifies that this app profile is intended for read-only usage via the Data Boost feature. + Structure is documented below. + """ + return pulumi.get(self, "data_boost_isolation_read_only") + + @data_boost_isolation_read_only.setter + def data_boost_isolation_read_only(self, value: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]): + pulumi.set(self, "data_boost_isolation_read_only", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -379,6 +415,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, app_profile_id: Optional[pulumi.Input[str]] = None, + data_boost_isolation_read_only: Optional[pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, ignore_warnings: Optional[pulumi.Input[bool]] = None, instance: Optional[pulumi.Input[str]] = None, @@ -553,6 +590,8 @@ def __init__(__self__, - - - + :param pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature. + Structure is documented below. :param pulumi.Input[str] description: Long form description of the use case for this app profile. :param pulumi.Input[bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile. :param pulumi.Input[str] instance: The name of the instance to create the app profile within. @@ -749,6 +788,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, app_profile_id: Optional[pulumi.Input[str]] = None, + data_boost_isolation_read_only: Optional[pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, ignore_warnings: Optional[pulumi.Input[bool]] = None, instance: Optional[pulumi.Input[str]] = None, @@ -769,6 +809,7 @@ def _internal_init(__self__, if app_profile_id is None and not opts.urn: raise TypeError("Missing required property 'app_profile_id'") __props__.__dict__["app_profile_id"] = app_profile_id + __props__.__dict__["data_boost_isolation_read_only"] = data_boost_isolation_read_only __props__.__dict__["description"] = description __props__.__dict__["ignore_warnings"] = ignore_warnings __props__.__dict__["instance"] = instance @@ -789,6 +830,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, app_profile_id: Optional[pulumi.Input[str]] = None, + data_boost_isolation_read_only: Optional[pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']]] = None, description: Optional[pulumi.Input[str]] = None, ignore_warnings: Optional[pulumi.Input[bool]] = None, instance: Optional[pulumi.Input[str]] = None, @@ -809,6 +851,8 @@ def get(resource_name: str, - - - + :param pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature. + Structure is documented below. :param pulumi.Input[str] description: Long form description of the use case for this app profile. :param pulumi.Input[bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile. :param pulumi.Input[str] instance: The name of the instance to create the app profile within. @@ -830,6 +874,7 @@ def get(resource_name: str, __props__ = _AppProfileState.__new__(_AppProfileState) __props__.__dict__["app_profile_id"] = app_profile_id + __props__.__dict__["data_boost_isolation_read_only"] = data_boost_isolation_read_only __props__.__dict__["description"] = description __props__.__dict__["ignore_warnings"] = ignore_warnings __props__.__dict__["instance"] = instance @@ -852,6 +897,15 @@ def app_profile_id(self) -> pulumi.Output[str]: """ return pulumi.get(self, "app_profile_id") + @property + @pulumi.getter(name="dataBoostIsolationReadOnly") + def data_boost_isolation_read_only(self) -> pulumi.Output[Optional['outputs.AppProfileDataBoostIsolationReadOnly']]: + """ + Specifies that this app profile is intended for read-only usage via the Data Boost feature. + Structure is documented below. + """ + return pulumi.get(self, "data_boost_isolation_read_only") + @property @pulumi.getter def description(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_gcp/bigquery/outputs.py b/sdk/python/pulumi_gcp/bigquery/outputs.py index 7f1755fe4b..bf6fa8707d 100644 --- a/sdk/python/pulumi_gcp/bigquery/outputs.py +++ b/sdk/python/pulumi_gcp/bigquery/outputs.py @@ -16,6 +16,7 @@ from . import outputs __all__ = [ + 'AppProfileDataBoostIsolationReadOnly', 'AppProfileSingleClusterRouting', 'AppProfileStandardIsolation', 'BiReservationPreferredTable', @@ -103,6 +104,43 @@ 'GetDatasetExternalDatasetReferenceResult', ] +@pulumi.output_type +class AppProfileDataBoostIsolationReadOnly(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "computeBillingOwner": + suggest = "compute_billing_owner" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AppProfileDataBoostIsolationReadOnly. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AppProfileDataBoostIsolationReadOnly.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AppProfileDataBoostIsolationReadOnly.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + compute_billing_owner: str): + """ + :param str compute_billing_owner: The Compute Billing Owner for this Data Boost App Profile. + Possible values are: `HOST_PAYS`. + """ + pulumi.set(__self__, "compute_billing_owner", compute_billing_owner) + + @property + @pulumi.getter(name="computeBillingOwner") + def compute_billing_owner(self) -> str: + """ + The Compute Billing Owner for this Data Boost App Profile. + Possible values are: `HOST_PAYS`. + """ + return pulumi.get(self, "compute_billing_owner") + + @pulumi.output_type class AppProfileSingleClusterRouting(dict): @staticmethod diff --git a/sdk/python/pulumi_gcp/bigquery/reservation.py b/sdk/python/pulumi_gcp/bigquery/reservation.py index 233e150bc1..a47fb54d18 100644 --- a/sdk/python/pulumi_gcp/bigquery/reservation.py +++ b/sdk/python/pulumi_gcp/bigquery/reservation.py @@ -43,8 +43,11 @@ def __init__(__self__, *, capacity specified above at most. :param pulumi.Input[str] location: The geographic location where the transfer config should reside. Examples: US, EU, asia-northeast1. The default value is US. - :param pulumi.Input[bool] multi_region_auxiliary: Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + :param pulumi.Input[bool] multi_region_auxiliary: (Optional, Deprecated) + Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + + > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. :param pulumi.Input[str] name: The name of the reservation. This field must only contain alphanumeric characters or dash. @@ -63,6 +66,9 @@ def __init__(__self__, *, pulumi.set(__self__, "ignore_idle_slots", ignore_idle_slots) if location is not None: pulumi.set(__self__, "location", location) + if multi_region_auxiliary is not None: + warnings.warn("""`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.""", DeprecationWarning) + pulumi.log.warn("""multi_region_auxiliary is deprecated: `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.""") if multi_region_auxiliary is not None: pulumi.set(__self__, "multi_region_auxiliary", multi_region_auxiliary) if name is not None: @@ -149,10 +155,14 @@ def location(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="multiRegionAuxiliary") + @_utilities.deprecated("""`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.""") def multi_region_auxiliary(self) -> Optional[pulumi.Input[bool]]: """ + (Optional, Deprecated) Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + + > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. """ return pulumi.get(self, "multi_region_auxiliary") @@ -212,8 +222,11 @@ def __init__(__self__, *, capacity specified above at most. :param pulumi.Input[str] location: The geographic location where the transfer config should reside. Examples: US, EU, asia-northeast1. The default value is US. - :param pulumi.Input[bool] multi_region_auxiliary: Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + :param pulumi.Input[bool] multi_region_auxiliary: (Optional, Deprecated) + Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + + > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. :param pulumi.Input[str] name: The name of the reservation. This field must only contain alphanumeric characters or dash. @@ -233,6 +246,9 @@ def __init__(__self__, *, pulumi.set(__self__, "ignore_idle_slots", ignore_idle_slots) if location is not None: pulumi.set(__self__, "location", location) + if multi_region_auxiliary is not None: + warnings.warn("""`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.""", DeprecationWarning) + pulumi.log.warn("""multi_region_auxiliary is deprecated: `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.""") if multi_region_auxiliary is not None: pulumi.set(__self__, "multi_region_auxiliary", multi_region_auxiliary) if name is not None: @@ -308,10 +324,14 @@ def location(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="multiRegionAuxiliary") + @_utilities.deprecated("""`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.""") def multi_region_auxiliary(self) -> Optional[pulumi.Input[bool]]: """ + (Optional, Deprecated) Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + + > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. """ return pulumi.get(self, "multi_region_auxiliary") @@ -440,8 +460,11 @@ def __init__(__self__, capacity specified above at most. :param pulumi.Input[str] location: The geographic location where the transfer config should reside. Examples: US, EU, asia-northeast1. The default value is US. - :param pulumi.Input[bool] multi_region_auxiliary: Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + :param pulumi.Input[bool] multi_region_auxiliary: (Optional, Deprecated) + Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + + > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. :param pulumi.Input[str] name: The name of the reservation. This field must only contain alphanumeric characters or dash. @@ -589,8 +612,11 @@ def get(resource_name: str, capacity specified above at most. :param pulumi.Input[str] location: The geographic location where the transfer config should reside. Examples: US, EU, asia-northeast1. The default value is US. - :param pulumi.Input[bool] multi_region_auxiliary: Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). + :param pulumi.Input[bool] multi_region_auxiliary: (Optional, Deprecated) + Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + + > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. :param pulumi.Input[str] name: The name of the reservation. This field must only contain alphanumeric characters or dash. @@ -661,10 +687,14 @@ def location(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="multiRegionAuxiliary") + @_utilities.deprecated("""`multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API.""") def multi_region_auxiliary(self) -> pulumi.Output[Optional[bool]]: """ + (Optional, Deprecated) Applicable only for reservations located within one of the BigQuery multi-regions (US or EU). If set to true, this reservation is placed in the organization's secondary region which is designated for disaster recovery purposes. If false, this reservation is placed in the organization's default region. + + > **Warning:** `multi_region_auxiliary` is deprecated and will be removed in a future major release. This field is no longer supported by the BigQuery Reservation API. """ return pulumi.get(self, "multi_region_auxiliary") diff --git a/sdk/python/pulumi_gcp/bigquery/table.py b/sdk/python/pulumi_gcp/bigquery/table.py index ed8dce5865..570b60ccbc 100644 --- a/sdk/python/pulumi_gcp/bigquery/table.py +++ b/sdk/python/pulumi_gcp/bigquery/table.py @@ -49,8 +49,13 @@ def __init__(__self__, *, Changing this forces a new resource to be created. :param pulumi.Input[str] table_id: A unique ID for the resource. Changing this forces a new resource to be created. - :param pulumi.Input[bool] allow_resource_tags_on_deletion: This field is in beta. If set to true, it allows table deletion when there - are still resource tags attached. The default value is false. + :param pulumi.Input[bool] allow_resource_tags_on_deletion: If set to true, it allows table + deletion when there are still resource tags attached. The default value is + false. + + ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + removed in a future major release. The default behavior will be allowing + the presence of resource tags on deletion after the next major release. :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order. @@ -86,7 +91,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] require_partition_filter: If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: This field is in beta. The tags attached to this table. Tag keys are + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is @@ -105,6 +110,9 @@ def __init__(__self__, *, """ pulumi.set(__self__, "dataset_id", dataset_id) pulumi.set(__self__, "table_id", table_id) + if allow_resource_tags_on_deletion is not None: + warnings.warn("""This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release.""", DeprecationWarning) + pulumi.log.warn("""allow_resource_tags_on_deletion is deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release.""") if allow_resource_tags_on_deletion is not None: pulumi.set(__self__, "allow_resource_tags_on_deletion", allow_resource_tags_on_deletion) if clusterings is not None: @@ -174,10 +182,16 @@ def table_id(self, value: pulumi.Input[str]): @property @pulumi.getter(name="allowResourceTagsOnDeletion") + @_utilities.deprecated("""This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release.""") def allow_resource_tags_on_deletion(self) -> Optional[pulumi.Input[bool]]: """ - This field is in beta. If set to true, it allows table deletion when there - are still resource tags attached. The default value is false. + If set to true, it allows table + deletion when there are still resource tags attached. The default value is + false. + + ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + removed in a future major release. The default behavior will be allowing + the presence of resource tags on deletion after the next major release. """ return pulumi.get(self, "allow_resource_tags_on_deletion") @@ -367,7 +381,7 @@ def require_partition_filter(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="resourceTags") def resource_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - This field is in beta. The tags attached to this table. Tag keys are + The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is @@ -484,8 +498,13 @@ def __init__(__self__, *, view: Optional[pulumi.Input['TableViewArgs']] = None): """ Input properties used for looking up and filtering Table resources. - :param pulumi.Input[bool] allow_resource_tags_on_deletion: This field is in beta. If set to true, it allows table deletion when there - are still resource tags attached. The default value is false. + :param pulumi.Input[bool] allow_resource_tags_on_deletion: If set to true, it allows table + deletion when there are still resource tags attached. The default value is + false. + + ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + removed in a future major release. The default behavior will be allowing + the presence of resource tags on deletion after the next major release. :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order. @@ -547,7 +566,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] require_partition_filter: If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: This field is in beta. The tags attached to this table. Tag keys are + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is @@ -568,6 +587,9 @@ def __init__(__self__, *, :param pulumi.Input['TableViewArgs'] view: If specified, configures this table as a view. Structure is documented below. """ + if allow_resource_tags_on_deletion is not None: + warnings.warn("""This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release.""", DeprecationWarning) + pulumi.log.warn("""allow_resource_tags_on_deletion is deprecated: This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release.""") if allow_resource_tags_on_deletion is not None: pulumi.set(__self__, "allow_resource_tags_on_deletion", allow_resource_tags_on_deletion) if clusterings is not None: @@ -637,10 +659,16 @@ def __init__(__self__, *, @property @pulumi.getter(name="allowResourceTagsOnDeletion") + @_utilities.deprecated("""This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release.""") def allow_resource_tags_on_deletion(self) -> Optional[pulumi.Input[bool]]: """ - This field is in beta. If set to true, it allows table deletion when there - are still resource tags attached. The default value is false. + If set to true, it allows table + deletion when there are still resource tags attached. The default value is + false. + + ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + removed in a future major release. The default behavior will be allowing + the presence of resource tags on deletion after the next major release. """ return pulumi.get(self, "allow_resource_tags_on_deletion") @@ -966,7 +994,7 @@ def require_partition_filter(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="resourceTags") def resource_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - This field is in beta. The tags attached to this table. Tag keys are + The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is @@ -1197,8 +1225,13 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[bool] allow_resource_tags_on_deletion: This field is in beta. If set to true, it allows table deletion when there - are still resource tags attached. The default value is false. + :param pulumi.Input[bool] allow_resource_tags_on_deletion: If set to true, it allows table + deletion when there are still resource tags attached. The default value is + false. + + ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + removed in a future major release. The default behavior will be allowing + the presence of resource tags on deletion after the next major release. :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order. @@ -1236,7 +1269,7 @@ def __init__(__self__, :param pulumi.Input[bool] require_partition_filter: If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: This field is in beta. The tags attached to this table. Tag keys are + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is @@ -1481,8 +1514,13 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[bool] allow_resource_tags_on_deletion: This field is in beta. If set to true, it allows table deletion when there - are still resource tags attached. The default value is false. + :param pulumi.Input[bool] allow_resource_tags_on_deletion: If set to true, it allows table + deletion when there are still resource tags attached. The default value is + false. + + ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + removed in a future major release. The default behavior will be allowing + the presence of resource tags on deletion after the next major release. :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order. @@ -1544,7 +1582,7 @@ def get(resource_name: str, :param pulumi.Input[bool] require_partition_filter: If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: This field is in beta. The tags attached to this table. Tag keys are + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is @@ -1606,10 +1644,16 @@ def get(resource_name: str, @property @pulumi.getter(name="allowResourceTagsOnDeletion") + @_utilities.deprecated("""This field is deprecated and will be removed in a future major release. The default behavior will be allowing the presence of resource tags on deletion after the next major release.""") def allow_resource_tags_on_deletion(self) -> pulumi.Output[Optional[bool]]: """ - This field is in beta. If set to true, it allows table deletion when there - are still resource tags attached. The default value is false. + If set to true, it allows table + deletion when there are still resource tags attached. The default value is + false. + + ~>**Warning:** `allow_resource_tags_on_deletion` is deprecated and will be + removed in a future major release. The default behavior will be allowing + the presence of resource tags on deletion after the next major release. """ return pulumi.get(self, "allow_resource_tags_on_deletion") @@ -1839,7 +1883,7 @@ def require_partition_filter(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="resourceTags") def resource_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - This field is in beta. The tags attached to this table. Tag keys are + The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is diff --git a/sdk/python/pulumi_gcp/bigtable/table.py b/sdk/python/pulumi_gcp/bigtable/table.py index 9096c4a649..f5bb2dc427 100644 --- a/sdk/python/pulumi_gcp/bigtable/table.py +++ b/sdk/python/pulumi_gcp/bigtable/table.py @@ -32,11 +32,10 @@ def __init__(__self__, *, """ The set of arguments for constructing a Table resource. :param pulumi.Input[str] instance_name: The name of the Bigtable instance. - :param pulumi.Input['TableAutomatedBackupPolicyArgs'] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - Retention Period and Frequency to 0. - :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + :param pulumi.Input['TableAutomatedBackupPolicyArgs'] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. ----- + :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. :param pulumi.Input[Sequence[pulumi.Input['TableColumnFamilyArgs']]] column_families: A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. :param pulumi.Input[str] deletion_protection: A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED. :param pulumi.Input[str] name: The name of the table. Must be 1-50 characters and must only contain hyphens, underscores, periods, letters and numbers. @@ -78,8 +77,9 @@ def instance_name(self, value: pulumi.Input[str]): @pulumi.getter(name="automatedBackupPolicy") def automated_backup_policy(self) -> Optional[pulumi.Input['TableAutomatedBackupPolicyArgs']]: """ - Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - Retention Period and Frequency to 0. + Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + + ----- """ return pulumi.get(self, "automated_backup_policy") @@ -92,8 +92,6 @@ def automated_backup_policy(self, value: Optional[pulumi.Input['TableAutomatedBa def change_stream_retention(self) -> Optional[pulumi.Input[str]]: """ Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - - ----- """ return pulumi.get(self, "change_stream_retention") @@ -178,11 +176,10 @@ def __init__(__self__, *, split_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering Table resources. - :param pulumi.Input['TableAutomatedBackupPolicyArgs'] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - Retention Period and Frequency to 0. - :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + :param pulumi.Input['TableAutomatedBackupPolicyArgs'] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. ----- + :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. :param pulumi.Input[Sequence[pulumi.Input['TableColumnFamilyArgs']]] column_families: A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. :param pulumi.Input[str] deletion_protection: A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED. :param pulumi.Input[str] instance_name: The name of the Bigtable instance. @@ -214,8 +211,9 @@ def __init__(__self__, *, @pulumi.getter(name="automatedBackupPolicy") def automated_backup_policy(self) -> Optional[pulumi.Input['TableAutomatedBackupPolicyArgs']]: """ - Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - Retention Period and Frequency to 0. + Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + + ----- """ return pulumi.get(self, "automated_backup_policy") @@ -228,8 +226,6 @@ def automated_backup_policy(self, value: Optional[pulumi.Input['TableAutomatedBa def change_stream_retention(self) -> Optional[pulumi.Input[str]]: """ Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - - ----- """ return pulumi.get(self, "change_stream_retention") @@ -362,7 +358,11 @@ def __init__(__self__, "family": "family-second", }, ], - change_stream_retention="24h0m0s") + change_stream_retention="24h0m0s", + automated_backup_policy={ + "retention_period": "72h0m0s", + "frequency": "24h0m0s", + }) ``` ## Import @@ -393,11 +393,10 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['TableAutomatedBackupPolicyArgs', 'TableAutomatedBackupPolicyArgsDict']] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - Retention Period and Frequency to 0. - :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + :param pulumi.Input[Union['TableAutomatedBackupPolicyArgs', 'TableAutomatedBackupPolicyArgsDict']] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. ----- + :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. :param pulumi.Input[Sequence[pulumi.Input[Union['TableColumnFamilyArgs', 'TableColumnFamilyArgsDict']]]] column_families: A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. :param pulumi.Input[str] deletion_protection: A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED. :param pulumi.Input[str] instance_name: The name of the Bigtable instance. @@ -449,7 +448,11 @@ def __init__(__self__, "family": "family-second", }, ], - change_stream_retention="24h0m0s") + change_stream_retention="24h0m0s", + automated_backup_policy={ + "retention_period": "72h0m0s", + "frequency": "24h0m0s", + }) ``` ## Import @@ -545,11 +548,10 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[Union['TableAutomatedBackupPolicyArgs', 'TableAutomatedBackupPolicyArgsDict']] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - Retention Period and Frequency to 0. - :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. + :param pulumi.Input[Union['TableAutomatedBackupPolicyArgs', 'TableAutomatedBackupPolicyArgsDict']] automated_backup_policy: Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. ----- + :param pulumi.Input[str] change_stream_retention: Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. :param pulumi.Input[Sequence[pulumi.Input[Union['TableColumnFamilyArgs', 'TableColumnFamilyArgsDict']]]] column_families: A group of columns within a table which share a common configuration. This can be specified multiple times. Structure is documented below. :param pulumi.Input[str] deletion_protection: A field to make the table protected against data loss i.e. when set to PROTECTED, deleting the table, the column families in the table, and the instance containing the table would be prohibited. If not provided, deletion protection will be set to UNPROTECTED. :param pulumi.Input[str] instance_name: The name of the Bigtable instance. @@ -578,8 +580,9 @@ def get(resource_name: str, @pulumi.getter(name="automatedBackupPolicy") def automated_backup_policy(self) -> pulumi.Output[Optional['outputs.TableAutomatedBackupPolicy']]: """ - Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both - Retention Period and Frequency to 0. + Defines an automated backup policy for a table, specified by Retention Period and Frequency. To disable, set both Retention Period and Frequency to 0. + + ----- """ return pulumi.get(self, "automated_backup_policy") @@ -588,8 +591,6 @@ def automated_backup_policy(self) -> pulumi.Output[Optional['outputs.TableAutoma def change_stream_retention(self) -> pulumi.Output[str]: """ Duration to retain change stream data for the table. Set to 0 to disable. Must be between 1 and 7 days. - - ----- """ return pulumi.get(self, "change_stream_retention") diff --git a/sdk/python/pulumi_gcp/certificateauthority/authority.py b/sdk/python/pulumi_gcp/certificateauthority/authority.py index 7acc80d5e1..943b4d449e 100644 --- a/sdk/python/pulumi_gcp/certificateauthority/authority.py +++ b/sdk/python/pulumi_gcp/certificateauthority/authority.py @@ -932,11 +932,11 @@ def __init__(__self__, privateca_sa_keyuser_signerverifier = gcp.kms.CryptoKeyIAMMember("privateca_sa_keyuser_signerverifier", crypto_key_id="projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", role="roles/cloudkms.signerVerifier", - member=privateca_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=privateca_sa.member) privateca_sa_keyuser_viewer = gcp.kms.CryptoKeyIAMMember("privateca_sa_keyuser_viewer", crypto_key_id="projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", role="roles/viewer", - member=privateca_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=privateca_sa.member) default = gcp.certificateauthority.Authority("default", pool="ca-pool", certificate_authority_id="my-certificate-authority", @@ -1273,11 +1273,11 @@ def __init__(__self__, privateca_sa_keyuser_signerverifier = gcp.kms.CryptoKeyIAMMember("privateca_sa_keyuser_signerverifier", crypto_key_id="projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", role="roles/cloudkms.signerVerifier", - member=privateca_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=privateca_sa.member) privateca_sa_keyuser_viewer = gcp.kms.CryptoKeyIAMMember("privateca_sa_keyuser_viewer", crypto_key_id="projects/keys-project/locations/us-central1/keyRings/key-ring/cryptoKeys/crypto-key", role="roles/viewer", - member=privateca_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=privateca_sa.member) default = gcp.certificateauthority.Authority("default", pool="ca-pool", certificate_authority_id="my-certificate-authority", diff --git a/sdk/python/pulumi_gcp/cloudfunctions/function.py b/sdk/python/pulumi_gcp/cloudfunctions/function.py index 081044b340..5593f05b60 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/function.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/function.py @@ -24,6 +24,7 @@ def __init__(__self__, *, runtime: pulumi.Input[str], available_memory_mb: Optional[pulumi.Input[int]] = None, build_environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None, + build_service_account: Optional[pulumi.Input[str]] = None, build_worker_pool: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, docker_registry: Optional[pulumi.Input[str]] = None, @@ -59,6 +60,7 @@ def __init__(__self__, *, - - - :param pulumi.Input[int] available_memory_mb: Memory (in MB), available to the function. Default value is `256`. Possible values include `128`, `256`, `512`, `1024`, etc. :param pulumi.Input[Mapping[str, Any]] build_environment_variables: A set of key/value environment variable pairs available during build time. + :param pulumi.Input[str] build_service_account: If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` :param pulumi.Input[str] build_worker_pool: Name of the Cloud Build Custom Worker Pool that should be used to build the function. :param pulumi.Input[str] description: Description of the function. :param pulumi.Input[str] docker_registry: Docker Registry to use for storing the function's Docker images. Allowed values are ARTIFACT_REGISTRY (default) and CONTAINER_REGISTRY. @@ -100,6 +102,8 @@ def __init__(__self__, *, pulumi.set(__self__, "available_memory_mb", available_memory_mb) if build_environment_variables is not None: pulumi.set(__self__, "build_environment_variables", build_environment_variables) + if build_service_account is not None: + pulumi.set(__self__, "build_service_account", build_service_account) if build_worker_pool is not None: pulumi.set(__self__, "build_worker_pool", build_worker_pool) if description is not None: @@ -194,6 +198,18 @@ def build_environment_variables(self) -> Optional[pulumi.Input[Mapping[str, Any] def build_environment_variables(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): pulumi.set(self, "build_environment_variables", value) + @property + @pulumi.getter(name="buildServiceAccount") + def build_service_account(self) -> Optional[pulumi.Input[str]]: + """ + If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + """ + return pulumi.get(self, "build_service_account") + + @build_service_account.setter + def build_service_account(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "build_service_account", value) + @property @pulumi.getter(name="buildWorkerPool") def build_worker_pool(self) -> Optional[pulumi.Input[str]]: @@ -532,6 +548,7 @@ class _FunctionState: def __init__(__self__, *, available_memory_mb: Optional[pulumi.Input[int]] = None, build_environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None, + build_service_account: Optional[pulumi.Input[str]] = None, build_worker_pool: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, docker_registry: Optional[pulumi.Input[str]] = None, @@ -568,6 +585,7 @@ def __init__(__self__, *, Input properties used for looking up and filtering Function resources. :param pulumi.Input[int] available_memory_mb: Memory (in MB), available to the function. Default value is `256`. Possible values include `128`, `256`, `512`, `1024`, etc. :param pulumi.Input[Mapping[str, Any]] build_environment_variables: A set of key/value environment variable pairs available during build time. + :param pulumi.Input[str] build_service_account: If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` :param pulumi.Input[str] build_worker_pool: Name of the Cloud Build Custom Worker Pool that should be used to build the function. :param pulumi.Input[str] description: Description of the function. :param pulumi.Input[str] docker_registry: Docker Registry to use for storing the function's Docker images. Allowed values are ARTIFACT_REGISTRY (default) and CONTAINER_REGISTRY. @@ -617,6 +635,8 @@ def __init__(__self__, *, pulumi.set(__self__, "available_memory_mb", available_memory_mb) if build_environment_variables is not None: pulumi.set(__self__, "build_environment_variables", build_environment_variables) + if build_service_account is not None: + pulumi.set(__self__, "build_service_account", build_service_account) if build_worker_pool is not None: pulumi.set(__self__, "build_worker_pool", build_worker_pool) if description is not None: @@ -706,6 +726,18 @@ def build_environment_variables(self) -> Optional[pulumi.Input[Mapping[str, Any] def build_environment_variables(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): pulumi.set(self, "build_environment_variables", value) + @property + @pulumi.getter(name="buildServiceAccount") + def build_service_account(self) -> Optional[pulumi.Input[str]]: + """ + If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + """ + return pulumi.get(self, "build_service_account") + + @build_service_account.setter + def build_service_account(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "build_service_account", value) + @property @pulumi.getter(name="buildWorkerPool") def build_worker_pool(self) -> Optional[pulumi.Input[str]]: @@ -1110,6 +1142,7 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None, available_memory_mb: Optional[pulumi.Input[int]] = None, build_environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None, + build_service_account: Optional[pulumi.Input[str]] = None, build_worker_pool: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, docker_registry: Optional[pulumi.Input[str]] = None, @@ -1246,6 +1279,7 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[int] available_memory_mb: Memory (in MB), available to the function. Default value is `256`. Possible values include `128`, `256`, `512`, `1024`, etc. :param pulumi.Input[Mapping[str, Any]] build_environment_variables: A set of key/value environment variable pairs available during build time. + :param pulumi.Input[str] build_service_account: If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` :param pulumi.Input[str] build_worker_pool: Name of the Cloud Build Custom Worker Pool that should be used to build the function. :param pulumi.Input[str] description: Description of the function. :param pulumi.Input[str] docker_registry: Docker Registry to use for storing the function's Docker images. Allowed values are ARTIFACT_REGISTRY (default) and CONTAINER_REGISTRY. @@ -1412,6 +1446,7 @@ def _internal_init(__self__, opts: Optional[pulumi.ResourceOptions] = None, available_memory_mb: Optional[pulumi.Input[int]] = None, build_environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None, + build_service_account: Optional[pulumi.Input[str]] = None, build_worker_pool: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, docker_registry: Optional[pulumi.Input[str]] = None, @@ -1451,6 +1486,7 @@ def _internal_init(__self__, __props__.__dict__["available_memory_mb"] = available_memory_mb __props__.__dict__["build_environment_variables"] = build_environment_variables + __props__.__dict__["build_service_account"] = build_service_account __props__.__dict__["build_worker_pool"] = build_worker_pool __props__.__dict__["description"] = description __props__.__dict__["docker_registry"] = docker_registry @@ -1499,6 +1535,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, available_memory_mb: Optional[pulumi.Input[int]] = None, build_environment_variables: Optional[pulumi.Input[Mapping[str, Any]]] = None, + build_service_account: Optional[pulumi.Input[str]] = None, build_worker_pool: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, docker_registry: Optional[pulumi.Input[str]] = None, @@ -1540,6 +1577,7 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[int] available_memory_mb: Memory (in MB), available to the function. Default value is `256`. Possible values include `128`, `256`, `512`, `1024`, etc. :param pulumi.Input[Mapping[str, Any]] build_environment_variables: A set of key/value environment variable pairs available during build time. + :param pulumi.Input[str] build_service_account: If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` :param pulumi.Input[str] build_worker_pool: Name of the Cloud Build Custom Worker Pool that should be used to build the function. :param pulumi.Input[str] description: Description of the function. :param pulumi.Input[str] docker_registry: Docker Registry to use for storing the function's Docker images. Allowed values are ARTIFACT_REGISTRY (default) and CONTAINER_REGISTRY. @@ -1591,6 +1629,7 @@ def get(resource_name: str, __props__.__dict__["available_memory_mb"] = available_memory_mb __props__.__dict__["build_environment_variables"] = build_environment_variables + __props__.__dict__["build_service_account"] = build_service_account __props__.__dict__["build_worker_pool"] = build_worker_pool __props__.__dict__["description"] = description __props__.__dict__["docker_registry"] = docker_registry @@ -1641,6 +1680,14 @@ def build_environment_variables(self) -> pulumi.Output[Optional[Mapping[str, Any """ return pulumi.get(self, "build_environment_variables") + @property + @pulumi.getter(name="buildServiceAccount") + def build_service_account(self) -> pulumi.Output[str]: + """ + If provided, the self-provided service account to use to build the function. The format of this field is `projects/{project}/serviceAccounts/{serviceAccountEmail}` + """ + return pulumi.get(self, "build_service_account") + @property @pulumi.getter(name="buildWorkerPool") def build_worker_pool(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_gcp/cloudfunctions/get_function.py b/sdk/python/pulumi_gcp/cloudfunctions/get_function.py index ae27caa286..6a34131f1d 100644 --- a/sdk/python/pulumi_gcp/cloudfunctions/get_function.py +++ b/sdk/python/pulumi_gcp/cloudfunctions/get_function.py @@ -27,13 +27,16 @@ class GetFunctionResult: """ A collection of values returned by getFunction. """ - def __init__(__self__, available_memory_mb=None, build_environment_variables=None, build_worker_pool=None, description=None, docker_registry=None, docker_repository=None, effective_labels=None, entry_point=None, environment_variables=None, event_triggers=None, https_trigger_security_level=None, https_trigger_url=None, id=None, ingress_settings=None, kms_key_name=None, labels=None, max_instances=None, min_instances=None, name=None, project=None, pulumi_labels=None, region=None, runtime=None, secret_environment_variables=None, secret_volumes=None, service_account_email=None, source_archive_bucket=None, source_archive_object=None, source_repositories=None, status=None, timeout=None, trigger_http=None, version_id=None, vpc_connector=None, vpc_connector_egress_settings=None): + def __init__(__self__, available_memory_mb=None, build_environment_variables=None, build_service_account=None, build_worker_pool=None, description=None, docker_registry=None, docker_repository=None, effective_labels=None, entry_point=None, environment_variables=None, event_triggers=None, https_trigger_security_level=None, https_trigger_url=None, id=None, ingress_settings=None, kms_key_name=None, labels=None, max_instances=None, min_instances=None, name=None, project=None, pulumi_labels=None, region=None, runtime=None, secret_environment_variables=None, secret_volumes=None, service_account_email=None, source_archive_bucket=None, source_archive_object=None, source_repositories=None, status=None, timeout=None, trigger_http=None, version_id=None, vpc_connector=None, vpc_connector_egress_settings=None): if available_memory_mb and not isinstance(available_memory_mb, int): raise TypeError("Expected argument 'available_memory_mb' to be a int") pulumi.set(__self__, "available_memory_mb", available_memory_mb) if build_environment_variables and not isinstance(build_environment_variables, dict): raise TypeError("Expected argument 'build_environment_variables' to be a dict") pulumi.set(__self__, "build_environment_variables", build_environment_variables) + if build_service_account and not isinstance(build_service_account, str): + raise TypeError("Expected argument 'build_service_account' to be a str") + pulumi.set(__self__, "build_service_account", build_service_account) if build_worker_pool and not isinstance(build_worker_pool, str): raise TypeError("Expected argument 'build_worker_pool' to be a str") pulumi.set(__self__, "build_worker_pool", build_worker_pool) @@ -147,6 +150,11 @@ def available_memory_mb(self) -> int: def build_environment_variables(self) -> Mapping[str, Any]: return pulumi.get(self, "build_environment_variables") + @property + @pulumi.getter(name="buildServiceAccount") + def build_service_account(self) -> str: + return pulumi.get(self, "build_service_account") + @property @pulumi.getter(name="buildWorkerPool") def build_worker_pool(self) -> str: @@ -375,6 +383,7 @@ def __await__(self): return GetFunctionResult( available_memory_mb=self.available_memory_mb, build_environment_variables=self.build_environment_variables, + build_service_account=self.build_service_account, build_worker_pool=self.build_worker_pool, description=self.description, docker_registry=self.docker_registry, @@ -447,6 +456,7 @@ def get_function(name: Optional[str] = None, return AwaitableGetFunctionResult( available_memory_mb=pulumi.get(__ret__, 'available_memory_mb'), build_environment_variables=pulumi.get(__ret__, 'build_environment_variables'), + build_service_account=pulumi.get(__ret__, 'build_service_account'), build_worker_pool=pulumi.get(__ret__, 'build_worker_pool'), description=pulumi.get(__ret__, 'description'), docker_registry=pulumi.get(__ret__, 'docker_registry'), diff --git a/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py b/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py index cda29d4a88..1f74fdfb09 100644 --- a/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py +++ b/sdk/python/pulumi_gcp/cloudfunctionsv2/function.py @@ -1085,7 +1085,7 @@ def __init__(__self__, f"serviceAccount:service-{project_get_project.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com", f"serviceAccount:service-{project_get_project.number}@gs-project-accounts.iam.gserviceaccount.com", f"serviceAccount:service-{project_get_project.number}@serverless-robot-prod.iam.gserviceaccount.com", - ea_sa.email.apply(lambda email: f"serviceAccount:{email}"), + ea_sa.member, ], opts = pulumi.ResourceOptions(depends_on=[ea_sa])) encoded_ar_repo = gcp.artifactregistry.Repository("encoded-ar-repo", @@ -1890,7 +1890,7 @@ def __init__(__self__, f"serviceAccount:service-{project_get_project.number}@gcp-sa-artifactregistry.iam.gserviceaccount.com", f"serviceAccount:service-{project_get_project.number}@gs-project-accounts.iam.gserviceaccount.com", f"serviceAccount:service-{project_get_project.number}@serverless-robot-prod.iam.gserviceaccount.com", - ea_sa.email.apply(lambda email: f"serviceAccount:{email}"), + ea_sa.member, ], opts = pulumi.ResourceOptions(depends_on=[ea_sa])) encoded_ar_repo = gcp.artifactregistry.Repository("encoded-ar-repo", diff --git a/sdk/python/pulumi_gcp/cloudrun/_inputs.py b/sdk/python/pulumi_gcp/cloudrun/_inputs.py index 778bf4c550..21909e6d51 100644 --- a/sdk/python/pulumi_gcp/cloudrun/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudrun/_inputs.py @@ -113,8 +113,8 @@ class DomainMappingMetadataArgsDict(TypedDict): annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -190,8 +190,8 @@ def __init__(__self__, *, :param pulumi.Input[str] namespace: In Cloud Run the namespace must be equal to either the project ID or project number. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -263,8 +263,8 @@ def namespace(self, value: pulumi.Input[str]): def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -889,8 +889,8 @@ class ServiceMetadataArgsDict(TypedDict): annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -977,8 +977,8 @@ def __init__(__self__, *, uid: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1048,8 +1048,8 @@ def __init__(__self__, *, def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1698,8 +1698,8 @@ class ServiceTemplateMetadataArgsDict(TypedDict): annotations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1778,8 +1778,8 @@ def __init__(__self__, *, uid: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1843,8 +1843,8 @@ def __init__(__self__, *, def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1975,7 +1975,8 @@ class ServiceTemplateSpecArgsDict(TypedDict): container_concurrency: NotRequired[pulumi.Input[int]] """ ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - requests per container of the Revision. Values are: + requests per container of the Revision. If not specified or 0, defaults to 80 when + requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ containers: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServiceTemplateSpecContainerArgsDict']]]] """ @@ -2022,7 +2023,8 @@ def __init__(__self__, *, volumes: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceTemplateSpecVolumeArgs']]]] = None): """ :param pulumi.Input[int] container_concurrency: ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - requests per container of the Revision. Values are: + requests per container of the Revision. If not specified or 0, defaults to 80 when + requested CPU >= 1 and defaults to 1 when requested CPU < 1. :param pulumi.Input[Sequence[pulumi.Input['ServiceTemplateSpecContainerArgs']]] containers: Containers defines the unit of execution for this Revision. Structure is documented below. :param pulumi.Input[str] service_account_name: Email address of the IAM service account associated with the revision of the @@ -2061,7 +2063,8 @@ def __init__(__self__, *, def container_concurrency(self) -> Optional[pulumi.Input[int]]: """ ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - requests per container of the Revision. Values are: + requests per container of the Revision. If not specified or 0, defaults to 80 when + requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ return pulumi.get(self, "container_concurrency") diff --git a/sdk/python/pulumi_gcp/cloudrun/outputs.py b/sdk/python/pulumi_gcp/cloudrun/outputs.py index 41bd0736b9..68bbfc6782 100644 --- a/sdk/python/pulumi_gcp/cloudrun/outputs.py +++ b/sdk/python/pulumi_gcp/cloudrun/outputs.py @@ -137,8 +137,8 @@ def __init__(__self__, *, :param str namespace: In Cloud Run the namespace must be equal to either the project ID or project number. :param Mapping[str, str] annotations: Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -206,8 +206,8 @@ def namespace(self) -> str: def annotations(self) -> Optional[Mapping[str, str]]: """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -677,8 +677,8 @@ def __init__(__self__, *, uid: Optional[str] = None): """ :param Mapping[str, str] annotations: Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -748,8 +748,8 @@ def __init__(__self__, *, def annotations(self) -> Optional[Mapping[str, str]]: """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1233,8 +1233,8 @@ def __init__(__self__, *, uid: Optional[str] = None): """ :param Mapping[str, str] annotations: Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1298,8 +1298,8 @@ def __init__(__self__, *, def annotations(self) -> Optional[Mapping[str, str]]: """ Annotations is a key value map stored with a resource that - may be set by external tools to store and retrieve arbitrary metadata. More - info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations + may be set by external tools to store and retrieve arbitrary metadata. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations **Note**: The Cloud Run API may add additional annotations that were not provided in your config. If the provider plan shows a diff where a server-side annotation is added, you can add it to your config or apply the lifecycle.ignore_changes rule to the metadata.0.annotations field. @@ -1427,7 +1427,8 @@ def __init__(__self__, *, volumes: Optional[Sequence['outputs.ServiceTemplateSpecVolume']] = None): """ :param int container_concurrency: ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - requests per container of the Revision. Values are: + requests per container of the Revision. If not specified or 0, defaults to 80 when + requested CPU >= 1 and defaults to 1 when requested CPU < 1. :param Sequence['ServiceTemplateSpecContainerArgs'] containers: Containers defines the unit of execution for this Revision. Structure is documented below. :param str service_account_name: Email address of the IAM service account associated with the revision of the @@ -1463,7 +1464,8 @@ def __init__(__self__, *, def container_concurrency(self) -> Optional[int]: """ ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - requests per container of the Revision. Values are: + requests per container of the Revision. If not specified or 0, defaults to 80 when + requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ return pulumi.get(self, "container_concurrency") @@ -3808,11 +3810,8 @@ def __init__(__self__, *, volumes: Sequence['outputs.GetServiceTemplateSpecVolumeResult']): """ :param int container_concurrency: ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - requests per container of the Revision. Values are: - - '0' thread-safe, the system should manage the max concurrency. This is - the default value. - - '1' not-thread-safe. Single concurrency - - '2-N' thread-safe, max concurrency of N + requests per container of the Revision. If not specified or 0, defaults to 80 when + requested CPU >= 1 and defaults to 1 when requested CPU < 1. :param Sequence['GetServiceTemplateSpecContainerArgs'] containers: Containers defines the unit of execution for this Revision. :param str service_account_name: Email address of the IAM service account associated with the revision of the service. The service account represents the identity of the running revision, @@ -3837,11 +3836,8 @@ def __init__(__self__, *, def container_concurrency(self) -> int: """ ContainerConcurrency specifies the maximum allowed in-flight (concurrent) - requests per container of the Revision. Values are: - - '0' thread-safe, the system should manage the max concurrency. This is - the default value. - - '1' not-thread-safe. Single concurrency - - '2-N' thread-safe, max concurrency of N + requests per container of the Revision. If not specified or 0, defaults to 80 when + requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ return pulumi.get(self, "container_concurrency") diff --git a/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py b/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py index 92ede0e8e8..34c47b49c9 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/_inputs.py @@ -2668,6 +2668,7 @@ class ServiceTemplateArgsDict(TypedDict): max_instance_request_concurrency: NotRequired[pulumi.Input[int]] """ Sets the maximum number of requests that each serving instance can receive. + If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ revision: NotRequired[pulumi.Input[str]] """ @@ -2735,6 +2736,7 @@ def __init__(__self__, *, Cloud 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. All system labels in v1 now have a corresponding field in v2 RevisionTemplate. :param pulumi.Input[int] max_instance_request_concurrency: Sets the maximum number of requests that each serving instance can receive. + If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. :param pulumi.Input[str] revision: The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. :param pulumi.Input['ServiceTemplateScalingArgs'] scaling: Scaling settings for this Revision. Structure is documented below. @@ -2847,6 +2849,7 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]) def max_instance_request_concurrency(self) -> Optional[pulumi.Input[int]]: """ Sets the maximum number of requests that each serving instance can receive. + If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ return pulumi.get(self, "max_instance_request_concurrency") diff --git a/sdk/python/pulumi_gcp/cloudrunv2/outputs.py b/sdk/python/pulumi_gcp/cloudrunv2/outputs.py index ed6f39c9dc..970a9dd28e 100644 --- a/sdk/python/pulumi_gcp/cloudrunv2/outputs.py +++ b/sdk/python/pulumi_gcp/cloudrunv2/outputs.py @@ -2058,6 +2058,7 @@ def __init__(__self__, *, Cloud 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. All system labels in v1 now have a corresponding field in v2 RevisionTemplate. :param int max_instance_request_concurrency: Sets the maximum number of requests that each serving instance can receive. + If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. :param str revision: The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. :param 'ServiceTemplateScalingArgs' scaling: Scaling settings for this Revision. Structure is documented below. @@ -2150,6 +2151,7 @@ def labels(self) -> Optional[Mapping[str, str]]: def max_instance_request_concurrency(self) -> Optional[int]: """ Sets the maximum number of requests that each serving instance can receive. + If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ return pulumi.get(self, "max_instance_request_concurrency") @@ -5336,6 +5338,7 @@ def __init__(__self__, *, Cloud 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. All system labels in v1 now have a corresponding field in v2 RevisionTemplate. :param int max_instance_request_concurrency: Sets the maximum number of requests that each serving instance can receive. + If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. :param str revision: The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name. :param Sequence['GetServiceTemplateScalingArgs'] scalings: Scaling settings for this Revision. :param str service_account: 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. @@ -5414,6 +5417,7 @@ def labels(self) -> Mapping[str, str]: def max_instance_request_concurrency(self) -> int: """ Sets the maximum number of requests that each serving instance can receive. + If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1. """ return pulumi.get(self, "max_instance_request_concurrency") diff --git a/sdk/python/pulumi_gcp/compute/__init__.py b/sdk/python/pulumi_gcp/compute/__init__.py index 43e0a5221a..b36f998847 100644 --- a/sdk/python/pulumi_gcp/compute/__init__.py +++ b/sdk/python/pulumi_gcp/compute/__init__.py @@ -171,12 +171,14 @@ from .region_target_tcp_proxy import * from .region_url_map import * from .reservation import * +from .resize_request import * from .resource_policy import * from .route import * from .router import * from .router_interface import * from .router_nat import * from .router_peer import * +from .router_route_policy import * from .router_status import * from .security_policy import * from .security_policy_rule import * diff --git a/sdk/python/pulumi_gcp/compute/_inputs.py b/sdk/python/pulumi_gcp/compute/_inputs.py index 0af293f43f..2017a9214c 100644 --- a/sdk/python/pulumi_gcp/compute/_inputs.py +++ b/sdk/python/pulumi_gcp/compute/_inputs.py @@ -87,6 +87,8 @@ 'BackendServiceOutlierDetectionIntervalArgsDict', 'BackendServiceSecuritySettingsArgs', 'BackendServiceSecuritySettingsArgsDict', + 'BackendServiceSecuritySettingsAwsV4AuthenticationArgs', + 'BackendServiceSecuritySettingsAwsV4AuthenticationArgsDict', 'DiskAsyncPrimaryDiskArgs', 'DiskAsyncPrimaryDiskArgsDict', 'DiskAsyncReplicationSecondaryDiskArgs', @@ -801,6 +803,44 @@ 'ReservationSpecificReservationInstancePropertiesGuestAcceleratorArgsDict', 'ReservationSpecificReservationInstancePropertiesLocalSsdArgs', 'ReservationSpecificReservationInstancePropertiesLocalSsdArgsDict', + 'ResizeRequestRequestedRunDurationArgs', + 'ResizeRequestRequestedRunDurationArgsDict', + 'ResizeRequestStatusArgs', + 'ResizeRequestStatusArgsDict', + 'ResizeRequestStatusErrorArgs', + 'ResizeRequestStatusErrorArgsDict', + 'ResizeRequestStatusErrorErrorArgs', + 'ResizeRequestStatusErrorErrorArgsDict', + 'ResizeRequestStatusErrorErrorErrorDetailArgs', + 'ResizeRequestStatusErrorErrorErrorDetailArgsDict', + 'ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs', + 'ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict', + 'ResizeRequestStatusErrorErrorErrorDetailHelpArgs', + 'ResizeRequestStatusErrorErrorErrorDetailHelpArgsDict', + 'ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs', + 'ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict', + 'ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs', + 'ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict', + 'ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs', + 'ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict', + 'ResizeRequestStatusLastAttemptArgs', + 'ResizeRequestStatusLastAttemptArgsDict', + 'ResizeRequestStatusLastAttemptErrorArgs', + 'ResizeRequestStatusLastAttemptErrorArgsDict', + 'ResizeRequestStatusLastAttemptErrorErrorArgs', + 'ResizeRequestStatusLastAttemptErrorErrorArgsDict', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict', 'ResourcePolicyDiskConsistencyGroupPolicyArgs', 'ResourcePolicyDiskConsistencyGroupPolicyArgsDict', 'ResourcePolicyGroupPlacementPolicyArgs', @@ -843,8 +883,16 @@ 'RouterPeerAdvertisedIpRangeArgsDict', 'RouterPeerBfdArgs', 'RouterPeerBfdArgsDict', + 'RouterPeerCustomLearnedIpRangeArgs', + 'RouterPeerCustomLearnedIpRangeArgsDict', 'RouterPeerMd5AuthenticationKeyArgs', 'RouterPeerMd5AuthenticationKeyArgsDict', + 'RouterRoutePolicyTermArgs', + 'RouterRoutePolicyTermArgsDict', + 'RouterRoutePolicyTermActionArgs', + 'RouterRoutePolicyTermActionArgsDict', + 'RouterRoutePolicyTermMatchArgs', + 'RouterRoutePolicyTermMatchArgsDict', 'SecurityPolicyAdaptiveProtectionConfigArgs', 'SecurityPolicyAdaptiveProtectionConfigArgsDict', 'SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgs', @@ -5010,13 +5058,22 @@ def nanos(self, value: Optional[pulumi.Input[int]]): if not MYPY: class BackendServiceSecuritySettingsArgsDict(TypedDict): - client_tls_policy: pulumi.Input[str] + aws_v4_authentication: NotRequired[pulumi.Input['BackendServiceSecuritySettingsAwsV4AuthenticationArgsDict']] + """ + The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + Structure is documented below. + + + The `aws_v4_authentication` block supports: + """ + client_tls_policy: NotRequired[pulumi.Input[str]] """ ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource. """ - subject_alt_names: pulumi.Input[Sequence[pulumi.Input[str]]] + subject_alt_names: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ A list of alternate names to verify the subject identity in the certificate. If specified, the client will verify that the server certificate's subject @@ -5028,9 +5085,16 @@ class BackendServiceSecuritySettingsArgsDict(TypedDict): @pulumi.input_type class BackendServiceSecuritySettingsArgs: def __init__(__self__, *, - client_tls_policy: pulumi.Input[str], - subject_alt_names: pulumi.Input[Sequence[pulumi.Input[str]]]): + aws_v4_authentication: Optional[pulumi.Input['BackendServiceSecuritySettingsAwsV4AuthenticationArgs']] = None, + client_tls_policy: Optional[pulumi.Input[str]] = None, + subject_alt_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ + :param pulumi.Input['BackendServiceSecuritySettingsAwsV4AuthenticationArgs'] aws_v4_authentication: The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + Structure is documented below. + + + The `aws_v4_authentication` block supports: :param pulumi.Input[str] client_tls_policy: ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource. @@ -5038,12 +5102,33 @@ def __init__(__self__, *, If specified, the client will verify that the server certificate's subject alt name matches one of the specified values. """ - pulumi.set(__self__, "client_tls_policy", client_tls_policy) - pulumi.set(__self__, "subject_alt_names", subject_alt_names) + if aws_v4_authentication is not None: + pulumi.set(__self__, "aws_v4_authentication", aws_v4_authentication) + if client_tls_policy is not None: + pulumi.set(__self__, "client_tls_policy", client_tls_policy) + if subject_alt_names is not None: + pulumi.set(__self__, "subject_alt_names", subject_alt_names) + + @property + @pulumi.getter(name="awsV4Authentication") + def aws_v4_authentication(self) -> Optional[pulumi.Input['BackendServiceSecuritySettingsAwsV4AuthenticationArgs']]: + """ + The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + Structure is documented below. + + + The `aws_v4_authentication` block supports: + """ + return pulumi.get(self, "aws_v4_authentication") + + @aws_v4_authentication.setter + def aws_v4_authentication(self, value: Optional[pulumi.Input['BackendServiceSecuritySettingsAwsV4AuthenticationArgs']]): + pulumi.set(self, "aws_v4_authentication", value) @property @pulumi.getter(name="clientTlsPolicy") - def client_tls_policy(self) -> pulumi.Input[str]: + def client_tls_policy(self) -> Optional[pulumi.Input[str]]: """ ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect @@ -5052,12 +5137,12 @@ def client_tls_policy(self) -> pulumi.Input[str]: return pulumi.get(self, "client_tls_policy") @client_tls_policy.setter - def client_tls_policy(self, value: pulumi.Input[str]): + def client_tls_policy(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "client_tls_policy", value) @property @pulumi.getter(name="subjectAltNames") - def subject_alt_names(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + def subject_alt_names(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ A list of alternate names to verify the subject identity in the certificate. If specified, the client will verify that the server certificate's subject @@ -5066,10 +5151,108 @@ def subject_alt_names(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: return pulumi.get(self, "subject_alt_names") @subject_alt_names.setter - def subject_alt_names(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + def subject_alt_names(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "subject_alt_names", value) +if not MYPY: + class BackendServiceSecuritySettingsAwsV4AuthenticationArgsDict(TypedDict): + access_key: NotRequired[pulumi.Input[str]] + """ + The access key used for s3 bucket authentication. + Required 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. + """ + access_key_id: NotRequired[pulumi.Input[str]] + """ + The identifier of an access key used for s3 bucket authentication. + """ + access_key_version: NotRequired[pulumi.Input[str]] + """ + The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + """ + origin_region: NotRequired[pulumi.Input[str]] + """ + 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. + For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + """ +elif False: + BackendServiceSecuritySettingsAwsV4AuthenticationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class BackendServiceSecuritySettingsAwsV4AuthenticationArgs: + def __init__(__self__, *, + access_key: Optional[pulumi.Input[str]] = None, + access_key_id: Optional[pulumi.Input[str]] = None, + access_key_version: Optional[pulumi.Input[str]] = None, + origin_region: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] access_key: The access key used for s3 bucket authentication. + Required 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. + :param pulumi.Input[str] access_key_id: The identifier of an access key used for s3 bucket authentication. + :param pulumi.Input[str] access_key_version: The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + :param pulumi.Input[str] origin_region: 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. + For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + """ + if access_key is not None: + pulumi.set(__self__, "access_key", access_key) + if access_key_id is not None: + pulumi.set(__self__, "access_key_id", access_key_id) + if access_key_version is not None: + pulumi.set(__self__, "access_key_version", access_key_version) + if origin_region is not None: + pulumi.set(__self__, "origin_region", origin_region) + + @property + @pulumi.getter(name="accessKey") + def access_key(self) -> Optional[pulumi.Input[str]]: + """ + The access key used for s3 bucket authentication. + Required 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. + """ + return pulumi.get(self, "access_key") + + @access_key.setter + def access_key(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_key", value) + + @property + @pulumi.getter(name="accessKeyId") + def access_key_id(self) -> Optional[pulumi.Input[str]]: + """ + The identifier of an access key used for s3 bucket authentication. + """ + return pulumi.get(self, "access_key_id") + + @access_key_id.setter + def access_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_key_id", value) + + @property + @pulumi.getter(name="accessKeyVersion") + def access_key_version(self) -> Optional[pulumi.Input[str]]: + """ + The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + """ + return pulumi.get(self, "access_key_version") + + @access_key_version.setter + def access_key_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_key_version", value) + + @property + @pulumi.getter(name="originRegion") + def origin_region(self) -> Optional[pulumi.Input[str]]: + """ + 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. + For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + """ + return pulumi.get(self, "origin_region") + + @origin_region.setter + def origin_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "origin_region", value) + + if not MYPY: class DiskAsyncPrimaryDiskArgsDict(TypedDict): disk: pulumi.Input[str] @@ -8605,6 +8788,13 @@ class InstanceBootDiskInitializeParamsArgsDict(TypedDict): The size of the image in gigabytes. If not specified, it will inherit the size of its base image. """ + storage_pool: NotRequired[pulumi.Input[str]] + """ + The URL of the storage pool in which the new disk is created. + For example: + * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * /projects/{project}/zones/{zone}/storagePools/{storagePool} + """ type: NotRequired[pulumi.Input[str]] """ The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. @@ -8622,6 +8812,7 @@ def __init__(__self__, *, provisioned_throughput: Optional[pulumi.Input[int]] = None, resource_manager_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None, size: Optional[pulumi.Input[int]] = None, + storage_pool: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[bool] enable_confidential_compute: Whether this disk is using confidential compute mode. @@ -8654,6 +8845,10 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, Any]] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param pulumi.Input[int] size: The size of the image in gigabytes. If not specified, it will inherit the size of its base image. + :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created. + For example: + * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * /projects/{project}/zones/{zone}/storagePools/{storagePool} :param pulumi.Input[str] type: The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. """ if enable_confidential_compute is not None: @@ -8670,6 +8865,8 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_manager_tags", resource_manager_tags) if size is not None: pulumi.set(__self__, "size", size) + if storage_pool is not None: + pulumi.set(__self__, "storage_pool", storage_pool) if type is not None: pulumi.set(__self__, "type", type) @@ -8780,6 +8977,21 @@ def size(self) -> Optional[pulumi.Input[int]]: def size(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "size", value) + @property + @pulumi.getter(name="storagePool") + def storage_pool(self) -> Optional[pulumi.Input[str]]: + """ + The URL of the storage pool in which the new disk is created. + For example: + * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * /projects/{project}/zones/{zone}/storagePools/{storagePool} + """ + return pulumi.get(self, "storage_pool") + + @storage_pool.setter + def storage_pool(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_pool", value) + @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: @@ -9250,6 +9462,10 @@ class InstanceFromMachineImageBootDiskInitializeParamsArgsDict(TypedDict): """ The size of the image in gigabytes. """ + storage_pool: NotRequired[pulumi.Input[str]] + """ + The URL of the storage pool in which the new disk is created + """ type: NotRequired[pulumi.Input[str]] """ The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. @@ -9267,6 +9483,7 @@ def __init__(__self__, *, provisioned_throughput: Optional[pulumi.Input[int]] = None, resource_manager_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None, size: Optional[pulumi.Input[int]] = None, + storage_pool: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[bool] enable_confidential_compute: A flag to enable confidential compute mode on boot disk @@ -9276,6 +9493,7 @@ def __init__(__self__, *, :param pulumi.Input[int] provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. :param pulumi.Input[Mapping[str, Any]] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param pulumi.Input[int] size: The size of the image in gigabytes. + :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created :param pulumi.Input[str] type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. """ if enable_confidential_compute is not None: @@ -9292,6 +9510,8 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_manager_tags", resource_manager_tags) if size is not None: pulumi.set(__self__, "size", size) + if storage_pool is not None: + pulumi.set(__self__, "storage_pool", storage_pool) if type is not None: pulumi.set(__self__, "type", type) @@ -9379,6 +9599,18 @@ def size(self) -> Optional[pulumi.Input[int]]: def size(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "size", value) + @property + @pulumi.getter(name="storagePool") + def storage_pool(self) -> Optional[pulumi.Input[str]]: + """ + The URL of the storage pool in which the new disk is created + """ + return pulumi.get(self, "storage_pool") + + @storage_pool.setter + def storage_pool(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_pool", value) + @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: @@ -11313,6 +11545,10 @@ class InstanceFromTemplateBootDiskInitializeParamsArgsDict(TypedDict): """ The size of the image in gigabytes. """ + storage_pool: NotRequired[pulumi.Input[str]] + """ + The URL of the storage pool in which the new disk is created + """ type: NotRequired[pulumi.Input[str]] """ The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. @@ -11330,6 +11566,7 @@ def __init__(__self__, *, provisioned_throughput: Optional[pulumi.Input[int]] = None, resource_manager_tags: Optional[pulumi.Input[Mapping[str, Any]]] = None, size: Optional[pulumi.Input[int]] = None, + storage_pool: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[bool] enable_confidential_compute: A flag to enable confidential compute mode on boot disk @@ -11339,6 +11576,7 @@ def __init__(__self__, *, :param pulumi.Input[int] provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. :param pulumi.Input[Mapping[str, Any]] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param pulumi.Input[int] size: The size of the image in gigabytes. + :param pulumi.Input[str] storage_pool: The URL of the storage pool in which the new disk is created :param pulumi.Input[str] type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. """ if enable_confidential_compute is not None: @@ -11355,6 +11593,8 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_manager_tags", resource_manager_tags) if size is not None: pulumi.set(__self__, "size", size) + if storage_pool is not None: + pulumi.set(__self__, "storage_pool", storage_pool) if type is not None: pulumi.set(__self__, "type", type) @@ -11442,6 +11682,18 @@ def size(self) -> Optional[pulumi.Input[int]]: def size(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "size", value) + @property + @pulumi.getter(name="storagePool") + def storage_pool(self) -> Optional[pulumi.Input[str]]: + """ + The URL of the storage pool in which the new disk is created + """ + return pulumi.get(self, "storage_pool") + + @storage_pool.setter + def storage_pool(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_pool", value) + @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: @@ -39056,495 +39308,1940 @@ def interface(self, value: Optional[pulumi.Input[str]]): if not MYPY: - class ResourcePolicyDiskConsistencyGroupPolicyArgsDict(TypedDict): - enabled: pulumi.Input[bool] + class ResizeRequestRequestedRunDurationArgsDict(TypedDict): + seconds: pulumi.Input[str] """ - Enable disk consistency on the resource policy. + 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 + """ + nanos: NotRequired[pulumi.Input[int]] + """ + 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. """ elif False: - ResourcePolicyDiskConsistencyGroupPolicyArgsDict: TypeAlias = Mapping[str, Any] + ResizeRequestRequestedRunDurationArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ResourcePolicyDiskConsistencyGroupPolicyArgs: +class ResizeRequestRequestedRunDurationArgs: def __init__(__self__, *, - enabled: pulumi.Input[bool]): + seconds: pulumi.Input[str], + nanos: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[bool] enabled: Enable disk consistency on the resource policy. + :param pulumi.Input[str] seconds: 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 + :param pulumi.Input[int] nanos: 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. """ - pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "seconds", seconds) + if nanos is not None: + pulumi.set(__self__, "nanos", nanos) @property @pulumi.getter - def enabled(self) -> pulumi.Input[bool]: + def seconds(self) -> pulumi.Input[str]: """ - Enable disk consistency on the resource policy. + 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 """ - return pulumi.get(self, "enabled") - - @enabled.setter - def enabled(self, value: pulumi.Input[bool]): - pulumi.set(self, "enabled", value) + return pulumi.get(self, "seconds") + @seconds.setter + def seconds(self, value: pulumi.Input[str]): + pulumi.set(self, "seconds", value) -if not MYPY: - class ResourcePolicyGroupPlacementPolicyArgsDict(TypedDict): - availability_domain_count: NotRequired[pulumi.Input[int]] - """ - The number of availability domains instances will be spread across. If two instances are in different - availability domain, they will not be put in the same low latency network - """ - collocation: NotRequired[pulumi.Input[str]] + @property + @pulumi.getter + def nanos(self) -> Optional[pulumi.Input[int]]: """ - Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. - Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`. If compute instances are created - with a COLLOCATED policy, then exactly `vm_count` instances must be created at the same time with the resource policy - attached. - Possible values are: `COLLOCATED`. + 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. """ - max_distance: NotRequired[pulumi.Input[int]] + return pulumi.get(self, "nanos") + + @nanos.setter + def nanos(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "nanos", value) + + +if not MYPY: + class ResizeRequestStatusArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorArgsDict']]]] """ - Specifies the number of max logical switches. + (Output) + [Output only] Fatal 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. + Structure is documented below. """ - vm_count: NotRequired[pulumi.Input[int]] + last_attempts: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptArgsDict']]]] """ - Number of VMs in this placement group. Google does not recommend that you use this field - unless you use a compact policy and you want your policy to work only if it contains this - exact number of VMs. + (Output) + [Output only] Information 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. + Structure is documented below. """ elif False: - ResourcePolicyGroupPlacementPolicyArgsDict: TypeAlias = Mapping[str, Any] + ResizeRequestStatusArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ResourcePolicyGroupPlacementPolicyArgs: +class ResizeRequestStatusArgs: def __init__(__self__, *, - availability_domain_count: Optional[pulumi.Input[int]] = None, - collocation: Optional[pulumi.Input[str]] = None, - max_distance: Optional[pulumi.Input[int]] = None, - vm_count: Optional[pulumi.Input[int]] = None): + errors: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorArgs']]]] = None, + last_attempts: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptArgs']]]] = None): """ - :param pulumi.Input[int] availability_domain_count: The number of availability domains instances will be spread across. If two instances are in different - availability domain, they will not be put in the same low latency network - :param pulumi.Input[str] collocation: Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. - Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`. If compute instances are created - with a COLLOCATED policy, then exactly `vm_count` instances must be created at the same time with the resource policy - attached. - Possible values are: `COLLOCATED`. - :param pulumi.Input[int] max_distance: Specifies the number of max logical switches. - :param pulumi.Input[int] vm_count: Number of VMs in this placement group. Google does not recommend that you use this field - unless you use a compact policy and you want your policy to work only if it contains this - exact number of VMs. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorArgs']]] errors: (Output) + [Output only] Fatal 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. + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptArgs']]] last_attempts: (Output) + [Output only] Information 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. + Structure is documented below. """ - if availability_domain_count is not None: - pulumi.set(__self__, "availability_domain_count", availability_domain_count) - if collocation is not None: - pulumi.set(__self__, "collocation", collocation) - if max_distance is not None: - pulumi.set(__self__, "max_distance", max_distance) - if vm_count is not None: - pulumi.set(__self__, "vm_count", vm_count) + if errors is not None: + pulumi.set(__self__, "errors", errors) + if last_attempts is not None: + pulumi.set(__self__, "last_attempts", last_attempts) @property - @pulumi.getter(name="availabilityDomainCount") - def availability_domain_count(self) -> Optional[pulumi.Input[int]]: + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorArgs']]]]: """ - The number of availability domains instances will be spread across. If two instances are in different - availability domain, they will not be put in the same low latency network + (Output) + [Output only] Fatal 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. + Structure is documented below. """ - return pulumi.get(self, "availability_domain_count") + return pulumi.get(self, "errors") - @availability_domain_count.setter - def availability_domain_count(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "availability_domain_count", value) + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorArgs']]]]): + pulumi.set(self, "errors", value) @property - @pulumi.getter - def collocation(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="lastAttempts") + def last_attempts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptArgs']]]]: """ - Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. - Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`. If compute instances are created - with a COLLOCATED policy, then exactly `vm_count` instances must be created at the same time with the resource policy - attached. - Possible values are: `COLLOCATED`. + (Output) + [Output only] Information 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. + Structure is documented below. """ - return pulumi.get(self, "collocation") + return pulumi.get(self, "last_attempts") - @collocation.setter - def collocation(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "collocation", value) + @last_attempts.setter + def last_attempts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptArgs']]]]): + pulumi.set(self, "last_attempts", value) - @property - @pulumi.getter(name="maxDistance") - def max_distance(self) -> Optional[pulumi.Input[int]]: + +if not MYPY: + class ResizeRequestStatusErrorArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorArgsDict']]]] """ - Specifies the number of max logical switches. + (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. """ - return pulumi.get(self, "max_distance") +elif False: + ResizeRequestStatusErrorArgsDict: TypeAlias = Mapping[str, Any] - @max_distance.setter - def max_distance(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "max_distance", value) +@pulumi.input_type +class ResizeRequestStatusErrorArgs: + def __init__(__self__, *, + errors: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorArgs']]] errors: (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) @property - @pulumi.getter(name="vmCount") - def vm_count(self) -> Optional[pulumi.Input[int]]: + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorArgs']]]]: """ - Number of VMs in this placement group. Google does not recommend that you use this field - unless you use a compact policy and you want your policy to work only if it contains this - exact number of VMs. + (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. """ - return pulumi.get(self, "vm_count") + return pulumi.get(self, "errors") - @vm_count.setter - def vm_count(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "vm_count", value) + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorArgs']]]]): + pulumi.set(self, "errors", value) if not MYPY: - class ResourcePolicyInstanceSchedulePolicyArgsDict(TypedDict): - time_zone: pulumi.Input[str] - """ - Specifies the time zone to be used in 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. - """ - expiration_time: NotRequired[pulumi.Input[str]] + class ResizeRequestStatusErrorErrorArgsDict(TypedDict): + code: NotRequired[pulumi.Input[str]] """ - The expiration time of the schedule. The timestamp is an RFC3339 string. + (Output) + [Output Only] The error type identifier for this error. """ - start_time: NotRequired[pulumi.Input[str]] + error_details: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailArgsDict']]]] """ - The start time of the schedule. The timestamp is an RFC3339 string. + (Output) + [Output Only] An optional list 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. + Structure is documented below. """ - vm_start_schedule: NotRequired[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgsDict']] + location: NotRequired[pulumi.Input[str]] """ - Specifies the schedule for starting instances. - Structure is documented below. + (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. """ - vm_stop_schedule: NotRequired[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgsDict']] + message: NotRequired[pulumi.Input[str]] """ - Specifies the schedule for stopping instances. - Structure is documented below. + (Output) + The localized error message in the above locale. """ elif False: - ResourcePolicyInstanceSchedulePolicyArgsDict: TypeAlias = Mapping[str, Any] + ResizeRequestStatusErrorErrorArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ResourcePolicyInstanceSchedulePolicyArgs: +class ResizeRequestStatusErrorErrorArgs: def __init__(__self__, *, - time_zone: pulumi.Input[str], - expiration_time: Optional[pulumi.Input[str]] = None, - start_time: Optional[pulumi.Input[str]] = None, - vm_start_schedule: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs']] = None, - vm_stop_schedule: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs']] = None): + code: Optional[pulumi.Input[str]] = None, + error_details: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailArgs']]]] = None, + location: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] time_zone: Specifies the time zone to be used in 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. - :param pulumi.Input[str] expiration_time: The expiration time of the schedule. The timestamp is an RFC3339 string. - :param pulumi.Input[str] start_time: The start time of the schedule. The timestamp is an RFC3339 string. - :param pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs'] vm_start_schedule: Specifies the schedule for starting instances. - Structure is documented below. - :param pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs'] vm_stop_schedule: Specifies the schedule for stopping instances. + :param pulumi.Input[str] code: (Output) + [Output Only] The error type identifier for this error. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailArgs']]] error_details: (Output) + [Output Only] An optional list 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. Structure is documented below. + :param pulumi.Input[str] location: (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. """ - pulumi.set(__self__, "time_zone", time_zone) - if expiration_time is not None: - pulumi.set(__self__, "expiration_time", expiration_time) - if start_time is not None: - pulumi.set(__self__, "start_time", start_time) - if vm_start_schedule is not None: - pulumi.set(__self__, "vm_start_schedule", vm_start_schedule) - if vm_stop_schedule is not None: - pulumi.set(__self__, "vm_stop_schedule", vm_stop_schedule) + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) @property - @pulumi.getter(name="timeZone") - def time_zone(self) -> pulumi.Input[str]: + @pulumi.getter + def code(self) -> Optional[pulumi.Input[str]]: """ - Specifies the time zone to be used in 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. + (Output) + [Output Only] The error type identifier for this error. """ - return pulumi.get(self, "time_zone") + return pulumi.get(self, "code") - @time_zone.setter - def time_zone(self, value: pulumi.Input[str]): - pulumi.set(self, "time_zone", value) + @code.setter + def code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "code", value) @property - @pulumi.getter(name="expirationTime") - def expiration_time(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailArgs']]]]: """ - The expiration time of the schedule. The timestamp is an RFC3339 string. + (Output) + [Output Only] An optional list 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. + Structure is documented below. """ - return pulumi.get(self, "expiration_time") + return pulumi.get(self, "error_details") - @expiration_time.setter - def expiration_time(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "expiration_time", value) + @error_details.setter + def error_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailArgs']]]]): + pulumi.set(self, "error_details", value) @property - @pulumi.getter(name="startTime") - def start_time(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: """ - The start time of the schedule. The timestamp is an RFC3339 string. + (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. """ - return pulumi.get(self, "start_time") + return pulumi.get(self, "location") - @start_time.setter - def start_time(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "start_time", value) + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) @property - @pulumi.getter(name="vmStartSchedule") - def vm_start_schedule(self) -> Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs']]: + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: """ - Specifies the schedule for starting instances. - Structure is documented below. + (Output) + The localized error message in the above locale. """ - return pulumi.get(self, "vm_start_schedule") + return pulumi.get(self, "message") - @vm_start_schedule.setter - def vm_start_schedule(self, value: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs']]): - pulumi.set(self, "vm_start_schedule", value) + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) - @property - @pulumi.getter(name="vmStopSchedule") - def vm_stop_schedule(self) -> Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs']]: + +if not MYPY: + class ResizeRequestStatusErrorErrorErrorDetailArgsDict(TypedDict): + error_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict']]]] """ - Specifies the schedule for stopping instances. + (Output) + [Output Only] Structure is documented below. """ - return pulumi.get(self, "vm_stop_schedule") - - @vm_stop_schedule.setter - def vm_stop_schedule(self, value: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs']]): - pulumi.set(self, "vm_stop_schedule", value) - - -if not MYPY: - class ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgsDict(TypedDict): - schedule: pulumi.Input[str] + helps: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpArgsDict']]]] """ - Specifies the frequency for the operation, using the unix-cron format. + (Output) + [Output Only] + Structure is documented below. + """ + localized_messages: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict']]]] + """ + (Output) + [Output Only] + Structure is documented below. + """ + quota_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict']]]] + """ + (Output) + [Output Only] + Structure is documented below. """ elif False: - ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgsDict: TypeAlias = Mapping[str, Any] + ResizeRequestStatusErrorErrorErrorDetailArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs: +class ResizeRequestStatusErrorErrorErrorDetailArgs: def __init__(__self__, *, - schedule: pulumi.Input[str]): + error_infos: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]] = None, + helps: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]] = None, + localized_messages: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]] = None, + quota_infos: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]] = None): """ - :param pulumi.Input[str] schedule: Specifies the frequency for the operation, using the unix-cron format. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]] error_infos: (Output) + [Output Only] + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpArgs']]] helps: (Output) + [Output Only] + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]] localized_messages: (Output) + [Output Only] + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]] quota_infos: (Output) + [Output Only] + Structure is documented below. """ - pulumi.set(__self__, "schedule", schedule) + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) @property - @pulumi.getter - def schedule(self) -> pulumi.Input[str]: + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]]: """ - Specifies the frequency for the operation, using the unix-cron format. + (Output) + [Output Only] + Structure is documented below. """ - return pulumi.get(self, "schedule") - - @schedule.setter - def schedule(self, value: pulumi.Input[str]): - pulumi.set(self, "schedule", value) + return pulumi.get(self, "error_infos") + @error_infos.setter + def error_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]]): + pulumi.set(self, "error_infos", value) -if not MYPY: - class ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgsDict(TypedDict): - schedule: pulumi.Input[str] + @property + @pulumi.getter + def helps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]]: """ - Specifies the frequency for the operation, using the unix-cron format. + (Output) + [Output Only] + Structure is documented below. """ -elif False: - ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgsDict: TypeAlias = Mapping[str, Any] + return pulumi.get(self, "helps") -@pulumi.input_type -class ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs: - def __init__(__self__, *, - schedule: pulumi.Input[str]): + @helps.setter + def helps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]]): + pulumi.set(self, "helps", value) + + @property + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]]: """ - :param pulumi.Input[str] schedule: Specifies the frequency for the operation, using the unix-cron format. + (Output) + [Output Only] + Structure is documented below. """ - pulumi.set(__self__, "schedule", schedule) + return pulumi.get(self, "localized_messages") + + @localized_messages.setter + def localized_messages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]]): + pulumi.set(self, "localized_messages", value) @property - @pulumi.getter - def schedule(self) -> pulumi.Input[str]: + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]]: """ - Specifies the frequency for the operation, using the unix-cron format. + (Output) + [Output Only] + Structure is documented below. """ - return pulumi.get(self, "schedule") + return pulumi.get(self, "quota_infos") - @schedule.setter - def schedule(self, value: pulumi.Input[str]): - pulumi.set(self, "schedule", value) + @quota_infos.setter + def quota_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]]): + pulumi.set(self, "quota_infos", value) if not MYPY: - class ResourcePolicySnapshotSchedulePolicyArgsDict(TypedDict): - schedule: pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgsDict'] + class ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict(TypedDict): + domain: NotRequired[pulumi.Input[str]] """ - Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. - Structure is documented below. + (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". """ - retention_policy: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgsDict']] + metadatas: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ - Retention policy applied to snapshots created by this resource policy. - Structure is documented below. + (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. """ - snapshot_properties: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgsDict']] + reason: NotRequired[pulumi.Input[str]] """ - Properties with which the snapshots are created, such as labels. - Structure is documented below. + (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. """ elif False: - ResourcePolicySnapshotSchedulePolicyArgsDict: TypeAlias = Mapping[str, Any] + ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ResourcePolicySnapshotSchedulePolicyArgs: +class ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs: def __init__(__self__, *, - schedule: pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs'], - retention_policy: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs']] = None, - snapshot_properties: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs']] = None): + domain: Optional[pulumi.Input[str]] = None, + metadatas: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + reason: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs'] schedule: Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. - Structure is documented below. - :param pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs'] retention_policy: Retention policy applied to snapshots created by this resource policy. - Structure is documented below. - :param pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs'] snapshot_properties: Properties with which the snapshots are created, such as labels. - Structure is documented below. + :param pulumi.Input[str] domain: (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadatas: (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + :param pulumi.Input[str] reason: (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. """ - pulumi.set(__self__, "schedule", schedule) - if retention_policy is not None: - pulumi.set(__self__, "retention_policy", retention_policy) - if snapshot_properties is not None: - pulumi.set(__self__, "snapshot_properties", snapshot_properties) + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) @property @pulumi.getter - def schedule(self) -> pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs']: + def domain(self) -> Optional[pulumi.Input[str]]: """ - Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. - Structure is documented below. + (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". """ - return pulumi.get(self, "schedule") + return pulumi.get(self, "domain") - @schedule.setter - def schedule(self, value: pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs']): - pulumi.set(self, "schedule", value) + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) @property - @pulumi.getter(name="retentionPolicy") - def retention_policy(self) -> Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs']]: + @pulumi.getter + def metadatas(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - Retention policy applied to snapshots created by this resource policy. - Structure is documented below. + (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. """ - return pulumi.get(self, "retention_policy") + return pulumi.get(self, "metadatas") - @retention_policy.setter - def retention_policy(self, value: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs']]): - pulumi.set(self, "retention_policy", value) + @metadatas.setter + def metadatas(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "metadatas", value) @property - @pulumi.getter(name="snapshotProperties") - def snapshot_properties(self) -> Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs']]: + @pulumi.getter + def reason(self) -> Optional[pulumi.Input[str]]: """ - Properties with which the snapshots are created, such as labels. - Structure is documented below. + (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. """ - return pulumi.get(self, "snapshot_properties") + return pulumi.get(self, "reason") - @snapshot_properties.setter - def snapshot_properties(self, value: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs']]): - pulumi.set(self, "snapshot_properties", value) + @reason.setter + def reason(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "reason", value) if not MYPY: - class ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgsDict(TypedDict): - max_retention_days: pulumi.Input[int] - """ - Maximum age of the snapshot that is allowed to be kept. - """ - on_source_disk_delete: NotRequired[pulumi.Input[str]] + class ResizeRequestStatusErrorErrorErrorDetailHelpArgsDict(TypedDict): + links: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict']]]] """ - Specifies the behavior to apply to scheduled snapshots when - the source disk is deleted. - Default value is `KEEP_AUTO_SNAPSHOTS`. - Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + (Output) + [Output Only] + Structure is documented below. """ elif False: - ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgsDict: TypeAlias = Mapping[str, Any] + ResizeRequestStatusErrorErrorErrorDetailHelpArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs: +class ResizeRequestStatusErrorErrorErrorDetailHelpArgs: def __init__(__self__, *, - max_retention_days: pulumi.Input[int], - on_source_disk_delete: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[int] max_retention_days: Maximum age of the snapshot that is allowed to be kept. - :param pulumi.Input[str] on_source_disk_delete: Specifies the behavior to apply to scheduled snapshots when - the source disk is deleted. - Default value is `KEEP_AUTO_SNAPSHOTS`. - Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. - """ - pulumi.set(__self__, "max_retention_days", max_retention_days) - if on_source_disk_delete is not None: - pulumi.set(__self__, "on_source_disk_delete", on_source_disk_delete) - - @property - @pulumi.getter(name="maxRetentionDays") - def max_retention_days(self) -> pulumi.Input[int]: + links: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]] = None): """ - Maximum age of the snapshot that is allowed to be kept. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]] links: (Output) + [Output Only] + Structure is documented below. """ - return pulumi.get(self, "max_retention_days") - - @max_retention_days.setter - def max_retention_days(self, value: pulumi.Input[int]): - pulumi.set(self, "max_retention_days", value) + if links is not None: + pulumi.set(__self__, "links", links) @property - @pulumi.getter(name="onSourceDiskDelete") - def on_source_disk_delete(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter + def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]]: """ - Specifies the behavior to apply to scheduled snapshots when - the source disk is deleted. - Default value is `KEEP_AUTO_SNAPSHOTS`. - Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + (Output) + [Output Only] + Structure is documented below. """ - return pulumi.get(self, "on_source_disk_delete") + return pulumi.get(self, "links") - @on_source_disk_delete.setter - def on_source_disk_delete(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "on_source_disk_delete", value) + @links.setter + def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]]): + pulumi.set(self, "links", value) if not MYPY: - class ResourcePolicySnapshotSchedulePolicyScheduleArgsDict(TypedDict): - daily_schedule: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgsDict']] - """ - The policy will execute every nth day at the specified time. - Structure is documented below. - """ - hourly_schedule: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgsDict']] + class ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict(TypedDict): + description: NotRequired[pulumi.Input[str]] """ - The policy will execute every nth hour starting at the specified time. - Structure is documented below. + An optional description of this resize-request. """ - weekly_schedule: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgsDict']] + url: NotRequired[pulumi.Input[str]] """ - Allows specifying a snapshot time for each day of the week. - Structure is documented below. + (Output) + The URL of the link. """ elif False: - ResourcePolicySnapshotSchedulePolicyScheduleArgsDict: TypeAlias = Mapping[str, Any] + ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict: TypeAlias = Mapping[str, Any] @pulumi.input_type -class ResourcePolicySnapshotSchedulePolicyScheduleArgs: +class ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs: def __init__(__self__, *, - daily_schedule: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def url(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The URL of the link. + """ + return pulumi.get(self, "url") + + @url.setter + def url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "url", value) + + +if not MYPY: + class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict(TypedDict): + locale: NotRequired[pulumi.Input[str]] + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + The localized error message in the above locale. + """ +elif False: + ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs: + def __init__(__self__, *, + locale: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. + """ + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def locale(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + return pulumi.get(self, "locale") + + @locale.setter + def locale(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "locale", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict(TypedDict): + dimensions: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + (Output) + The map holding related quota dimensions + """ + future_limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + limit_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The name of the quota limit. + """ + metric_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The Compute Engine quota metric name. + """ + rollout_status: NotRequired[pulumi.Input[str]] + """ + (Output) + Rollout status of the future quota limit. + """ +elif False: + ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs: + def __init__(__self__, *, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + future_limit: Optional[pulumi.Input[int]] = None, + limit: Optional[pulumi.Input[int]] = None, + limit_name: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + rollout_status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: (Output) + The map holding related quota dimensions + :param pulumi.Input[int] future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param pulumi.Input[int] limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param pulumi.Input[str] limit_name: (Output) + The name of the quota limit. + :param pulumi.Input[str] metric_name: (Output) + The Compute Engine quota metric name. + :param pulumi.Input[str] rollout_status: (Output) + Rollout status of the future quota limit. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) + + @property + @pulumi.getter + def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + (Output) + The map holding related quota dimensions + """ + return pulumi.get(self, "dimensions") + + @dimensions.setter + def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "dimensions", value) + + @property + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "future_limit") + + @future_limit.setter + def future_limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "future_limit", value) + + @property + @pulumi.getter + def limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "limit") + + @limit.setter + def limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "limit", value) + + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") + + @limit_name.setter + def limit_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "limit_name", value) + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The Compute Engine quota metric name. + """ + return pulumi.get(self, "metric_name") + + @metric_name.setter + def metric_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metric_name", value) + + @property + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + Rollout status of the future quota limit. + """ + return pulumi.get(self, "rollout_status") + + @rollout_status.setter + def rollout_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rollout_status", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorArgsDict']]]] + """ + (Output) + [Output only] Fatal 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. + Structure is documented below. + """ +elif False: + ResizeRequestStatusLastAttemptArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptArgs: + def __init__(__self__, *, + errors: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorArgs']]] errors: (Output) + [Output only] Fatal 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. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorArgs']]]]: + """ + (Output) + [Output only] Fatal 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. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorArgs']]]]): + pulumi.set(self, "errors", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorArgsDict(TypedDict): + errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorArgsDict']]]] + """ + (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ +elif False: + ResizeRequestStatusLastAttemptErrorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorArgs: + def __init__(__self__, *, + errors: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorArgs']]] errors: (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorArgs']]]]: + """ + (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + @errors.setter + def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorArgs']]]]): + pulumi.set(self, "errors", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorErrorArgsDict(TypedDict): + code: NotRequired[pulumi.Input[str]] + """ + (Output) + [Output Only] The error type identifier for this error. + """ + error_details: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict']]]] + """ + (Output) + [Output Only] An optional list 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. + Structure is documented below. + """ + location: NotRequired[pulumi.Input[str]] + """ + (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + The localized error message in the above locale. + """ +elif False: + ResizeRequestStatusLastAttemptErrorErrorArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorErrorArgs: + def __init__(__self__, *, + code: Optional[pulumi.Input[str]] = None, + error_details: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]] = None, + location: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] code: (Output) + [Output Only] The error type identifier for this error. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]] error_details: (Output) + [Output Only] An optional list 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. + Structure is documented below. + :param pulumi.Input[str] location: (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + [Output Only] The error type identifier for this error. + """ + return pulumi.get(self, "code") + + @code.setter + def code(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "code", value) + + @property + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]]: + """ + (Output) + [Output Only] An optional list 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. + Structure is documented below. + """ + return pulumi.get(self, "error_details") + + @error_details.setter + def error_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]]): + pulumi.set(self, "error_details", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict(TypedDict): + error_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict']]]] + """ + (Output) + [Output Only] + Structure is documented below. + """ + helps: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict']]]] + """ + (Output) + [Output Only] + Structure is documented below. + """ + localized_messages: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict']]]] + """ + (Output) + [Output Only] + Structure is documented below. + """ + quota_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict']]]] + """ + (Output) + [Output Only] + Structure is documented below. + """ +elif False: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs: + def __init__(__self__, *, + error_infos: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]] = None, + helps: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]] = None, + localized_messages: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]] = None, + quota_infos: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]] error_infos: (Output) + [Output Only] + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]] helps: (Output) + [Output Only] + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]] localized_messages: (Output) + [Output Only] + Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]] quota_infos: (Output) + [Output Only] + Structure is documented below. + """ + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) + + @property + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "error_infos") + + @error_infos.setter + def error_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]]): + pulumi.set(self, "error_infos", value) + + @property + @pulumi.getter + def helps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "helps") + + @helps.setter + def helps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]]): + pulumi.set(self, "helps", value) + + @property + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "localized_messages") + + @localized_messages.setter + def localized_messages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]]): + pulumi.set(self, "localized_messages", value) + + @property + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "quota_infos") + + @quota_infos.setter + def quota_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]]): + pulumi.set(self, "quota_infos", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict(TypedDict): + domain: NotRequired[pulumi.Input[str]] + """ + (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + """ + metadatas: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + """ + reason: NotRequired[pulumi.Input[str]] + """ + (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + """ +elif False: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs: + def __init__(__self__, *, + domain: Optional[pulumi.Input[str]] = None, + metadatas: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + reason: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] domain: (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadatas: (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + :param pulumi.Input[str] reason: (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + """ + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) + + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + + @property + @pulumi.getter + def metadatas(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + """ + return pulumi.get(self, "metadatas") + + @metadatas.setter + def metadatas(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "metadatas", value) + + @property + @pulumi.getter + def reason(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + """ + return pulumi.get(self, "reason") + + @reason.setter + def reason(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "reason", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict(TypedDict): + links: NotRequired[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict']]]] + """ + (Output) + [Output Only] + Structure is documented below. + """ +elif False: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs: + def __init__(__self__, *, + links: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]] links: (Output) + [Output Only] + Structure is documented below. + """ + if links is not None: + pulumi.set(__self__, "links", links) + + @property + @pulumi.getter + def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "links") + + @links.setter + def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]]): + pulumi.set(self, "links", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict(TypedDict): + description: NotRequired[pulumi.Input[str]] + """ + An optional description of this resize-request. + """ + url: NotRequired[pulumi.Input[str]] + """ + (Output) + The URL of the link. + """ +elif False: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs: + def __init__(__self__, *, + description: Optional[pulumi.Input[str]] = None, + url: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def url(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The URL of the link. + """ + return pulumi.get(self, "url") + + @url.setter + def url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "url", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict(TypedDict): + locale: NotRequired[pulumi.Input[str]] + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + message: NotRequired[pulumi.Input[str]] + """ + (Output) + The localized error message in the above locale. + """ +elif False: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs: + def __init__(__self__, *, + locale: Optional[pulumi.Input[str]] = None, + message: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param pulumi.Input[str] message: (Output) + The localized error message in the above locale. + """ + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def locale(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + return pulumi.get(self, "locale") + + @locale.setter + def locale(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "locale", value) + + @property + @pulumi.getter + def message(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + @message.setter + def message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "message", value) + + +if not MYPY: + class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict(TypedDict): + dimensions: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] + """ + (Output) + The map holding related quota dimensions + """ + future_limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + limit: NotRequired[pulumi.Input[int]] + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + limit_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The name of the quota limit. + """ + metric_name: NotRequired[pulumi.Input[str]] + """ + (Output) + The Compute Engine quota metric name. + """ + rollout_status: NotRequired[pulumi.Input[str]] + """ + (Output) + Rollout status of the future quota limit. + """ +elif False: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs: + def __init__(__self__, *, + dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + future_limit: Optional[pulumi.Input[int]] = None, + limit: Optional[pulumi.Input[int]] = None, + limit_name: Optional[pulumi.Input[str]] = None, + metric_name: Optional[pulumi.Input[str]] = None, + rollout_status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: (Output) + The map holding related quota dimensions + :param pulumi.Input[int] future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param pulumi.Input[int] limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param pulumi.Input[str] limit_name: (Output) + The name of the quota limit. + :param pulumi.Input[str] metric_name: (Output) + The Compute Engine quota metric name. + :param pulumi.Input[str] rollout_status: (Output) + Rollout status of the future quota limit. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) + + @property + @pulumi.getter + def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + (Output) + The map holding related quota dimensions + """ + return pulumi.get(self, "dimensions") + + @dimensions.setter + def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "dimensions", value) + + @property + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "future_limit") + + @future_limit.setter + def future_limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "future_limit", value) + + @property + @pulumi.getter + def limit(self) -> Optional[pulumi.Input[int]]: + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "limit") + + @limit.setter + def limit(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "limit", value) + + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") + + @limit_name.setter + def limit_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "limit_name", value) + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + The Compute Engine quota metric name. + """ + return pulumi.get(self, "metric_name") + + @metric_name.setter + def metric_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "metric_name", value) + + @property + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[pulumi.Input[str]]: + """ + (Output) + Rollout status of the future quota limit. + """ + return pulumi.get(self, "rollout_status") + + @rollout_status.setter + def rollout_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "rollout_status", value) + + +if not MYPY: + class ResourcePolicyDiskConsistencyGroupPolicyArgsDict(TypedDict): + enabled: pulumi.Input[bool] + """ + Enable disk consistency on the resource policy. + """ +elif False: + ResourcePolicyDiskConsistencyGroupPolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicyDiskConsistencyGroupPolicyArgs: + def __init__(__self__, *, + enabled: pulumi.Input[bool]): + """ + :param pulumi.Input[bool] enabled: Enable disk consistency on the resource policy. + """ + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Input[bool]: + """ + Enable disk consistency on the resource policy. + """ + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "enabled", value) + + +if not MYPY: + class ResourcePolicyGroupPlacementPolicyArgsDict(TypedDict): + availability_domain_count: NotRequired[pulumi.Input[int]] + """ + The number of availability domains instances will be spread across. If two instances are in different + availability domain, they will not be put in the same low latency network + """ + collocation: NotRequired[pulumi.Input[str]] + """ + Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. + Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`. If compute instances are created + with a COLLOCATED policy, then exactly `vm_count` instances must be created at the same time with the resource policy + attached. + Possible values are: `COLLOCATED`. + """ + max_distance: NotRequired[pulumi.Input[int]] + """ + Specifies the number of max logical switches. + """ + vm_count: NotRequired[pulumi.Input[int]] + """ + Number of VMs in this placement group. Google does not recommend that you use this field + unless you use a compact policy and you want your policy to work only if it contains this + exact number of VMs. + """ +elif False: + ResourcePolicyGroupPlacementPolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicyGroupPlacementPolicyArgs: + def __init__(__self__, *, + availability_domain_count: Optional[pulumi.Input[int]] = None, + collocation: Optional[pulumi.Input[str]] = None, + max_distance: Optional[pulumi.Input[int]] = None, + vm_count: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] availability_domain_count: The number of availability domains instances will be spread across. If two instances are in different + availability domain, they will not be put in the same low latency network + :param pulumi.Input[str] collocation: Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. + Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`. If compute instances are created + with a COLLOCATED policy, then exactly `vm_count` instances must be created at the same time with the resource policy + attached. + Possible values are: `COLLOCATED`. + :param pulumi.Input[int] max_distance: Specifies the number of max logical switches. + :param pulumi.Input[int] vm_count: Number of VMs in this placement group. Google does not recommend that you use this field + unless you use a compact policy and you want your policy to work only if it contains this + exact number of VMs. + """ + if availability_domain_count is not None: + pulumi.set(__self__, "availability_domain_count", availability_domain_count) + if collocation is not None: + pulumi.set(__self__, "collocation", collocation) + if max_distance is not None: + pulumi.set(__self__, "max_distance", max_distance) + if vm_count is not None: + pulumi.set(__self__, "vm_count", vm_count) + + @property + @pulumi.getter(name="availabilityDomainCount") + def availability_domain_count(self) -> Optional[pulumi.Input[int]]: + """ + The number of availability domains instances will be spread across. If two instances are in different + availability domain, they will not be put in the same low latency network + """ + return pulumi.get(self, "availability_domain_count") + + @availability_domain_count.setter + def availability_domain_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "availability_domain_count", value) + + @property + @pulumi.getter + def collocation(self) -> Optional[pulumi.Input[str]]: + """ + Collocation specifies whether to place VMs inside the same availability domain on the same low-latency network. + Specify `COLLOCATED` to enable collocation. Can only be specified with `vm_count`. If compute instances are created + with a COLLOCATED policy, then exactly `vm_count` instances must be created at the same time with the resource policy + attached. + Possible values are: `COLLOCATED`. + """ + return pulumi.get(self, "collocation") + + @collocation.setter + def collocation(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "collocation", value) + + @property + @pulumi.getter(name="maxDistance") + def max_distance(self) -> Optional[pulumi.Input[int]]: + """ + Specifies the number of max logical switches. + """ + return pulumi.get(self, "max_distance") + + @max_distance.setter + def max_distance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "max_distance", value) + + @property + @pulumi.getter(name="vmCount") + def vm_count(self) -> Optional[pulumi.Input[int]]: + """ + Number of VMs in this placement group. Google does not recommend that you use this field + unless you use a compact policy and you want your policy to work only if it contains this + exact number of VMs. + """ + return pulumi.get(self, "vm_count") + + @vm_count.setter + def vm_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "vm_count", value) + + +if not MYPY: + class ResourcePolicyInstanceSchedulePolicyArgsDict(TypedDict): + time_zone: pulumi.Input[str] + """ + Specifies the time zone to be used in 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. + """ + expiration_time: NotRequired[pulumi.Input[str]] + """ + The expiration time of the schedule. The timestamp is an RFC3339 string. + """ + start_time: NotRequired[pulumi.Input[str]] + """ + The start time of the schedule. The timestamp is an RFC3339 string. + """ + vm_start_schedule: NotRequired[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgsDict']] + """ + Specifies the schedule for starting instances. + Structure is documented below. + """ + vm_stop_schedule: NotRequired[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgsDict']] + """ + Specifies the schedule for stopping instances. + Structure is documented below. + """ +elif False: + ResourcePolicyInstanceSchedulePolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicyInstanceSchedulePolicyArgs: + def __init__(__self__, *, + time_zone: pulumi.Input[str], + expiration_time: Optional[pulumi.Input[str]] = None, + start_time: Optional[pulumi.Input[str]] = None, + vm_start_schedule: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs']] = None, + vm_stop_schedule: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs']] = None): + """ + :param pulumi.Input[str] time_zone: Specifies the time zone to be used in 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. + :param pulumi.Input[str] expiration_time: The expiration time of the schedule. The timestamp is an RFC3339 string. + :param pulumi.Input[str] start_time: The start time of the schedule. The timestamp is an RFC3339 string. + :param pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs'] vm_start_schedule: Specifies the schedule for starting instances. + Structure is documented below. + :param pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs'] vm_stop_schedule: Specifies the schedule for stopping instances. + Structure is documented below. + """ + pulumi.set(__self__, "time_zone", time_zone) + if expiration_time is not None: + pulumi.set(__self__, "expiration_time", expiration_time) + if start_time is not None: + pulumi.set(__self__, "start_time", start_time) + if vm_start_schedule is not None: + pulumi.set(__self__, "vm_start_schedule", vm_start_schedule) + if vm_stop_schedule is not None: + pulumi.set(__self__, "vm_stop_schedule", vm_stop_schedule) + + @property + @pulumi.getter(name="timeZone") + def time_zone(self) -> pulumi.Input[str]: + """ + Specifies the time zone to be used in 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. + """ + return pulumi.get(self, "time_zone") + + @time_zone.setter + def time_zone(self, value: pulumi.Input[str]): + pulumi.set(self, "time_zone", value) + + @property + @pulumi.getter(name="expirationTime") + def expiration_time(self) -> Optional[pulumi.Input[str]]: + """ + The expiration time of the schedule. The timestamp is an RFC3339 string. + """ + return pulumi.get(self, "expiration_time") + + @expiration_time.setter + def expiration_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "expiration_time", value) + + @property + @pulumi.getter(name="startTime") + def start_time(self) -> Optional[pulumi.Input[str]]: + """ + The start time of the schedule. The timestamp is an RFC3339 string. + """ + return pulumi.get(self, "start_time") + + @start_time.setter + def start_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "start_time", value) + + @property + @pulumi.getter(name="vmStartSchedule") + def vm_start_schedule(self) -> Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs']]: + """ + Specifies the schedule for starting instances. + Structure is documented below. + """ + return pulumi.get(self, "vm_start_schedule") + + @vm_start_schedule.setter + def vm_start_schedule(self, value: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs']]): + pulumi.set(self, "vm_start_schedule", value) + + @property + @pulumi.getter(name="vmStopSchedule") + def vm_stop_schedule(self) -> Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs']]: + """ + Specifies the schedule for stopping instances. + Structure is documented below. + """ + return pulumi.get(self, "vm_stop_schedule") + + @vm_stop_schedule.setter + def vm_stop_schedule(self, value: Optional[pulumi.Input['ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs']]): + pulumi.set(self, "vm_stop_schedule", value) + + +if not MYPY: + class ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgsDict(TypedDict): + schedule: pulumi.Input[str] + """ + Specifies the frequency for the operation, using the unix-cron format. + """ +elif False: + ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicyInstanceSchedulePolicyVmStartScheduleArgs: + def __init__(__self__, *, + schedule: pulumi.Input[str]): + """ + :param pulumi.Input[str] schedule: Specifies the frequency for the operation, using the unix-cron format. + """ + pulumi.set(__self__, "schedule", schedule) + + @property + @pulumi.getter + def schedule(self) -> pulumi.Input[str]: + """ + Specifies the frequency for the operation, using the unix-cron format. + """ + return pulumi.get(self, "schedule") + + @schedule.setter + def schedule(self, value: pulumi.Input[str]): + pulumi.set(self, "schedule", value) + + +if not MYPY: + class ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgsDict(TypedDict): + schedule: pulumi.Input[str] + """ + Specifies the frequency for the operation, using the unix-cron format. + """ +elif False: + ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicyInstanceSchedulePolicyVmStopScheduleArgs: + def __init__(__self__, *, + schedule: pulumi.Input[str]): + """ + :param pulumi.Input[str] schedule: Specifies the frequency for the operation, using the unix-cron format. + """ + pulumi.set(__self__, "schedule", schedule) + + @property + @pulumi.getter + def schedule(self) -> pulumi.Input[str]: + """ + Specifies the frequency for the operation, using the unix-cron format. + """ + return pulumi.get(self, "schedule") + + @schedule.setter + def schedule(self, value: pulumi.Input[str]): + pulumi.set(self, "schedule", value) + + +if not MYPY: + class ResourcePolicySnapshotSchedulePolicyArgsDict(TypedDict): + schedule: pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgsDict'] + """ + Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. + Structure is documented below. + """ + retention_policy: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgsDict']] + """ + Retention policy applied to snapshots created by this resource policy. + Structure is documented below. + """ + snapshot_properties: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgsDict']] + """ + Properties with which the snapshots are created, such as labels. + Structure is documented below. + """ +elif False: + ResourcePolicySnapshotSchedulePolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicySnapshotSchedulePolicyArgs: + def __init__(__self__, *, + schedule: pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs'], + retention_policy: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs']] = None, + snapshot_properties: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs']] = None): + """ + :param pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs'] schedule: Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. + Structure is documented below. + :param pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs'] retention_policy: Retention policy applied to snapshots created by this resource policy. + Structure is documented below. + :param pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs'] snapshot_properties: Properties with which the snapshots are created, such as labels. + Structure is documented below. + """ + pulumi.set(__self__, "schedule", schedule) + if retention_policy is not None: + pulumi.set(__self__, "retention_policy", retention_policy) + if snapshot_properties is not None: + pulumi.set(__self__, "snapshot_properties", snapshot_properties) + + @property + @pulumi.getter + def schedule(self) -> pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs']: + """ + Contains one of an `hourlySchedule`, `dailySchedule`, or `weeklySchedule`. + Structure is documented below. + """ + return pulumi.get(self, "schedule") + + @schedule.setter + def schedule(self, value: pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleArgs']): + pulumi.set(self, "schedule", value) + + @property + @pulumi.getter(name="retentionPolicy") + def retention_policy(self) -> Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs']]: + """ + Retention policy applied to snapshots created by this resource policy. + Structure is documented below. + """ + return pulumi.get(self, "retention_policy") + + @retention_policy.setter + def retention_policy(self, value: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs']]): + pulumi.set(self, "retention_policy", value) + + @property + @pulumi.getter(name="snapshotProperties") + def snapshot_properties(self) -> Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs']]: + """ + Properties with which the snapshots are created, such as labels. + Structure is documented below. + """ + return pulumi.get(self, "snapshot_properties") + + @snapshot_properties.setter + def snapshot_properties(self, value: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs']]): + pulumi.set(self, "snapshot_properties", value) + + +if not MYPY: + class ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgsDict(TypedDict): + max_retention_days: pulumi.Input[int] + """ + Maximum age of the snapshot that is allowed to be kept. + """ + on_source_disk_delete: NotRequired[pulumi.Input[str]] + """ + Specifies the behavior to apply to scheduled snapshots when + the source disk is deleted. + Default value is `KEEP_AUTO_SNAPSHOTS`. + Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + """ +elif False: + ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicySnapshotSchedulePolicyRetentionPolicyArgs: + def __init__(__self__, *, + max_retention_days: pulumi.Input[int], + on_source_disk_delete: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] max_retention_days: Maximum age of the snapshot that is allowed to be kept. + :param pulumi.Input[str] on_source_disk_delete: Specifies the behavior to apply to scheduled snapshots when + the source disk is deleted. + Default value is `KEEP_AUTO_SNAPSHOTS`. + Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + """ + pulumi.set(__self__, "max_retention_days", max_retention_days) + if on_source_disk_delete is not None: + pulumi.set(__self__, "on_source_disk_delete", on_source_disk_delete) + + @property + @pulumi.getter(name="maxRetentionDays") + def max_retention_days(self) -> pulumi.Input[int]: + """ + Maximum age of the snapshot that is allowed to be kept. + """ + return pulumi.get(self, "max_retention_days") + + @max_retention_days.setter + def max_retention_days(self, value: pulumi.Input[int]): + pulumi.set(self, "max_retention_days", value) + + @property + @pulumi.getter(name="onSourceDiskDelete") + def on_source_disk_delete(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the behavior to apply to scheduled snapshots when + the source disk is deleted. + Default value is `KEEP_AUTO_SNAPSHOTS`. + Possible values are: `KEEP_AUTO_SNAPSHOTS`, `APPLY_RETENTION_POLICY`. + """ + return pulumi.get(self, "on_source_disk_delete") + + @on_source_disk_delete.setter + def on_source_disk_delete(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "on_source_disk_delete", value) + + +if not MYPY: + class ResourcePolicySnapshotSchedulePolicyScheduleArgsDict(TypedDict): + daily_schedule: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgsDict']] + """ + The policy will execute every nth day at the specified time. + Structure is documented below. + """ + hourly_schedule: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgsDict']] + """ + The policy will execute every nth hour starting at the specified time. + Structure is documented below. + """ + weekly_schedule: NotRequired[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgsDict']] + """ + Allows specifying a snapshot time for each day of the week. + Structure is documented below. + """ +elif False: + ResourcePolicySnapshotSchedulePolicyScheduleArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ResourcePolicySnapshotSchedulePolicyScheduleArgs: + def __init__(__self__, *, + daily_schedule: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleDailyScheduleArgs']] = None, hourly_schedule: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleHourlyScheduleArgs']] = None, weekly_schedule: Optional[pulumi.Input['ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleArgs']] = None): """ @@ -40741,6 +42438,40 @@ def multiplier(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "multiplier", value) +if not MYPY: + class RouterPeerCustomLearnedIpRangeArgsDict(TypedDict): + range: pulumi.Input[str] + """ + The IP range to advertise. The value must be a + CIDR-formatted string. + """ +elif False: + RouterPeerCustomLearnedIpRangeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RouterPeerCustomLearnedIpRangeArgs: + def __init__(__self__, *, + range: pulumi.Input[str]): + """ + :param pulumi.Input[str] range: The IP range to advertise. The value must be a + CIDR-formatted string. + """ + pulumi.set(__self__, "range", range) + + @property + @pulumi.getter + def range(self) -> pulumi.Input[str]: + """ + The IP range to advertise. The value must be a + CIDR-formatted string. + """ + return pulumi.get(self, "range") + + @range.setter + def range(self, value: pulumi.Input[str]): + pulumi.set(self, "range", value) + + if not MYPY: class RouterPeerMd5AuthenticationKeyArgsDict(TypedDict): key: pulumi.Input[str] @@ -40806,6 +42537,280 @@ def name(self, value: pulumi.Input[str]): pulumi.set(self, "name", value) +if not MYPY: + class RouterRoutePolicyTermArgsDict(TypedDict): + priority: pulumi.Input[int] + """ + The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + """ + actions: NotRequired[pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermActionArgsDict']]]] + """ + 'CEL expressions to evaluate to modify a route when this term matches.'\\ + Structure is documented below. + """ + match: NotRequired[pulumi.Input['RouterRoutePolicyTermMatchArgsDict']] + """ + CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + Structure is documented below. + """ +elif False: + RouterRoutePolicyTermArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RouterRoutePolicyTermArgs: + def __init__(__self__, *, + priority: pulumi.Input[int], + actions: Optional[pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermActionArgs']]]] = None, + match: Optional[pulumi.Input['RouterRoutePolicyTermMatchArgs']] = None): + """ + :param pulumi.Input[int] priority: The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + :param pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermActionArgs']]] actions: 'CEL expressions to evaluate to modify a route when this term matches.'\\ + Structure is documented below. + :param pulumi.Input['RouterRoutePolicyTermMatchArgs'] match: CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + Structure is documented below. + """ + pulumi.set(__self__, "priority", priority) + if actions is not None: + pulumi.set(__self__, "actions", actions) + if match is not None: + pulumi.set(__self__, "match", match) + + @property + @pulumi.getter + def priority(self) -> pulumi.Input[int]: + """ + The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + """ + return pulumi.get(self, "priority") + + @priority.setter + def priority(self, value: pulumi.Input[int]): + pulumi.set(self, "priority", value) + + @property + @pulumi.getter + def actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermActionArgs']]]]: + """ + 'CEL expressions to evaluate to modify a route when this term matches.'\\ + Structure is documented below. + """ + return pulumi.get(self, "actions") + + @actions.setter + def actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermActionArgs']]]]): + pulumi.set(self, "actions", value) + + @property + @pulumi.getter + def match(self) -> Optional[pulumi.Input['RouterRoutePolicyTermMatchArgs']]: + """ + CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + Structure is documented below. + """ + return pulumi.get(self, "match") + + @match.setter + def match(self, value: Optional[pulumi.Input['RouterRoutePolicyTermMatchArgs']]): + pulumi.set(self, "match", value) + + +if not MYPY: + class RouterRoutePolicyTermActionArgsDict(TypedDict): + expression: pulumi.Input[str] + """ + Textual representation of an expression in Common Expression + Language syntax. + """ + description: NotRequired[pulumi.Input[str]] + """ + Description of the expression + """ + location: NotRequired[pulumi.Input[str]] + """ + String indicating the location of the expression for error + reporting, e.g. a file name and a position in the file + + - - - + """ + title: NotRequired[pulumi.Input[str]] + """ + Title for the expression, i.e. a short string describing its + purpose. + """ +elif False: + RouterRoutePolicyTermActionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RouterRoutePolicyTermActionArgs: + def __init__(__self__, *, + expression: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression + Language syntax. + :param pulumi.Input[str] description: Description of the expression + :param pulumi.Input[str] location: String indicating the location of the expression for error + reporting, e.g. a file name and a position in the file + + - - - + :param pulumi.Input[str] title: Title for the expression, i.e. a short string describing its + purpose. + """ + pulumi.set(__self__, "expression", expression) + if description is not None: + pulumi.set(__self__, "description", description) + if location is not None: + pulumi.set(__self__, "location", location) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def expression(self) -> pulumi.Input[str]: + """ + Textual representation of an expression in Common Expression + Language syntax. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: pulumi.Input[str]): + pulumi.set(self, "expression", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the expression + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + String indicating the location of the expression for error + reporting, e.g. a file name and a position in the file + + - - - + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def title(self) -> Optional[pulumi.Input[str]]: + """ + Title for the expression, i.e. a short string describing its + purpose. + """ + return pulumi.get(self, "title") + + @title.setter + def title(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "title", value) + + +if not MYPY: + class RouterRoutePolicyTermMatchArgsDict(TypedDict): + expression: pulumi.Input[str] + """ + Textual representation of an expression in Common Expression Language syntax. + """ + description: NotRequired[pulumi.Input[str]] + """ + Description of the expression + """ + location: NotRequired[pulumi.Input[str]] + """ + String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + """ + title: NotRequired[pulumi.Input[str]] + """ + Title for the expression, i.e. a short string describing its purpose. + """ +elif False: + RouterRoutePolicyTermMatchArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class RouterRoutePolicyTermMatchArgs: + def __init__(__self__, *, + expression: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + title: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax. + :param pulumi.Input[str] description: Description of the expression + :param pulumi.Input[str] location: String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + :param pulumi.Input[str] title: Title for the expression, i.e. a short string describing its purpose. + """ + pulumi.set(__self__, "expression", expression) + if description is not None: + pulumi.set(__self__, "description", description) + if location is not None: + pulumi.set(__self__, "location", location) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def expression(self) -> pulumi.Input[str]: + """ + Textual representation of an expression in Common Expression Language syntax. + """ + return pulumi.get(self, "expression") + + @expression.setter + def expression(self, value: pulumi.Input[str]): + pulumi.set(self, "expression", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the expression + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def title(self) -> Optional[pulumi.Input[str]]: + """ + Title for the expression, i.e. a short string describing its purpose. + """ + return pulumi.get(self, "title") + + @title.setter + def title(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "title", value) + + if not MYPY: class SecurityPolicyAdaptiveProtectionConfigArgsDict(TypedDict): auto_deploy_config: NotRequired[pulumi.Input['SecurityPolicyAdaptiveProtectionConfigAutoDeployConfigArgsDict']] diff --git a/sdk/python/pulumi_gcp/compute/backend_service.py b/sdk/python/pulumi_gcp/compute/backend_service.py index cbd83b1281..a63ce48738 100644 --- a/sdk/python/pulumi_gcp/compute/backend_service.py +++ b/sdk/python/pulumi_gcp/compute/backend_service.py @@ -1476,6 +1476,9 @@ def __init__(__self__, * How-to Guides * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) + > **Warning:** All arguments including the following potentially sensitive + values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`. + ## Example Usage ### Backend Service Basic @@ -1903,6 +1906,9 @@ def __init__(__self__, * How-to Guides * [Official Documentation](https://cloud.google.com/compute/docs/load-balancing/http/backend-service) + > **Warning:** All arguments including the following potentially sensitive + values will be stored in the raw state as plain text: `iap.oauth2_client_secret`, `iap.oauth2_client_secret_sha256`, `security_settings.aws_v4_authentication.access_key`. + ## Example Usage ### Backend Service Basic diff --git a/sdk/python/pulumi_gcp/compute/outputs.py b/sdk/python/pulumi_gcp/compute/outputs.py index aa1a6dc7c3..a815cb2a8c 100644 --- a/sdk/python/pulumi_gcp/compute/outputs.py +++ b/sdk/python/pulumi_gcp/compute/outputs.py @@ -52,6 +52,7 @@ 'BackendServiceOutlierDetectionBaseEjectionTime', 'BackendServiceOutlierDetectionInterval', 'BackendServiceSecuritySettings', + 'BackendServiceSecuritySettingsAwsV4Authentication', 'DiskAsyncPrimaryDisk', 'DiskAsyncReplicationSecondaryDisk', 'DiskDiskEncryptionKey', @@ -409,6 +410,25 @@ 'ReservationSpecificReservationInstanceProperties', 'ReservationSpecificReservationInstancePropertiesGuestAccelerator', 'ReservationSpecificReservationInstancePropertiesLocalSsd', + 'ResizeRequestRequestedRunDuration', + 'ResizeRequestStatus', + 'ResizeRequestStatusError', + 'ResizeRequestStatusErrorError', + 'ResizeRequestStatusErrorErrorErrorDetail', + 'ResizeRequestStatusErrorErrorErrorDetailErrorInfo', + 'ResizeRequestStatusErrorErrorErrorDetailHelp', + 'ResizeRequestStatusErrorErrorErrorDetailHelpLink', + 'ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage', + 'ResizeRequestStatusErrorErrorErrorDetailQuotaInfo', + 'ResizeRequestStatusLastAttempt', + 'ResizeRequestStatusLastAttemptError', + 'ResizeRequestStatusLastAttemptErrorError', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetail', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage', + 'ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo', 'ResourcePolicyDiskConsistencyGroupPolicy', 'ResourcePolicyGroupPlacementPolicy', 'ResourcePolicyInstanceSchedulePolicy', @@ -430,7 +450,11 @@ 'RouterNatSubnetwork', 'RouterPeerAdvertisedIpRange', 'RouterPeerBfd', + 'RouterPeerCustomLearnedIpRange', 'RouterPeerMd5AuthenticationKey', + 'RouterRoutePolicyTerm', + 'RouterRoutePolicyTermAction', + 'RouterRoutePolicyTermMatch', 'RouterStatusBestRouteResult', 'RouterStatusBestRoutesForRouterResult', 'SecurityPolicyAdaptiveProtectionConfig', @@ -587,6 +611,7 @@ 'GetBackendServiceOutlierDetectionBaseEjectionTimeResult', 'GetBackendServiceOutlierDetectionIntervalResult', 'GetBackendServiceSecuritySettingResult', + 'GetBackendServiceSecuritySettingAwsV4AuthenticationResult', 'GetDiskAsyncPrimaryDiskResult', 'GetDiskDiskEncryptionKeyResult', 'GetDiskGuestOsFeatureResult', @@ -3597,7 +3622,9 @@ class BackendServiceSecuritySettings(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "clientTlsPolicy": + if key == "awsV4Authentication": + suggest = "aws_v4_authentication" + elif key == "clientTlsPolicy": suggest = "client_tls_policy" elif key == "subjectAltNames": suggest = "subject_alt_names" @@ -3614,9 +3641,16 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - client_tls_policy: str, - subject_alt_names: Sequence[str]): + aws_v4_authentication: Optional['outputs.BackendServiceSecuritySettingsAwsV4Authentication'] = None, + client_tls_policy: Optional[str] = None, + subject_alt_names: Optional[Sequence[str]] = None): """ + :param 'BackendServiceSecuritySettingsAwsV4AuthenticationArgs' aws_v4_authentication: The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + Structure is documented below. + + + The `aws_v4_authentication` block supports: :param str client_tls_policy: ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource. @@ -3624,12 +3658,29 @@ def __init__(__self__, *, If specified, the client will verify that the server certificate's subject alt name matches one of the specified values. """ - pulumi.set(__self__, "client_tls_policy", client_tls_policy) - pulumi.set(__self__, "subject_alt_names", subject_alt_names) + if aws_v4_authentication is not None: + pulumi.set(__self__, "aws_v4_authentication", aws_v4_authentication) + if client_tls_policy is not None: + pulumi.set(__self__, "client_tls_policy", client_tls_policy) + if subject_alt_names is not None: + pulumi.set(__self__, "subject_alt_names", subject_alt_names) + + @property + @pulumi.getter(name="awsV4Authentication") + def aws_v4_authentication(self) -> Optional['outputs.BackendServiceSecuritySettingsAwsV4Authentication']: + """ + The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + Structure is documented below. + + + The `aws_v4_authentication` block supports: + """ + return pulumi.get(self, "aws_v4_authentication") @property @pulumi.getter(name="clientTlsPolicy") - def client_tls_policy(self) -> str: + def client_tls_policy(self) -> Optional[str]: """ ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect @@ -3639,7 +3690,7 @@ def client_tls_policy(self) -> str: @property @pulumi.getter(name="subjectAltNames") - def subject_alt_names(self) -> Sequence[str]: + def subject_alt_names(self) -> Optional[Sequence[str]]: """ A list of alternate names to verify the subject identity in the certificate. If specified, the client will verify that the server certificate's subject @@ -3648,6 +3699,88 @@ def subject_alt_names(self) -> Sequence[str]: return pulumi.get(self, "subject_alt_names") +@pulumi.output_type +class BackendServiceSecuritySettingsAwsV4Authentication(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "accessKey": + suggest = "access_key" + elif key == "accessKeyId": + suggest = "access_key_id" + elif key == "accessKeyVersion": + suggest = "access_key_version" + elif key == "originRegion": + suggest = "origin_region" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in BackendServiceSecuritySettingsAwsV4Authentication. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + BackendServiceSecuritySettingsAwsV4Authentication.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + BackendServiceSecuritySettingsAwsV4Authentication.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + access_key: Optional[str] = None, + access_key_id: Optional[str] = None, + access_key_version: Optional[str] = None, + origin_region: Optional[str] = None): + """ + :param str access_key: The access key used for s3 bucket authentication. + Required 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. + :param str access_key_id: The identifier of an access key used for s3 bucket authentication. + :param str access_key_version: The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + :param str origin_region: 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. + For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + """ + if access_key is not None: + pulumi.set(__self__, "access_key", access_key) + if access_key_id is not None: + pulumi.set(__self__, "access_key_id", access_key_id) + if access_key_version is not None: + pulumi.set(__self__, "access_key_version", access_key_version) + if origin_region is not None: + pulumi.set(__self__, "origin_region", origin_region) + + @property + @pulumi.getter(name="accessKey") + def access_key(self) -> Optional[str]: + """ + The access key used for s3 bucket authentication. + Required 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. + """ + return pulumi.get(self, "access_key") + + @property + @pulumi.getter(name="accessKeyId") + def access_key_id(self) -> Optional[str]: + """ + The identifier of an access key used for s3 bucket authentication. + """ + return pulumi.get(self, "access_key_id") + + @property + @pulumi.getter(name="accessKeyVersion") + def access_key_version(self) -> Optional[str]: + """ + The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + """ + return pulumi.get(self, "access_key_version") + + @property + @pulumi.getter(name="originRegion") + def origin_region(self) -> Optional[str]: + """ + 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. + For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + """ + return pulumi.get(self, "origin_region") + + @pulumi.output_type class DiskAsyncPrimaryDisk(dict): def __init__(__self__, *, @@ -6212,6 +6345,8 @@ def __key_warning(key: str): suggest = "provisioned_throughput" elif key == "resourceManagerTags": suggest = "resource_manager_tags" + elif key == "storagePool": + suggest = "storage_pool" if suggest: pulumi.log.warn(f"Key '{key}' not found in InstanceBootDiskInitializeParams. Access the value via the '{suggest}' property getter instead.") @@ -6232,6 +6367,7 @@ def __init__(__self__, *, provisioned_throughput: Optional[int] = None, resource_manager_tags: Optional[Mapping[str, Any]] = None, size: Optional[int] = None, + storage_pool: Optional[str] = None, type: Optional[str] = None): """ :param bool enable_confidential_compute: Whether this disk is using confidential compute mode. @@ -6264,6 +6400,10 @@ def __init__(__self__, *, :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param int size: The size of the image in gigabytes. If not specified, it will inherit the size of its base image. + :param str storage_pool: The URL of the storage pool in which the new disk is created. + For example: + * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * /projects/{project}/zones/{zone}/storagePools/{storagePool} :param str type: The GCE disk type. Such as pd-standard, pd-balanced or pd-ssd. """ if enable_confidential_compute is not None: @@ -6280,6 +6420,8 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_manager_tags", resource_manager_tags) if size is not None: pulumi.set(__self__, "size", size) + if storage_pool is not None: + pulumi.set(__self__, "storage_pool", storage_pool) if type is not None: pulumi.set(__self__, "type", type) @@ -6362,6 +6504,17 @@ def size(self) -> Optional[int]: """ return pulumi.get(self, "size") + @property + @pulumi.getter(name="storagePool") + def storage_pool(self) -> Optional[str]: + """ + The URL of the storage pool in which the new disk is created. + For example: + * https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/storagePools/{storagePool} + * /projects/{project}/zones/{zone}/storagePools/{storagePool} + """ + return pulumi.get(self, "storage_pool") + @property @pulumi.getter def type(self) -> Optional[str]: @@ -6729,6 +6882,8 @@ def __key_warning(key: str): suggest = "provisioned_throughput" elif key == "resourceManagerTags": suggest = "resource_manager_tags" + elif key == "storagePool": + suggest = "storage_pool" if suggest: pulumi.log.warn(f"Key '{key}' not found in InstanceFromMachineImageBootDiskInitializeParams. Access the value via the '{suggest}' property getter instead.") @@ -6749,6 +6904,7 @@ def __init__(__self__, *, provisioned_throughput: Optional[int] = None, resource_manager_tags: Optional[Mapping[str, Any]] = None, size: Optional[int] = None, + storage_pool: Optional[str] = None, type: Optional[str] = None): """ :param bool enable_confidential_compute: A flag to enable confidential compute mode on boot disk @@ -6758,6 +6914,7 @@ def __init__(__self__, *, :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param int size: The size of the image in gigabytes. + :param str storage_pool: The URL of the storage pool in which the new disk is created :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. """ if enable_confidential_compute is not None: @@ -6774,6 +6931,8 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_manager_tags", resource_manager_tags) if size is not None: pulumi.set(__self__, "size", size) + if storage_pool is not None: + pulumi.set(__self__, "storage_pool", storage_pool) if type is not None: pulumi.set(__self__, "type", type) @@ -6833,6 +6992,14 @@ def size(self) -> Optional[int]: """ return pulumi.get(self, "size") + @property + @pulumi.getter(name="storagePool") + def storage_pool(self) -> Optional[str]: + """ + The URL of the storage pool in which the new disk is created + """ + return pulumi.get(self, "storage_pool") + @property @pulumi.getter def type(self) -> Optional[str]: @@ -8321,6 +8488,8 @@ def __key_warning(key: str): suggest = "provisioned_throughput" elif key == "resourceManagerTags": suggest = "resource_manager_tags" + elif key == "storagePool": + suggest = "storage_pool" if suggest: pulumi.log.warn(f"Key '{key}' not found in InstanceFromTemplateBootDiskInitializeParams. Access the value via the '{suggest}' property getter instead.") @@ -8341,6 +8510,7 @@ def __init__(__self__, *, provisioned_throughput: Optional[int] = None, resource_manager_tags: Optional[Mapping[str, Any]] = None, size: Optional[int] = None, + storage_pool: Optional[str] = None, type: Optional[str] = None): """ :param bool enable_confidential_compute: A flag to enable confidential compute mode on boot disk @@ -8350,6 +8520,7 @@ def __init__(__self__, *, :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param int size: The size of the image in gigabytes. + :param str storage_pool: The URL of the storage pool in which the new disk is created :param str type: The Google Compute Engine disk type. Such as pd-standard, pd-ssd or pd-balanced. """ if enable_confidential_compute is not None: @@ -8366,6 +8537,8 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_manager_tags", resource_manager_tags) if size is not None: pulumi.set(__self__, "size", size) + if storage_pool is not None: + pulumi.set(__self__, "storage_pool", storage_pool) if type is not None: pulumi.set(__self__, "type", type) @@ -8425,6 +8598,14 @@ def size(self) -> Optional[int]: """ return pulumi.get(self, "size") + @property + @pulumi.getter(name="storagePool") + def storage_pool(self) -> Optional[str]: + """ + The URL of the storage pool in which the new disk is created + """ + return pulumi.get(self, "storage_pool") + @property @pulumi.getter def type(self) -> Optional[str]: @@ -29486,6 +29667,1021 @@ def interface(self) -> Optional[str]: return pulumi.get(self, "interface") +@pulumi.output_type +class ResizeRequestRequestedRunDuration(dict): + def __init__(__self__, *, + seconds: str, + nanos: Optional[int] = None): + """ + :param str seconds: 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 + :param int nanos: 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. + """ + pulumi.set(__self__, "seconds", seconds) + if nanos is not None: + pulumi.set(__self__, "nanos", nanos) + + @property + @pulumi.getter + def seconds(self) -> str: + """ + 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 + """ + return pulumi.get(self, "seconds") + + @property + @pulumi.getter + def nanos(self) -> Optional[int]: + """ + 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. + """ + return pulumi.get(self, "nanos") + + +@pulumi.output_type +class ResizeRequestStatus(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "lastAttempts": + suggest = "last_attempts" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatus. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResizeRequestStatus.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResizeRequestStatus.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + errors: Optional[Sequence['outputs.ResizeRequestStatusError']] = None, + last_attempts: Optional[Sequence['outputs.ResizeRequestStatusLastAttempt']] = None): + """ + :param Sequence['ResizeRequestStatusErrorArgs'] errors: (Output) + [Output only] Fatal 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. + Structure is documented below. + :param Sequence['ResizeRequestStatusLastAttemptArgs'] last_attempts: (Output) + [Output only] Information 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. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + if last_attempts is not None: + pulumi.set(__self__, "last_attempts", last_attempts) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusError']]: + """ + (Output) + [Output only] Fatal 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. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + @property + @pulumi.getter(name="lastAttempts") + def last_attempts(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttempt']]: + """ + (Output) + [Output only] Information 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. + Structure is documented below. + """ + return pulumi.get(self, "last_attempts") + + +@pulumi.output_type +class ResizeRequestStatusError(dict): + def __init__(__self__, *, + errors: Optional[Sequence['outputs.ResizeRequestStatusErrorError']] = None): + """ + :param Sequence['ResizeRequestStatusErrorErrorArgs'] errors: (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorError']]: + """ + (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + +@pulumi.output_type +class ResizeRequestStatusErrorError(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "errorDetails": + suggest = "error_details" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusErrorError. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResizeRequestStatusErrorError.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResizeRequestStatusErrorError.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + code: Optional[str] = None, + error_details: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetail']] = None, + location: Optional[str] = None, + message: Optional[str] = None): + """ + :param str code: (Output) + [Output Only] The error type identifier for this error. + :param Sequence['ResizeRequestStatusErrorErrorErrorDetailArgs'] error_details: (Output) + [Output Only] An optional list 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. + Structure is documented below. + :param str location: (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + :param str message: (Output) + The localized error message in the above locale. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[str]: + """ + (Output) + [Output Only] The error type identifier for this error. + """ + return pulumi.get(self, "code") + + @property + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetail']]: + """ + (Output) + [Output Only] An optional list 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. + Structure is documented below. + """ + return pulumi.get(self, "error_details") + + @property + @pulumi.getter + def location(self) -> Optional[str]: + """ + (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class ResizeRequestStatusErrorErrorErrorDetail(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "errorInfos": + suggest = "error_infos" + elif key == "localizedMessages": + suggest = "localized_messages" + elif key == "quotaInfos": + suggest = "quota_infos" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResizeRequestStatusErrorErrorErrorDetail.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResizeRequestStatusErrorErrorErrorDetail.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + error_infos: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailErrorInfo']] = None, + helps: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelp']] = None, + localized_messages: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']] = None, + quota_infos: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailQuotaInfo']] = None): + """ + :param Sequence['ResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output) + [Output Only] + Structure is documented below. + :param Sequence['ResizeRequestStatusErrorErrorErrorDetailHelpArgs'] helps: (Output) + [Output Only] + Structure is documented below. + :param Sequence['ResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output) + [Output Only] + Structure is documented below. + :param Sequence['ResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output) + [Output Only] + Structure is documented below. + """ + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) + + @property + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailErrorInfo']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "error_infos") + + @property + @pulumi.getter + def helps(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelp']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "helps") + + @property + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "localized_messages") + + @property + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailQuotaInfo']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "quota_infos") + + +@pulumi.output_type +class ResizeRequestStatusErrorErrorErrorDetailErrorInfo(dict): + def __init__(__self__, *, + domain: Optional[str] = None, + metadatas: Optional[Mapping[str, str]] = None, + reason: Optional[str] = None): + """ + :param str domain: (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + :param Mapping[str, str] metadatas: (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + :param str reason: (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + """ + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) + + @property + @pulumi.getter + def domain(self) -> Optional[str]: + """ + (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + """ + return pulumi.get(self, "domain") + + @property + @pulumi.getter + def metadatas(self) -> Optional[Mapping[str, str]]: + """ + (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + """ + return pulumi.get(self, "metadatas") + + @property + @pulumi.getter + def reason(self) -> Optional[str]: + """ + (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + """ + return pulumi.get(self, "reason") + + +@pulumi.output_type +class ResizeRequestStatusErrorErrorErrorDetailHelp(dict): + def __init__(__self__, *, + links: Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelpLink']] = None): + """ + :param Sequence['ResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs'] links: (Output) + [Output Only] + Structure is documented below. + """ + if links is not None: + pulumi.set(__self__, "links", links) + + @property + @pulumi.getter + def links(self) -> Optional[Sequence['outputs.ResizeRequestStatusErrorErrorErrorDetailHelpLink']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "links") + + +@pulumi.output_type +class ResizeRequestStatusErrorErrorErrorDetailHelpLink(dict): + def __init__(__self__, *, + description: Optional[str] = None, + url: Optional[str] = None): + """ + :param str description: An optional description of this resize-request. + :param str url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def url(self) -> Optional[str]: + """ + (Output) + The URL of the link. + """ + return pulumi.get(self, "url") + + +@pulumi.output_type +class ResizeRequestStatusErrorErrorErrorDetailLocalizedMessage(dict): + def __init__(__self__, *, + locale: Optional[str] = None, + message: Optional[str] = None): + """ + :param str locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param str message: (Output) + The localized error message in the above locale. + """ + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def locale(self) -> Optional[str]: + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + return pulumi.get(self, "locale") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class ResizeRequestStatusErrorErrorErrorDetailQuotaInfo(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "futureLimit": + suggest = "future_limit" + elif key == "limitName": + suggest = "limit_name" + elif key == "metricName": + suggest = "metric_name" + elif key == "rolloutStatus": + suggest = "rollout_status" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dimensions: Optional[Mapping[str, str]] = None, + future_limit: Optional[int] = None, + limit: Optional[int] = None, + limit_name: Optional[str] = None, + metric_name: Optional[str] = None, + rollout_status: Optional[str] = None): + """ + :param Mapping[str, str] dimensions: (Output) + The map holding related quota dimensions + :param int future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param int limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param str limit_name: (Output) + The name of the quota limit. + :param str metric_name: (Output) + The Compute Engine quota metric name. + :param str rollout_status: (Output) + Rollout status of the future quota limit. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) + + @property + @pulumi.getter + def dimensions(self) -> Optional[Mapping[str, str]]: + """ + (Output) + The map holding related quota dimensions + """ + return pulumi.get(self, "dimensions") + + @property + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[int]: + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "future_limit") + + @property + @pulumi.getter + def limit(self) -> Optional[int]: + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "limit") + + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[str]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[str]: + """ + (Output) + The Compute Engine quota metric name. + """ + return pulumi.get(self, "metric_name") + + @property + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[str]: + """ + (Output) + Rollout status of the future quota limit. + """ + return pulumi.get(self, "rollout_status") + + +@pulumi.output_type +class ResizeRequestStatusLastAttempt(dict): + def __init__(__self__, *, + errors: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptError']] = None): + """ + :param Sequence['ResizeRequestStatusLastAttemptErrorArgs'] errors: (Output) + [Output only] Fatal 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. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptError']]: + """ + (Output) + [Output only] Fatal 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. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptError(dict): + def __init__(__self__, *, + errors: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorError']] = None): + """ + :param Sequence['ResizeRequestStatusLastAttemptErrorErrorArgs'] errors: (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ + if errors is not None: + pulumi.set(__self__, "errors", errors) + + @property + @pulumi.getter + def errors(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorError']]: + """ + (Output) + [Output Only] The array of errors encountered while processing this operation. + Structure is documented below. + """ + return pulumi.get(self, "errors") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptErrorError(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "errorDetails": + suggest = "error_details" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusLastAttemptErrorError. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResizeRequestStatusLastAttemptErrorError.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResizeRequestStatusLastAttemptErrorError.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + code: Optional[str] = None, + error_details: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetail']] = None, + location: Optional[str] = None, + message: Optional[str] = None): + """ + :param str code: (Output) + [Output Only] The error type identifier for this error. + :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs'] error_details: (Output) + [Output Only] An optional list 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. + Structure is documented below. + :param str location: (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + :param str message: (Output) + The localized error message in the above locale. + """ + if code is not None: + pulumi.set(__self__, "code", code) + if error_details is not None: + pulumi.set(__self__, "error_details", error_details) + if location is not None: + pulumi.set(__self__, "location", location) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def code(self) -> Optional[str]: + """ + (Output) + [Output Only] The error type identifier for this error. + """ + return pulumi.get(self, "code") + + @property + @pulumi.getter(name="errorDetails") + def error_details(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetail']]: + """ + (Output) + [Output Only] An optional list 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. + Structure is documented below. + """ + return pulumi.get(self, "error_details") + + @property + @pulumi.getter + def location(self) -> Optional[str]: + """ + (Output) + Output Only] Indicates the field in the request that caused the error. This property is optional. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetail(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "errorInfos": + suggest = "error_infos" + elif key == "localizedMessages": + suggest = "localized_messages" + elif key == "quotaInfos": + suggest = "quota_infos" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusLastAttemptErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + error_infos: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']] = None, + helps: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']] = None, + localized_messages: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']] = None, + quota_infos: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']] = None): + """ + :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output) + [Output Only] + Structure is documented below. + :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs'] helps: (Output) + [Output Only] + Structure is documented below. + :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output) + [Output Only] + Structure is documented below. + :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output) + [Output Only] + Structure is documented below. + """ + if error_infos is not None: + pulumi.set(__self__, "error_infos", error_infos) + if helps is not None: + pulumi.set(__self__, "helps", helps) + if localized_messages is not None: + pulumi.set(__self__, "localized_messages", localized_messages) + if quota_infos is not None: + pulumi.set(__self__, "quota_infos", quota_infos) + + @property + @pulumi.getter(name="errorInfos") + def error_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "error_infos") + + @property + @pulumi.getter + def helps(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "helps") + + @property + @pulumi.getter(name="localizedMessages") + def localized_messages(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "localized_messages") + + @property + @pulumi.getter(name="quotaInfos") + def quota_infos(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "quota_infos") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo(dict): + def __init__(__self__, *, + domain: Optional[str] = None, + metadatas: Optional[Mapping[str, str]] = None, + reason: Optional[str] = None): + """ + :param str domain: (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + :param Mapping[str, str] metadatas: (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + :param str reason: (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + """ + if domain is not None: + pulumi.set(__self__, "domain", domain) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if reason is not None: + pulumi.set(__self__, "reason", reason) + + @property + @pulumi.getter + def domain(self) -> Optional[str]: + """ + (Output) + The 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". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com". + """ + return pulumi.get(self, "domain") + + @property + @pulumi.getter + def metadatas(self) -> Optional[Mapping[str, str]]: + """ + (Output) + Additional structured details about this error. + Keys must match /[a-z][a-zA-Z0-9-_]+/ but should ideally be lowerCamelCase. Also they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request. + """ + return pulumi.get(self, "metadatas") + + @property + @pulumi.getter + def reason(self) -> Optional[str]: + """ + (Output) + The 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. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE. + """ + return pulumi.get(self, "reason") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(dict): + def __init__(__self__, *, + links: Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']] = None): + """ + :param Sequence['ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs'] links: (Output) + [Output Only] + Structure is documented below. + """ + if links is not None: + pulumi.set(__self__, "links", links) + + @property + @pulumi.getter + def links(self) -> Optional[Sequence['outputs.ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']]: + """ + (Output) + [Output Only] + Structure is documented below. + """ + return pulumi.get(self, "links") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink(dict): + def __init__(__self__, *, + description: Optional[str] = None, + url: Optional[str] = None): + """ + :param str description: An optional description of this resize-request. + :param str url: (Output) + The URL of the link. + """ + if description is not None: + pulumi.set(__self__, "description", description) + if url is not None: + pulumi.set(__self__, "url", url) + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def url(self) -> Optional[str]: + """ + (Output) + The URL of the link. + """ + return pulumi.get(self, "url") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage(dict): + def __init__(__self__, *, + locale: Optional[str] = None, + message: Optional[str] = None): + """ + :param str locale: (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + :param str message: (Output) + The localized error message in the above locale. + """ + if locale is not None: + pulumi.set(__self__, "locale", locale) + if message is not None: + pulumi.set(__self__, "message", message) + + @property + @pulumi.getter + def locale(self) -> Optional[str]: + """ + (Output) + The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX" + """ + return pulumi.get(self, "locale") + + @property + @pulumi.getter + def message(self) -> Optional[str]: + """ + (Output) + The localized error message in the above locale. + """ + return pulumi.get(self, "message") + + +@pulumi.output_type +class ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "futureLimit": + suggest = "future_limit" + elif key == "limitName": + suggest = "limit_name" + elif key == "metricName": + suggest = "metric_name" + elif key == "rolloutStatus": + suggest = "rollout_status" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + dimensions: Optional[Mapping[str, str]] = None, + future_limit: Optional[int] = None, + limit: Optional[int] = None, + limit_name: Optional[str] = None, + metric_name: Optional[str] = None, + rollout_status: Optional[str] = None): + """ + :param Mapping[str, str] dimensions: (Output) + The map holding related quota dimensions + :param int future_limit: (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + :param int limit: (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + :param str limit_name: (Output) + The name of the quota limit. + :param str metric_name: (Output) + The Compute Engine quota metric name. + :param str rollout_status: (Output) + Rollout status of the future quota limit. + """ + if dimensions is not None: + pulumi.set(__self__, "dimensions", dimensions) + if future_limit is not None: + pulumi.set(__self__, "future_limit", future_limit) + if limit is not None: + pulumi.set(__self__, "limit", limit) + if limit_name is not None: + pulumi.set(__self__, "limit_name", limit_name) + if metric_name is not None: + pulumi.set(__self__, "metric_name", metric_name) + if rollout_status is not None: + pulumi.set(__self__, "rollout_status", rollout_status) + + @property + @pulumi.getter + def dimensions(self) -> Optional[Mapping[str, str]]: + """ + (Output) + The map holding related quota dimensions + """ + return pulumi.get(self, "dimensions") + + @property + @pulumi.getter(name="futureLimit") + def future_limit(self) -> Optional[int]: + """ + (Output) + Future quota limit being rolled out. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "future_limit") + + @property + @pulumi.getter + def limit(self) -> Optional[int]: + """ + (Output) + Current effective quota limit. The limit's unit depends on the quota type or metric. + """ + return pulumi.get(self, "limit") + + @property + @pulumi.getter(name="limitName") + def limit_name(self) -> Optional[str]: + """ + (Output) + The name of the quota limit. + """ + return pulumi.get(self, "limit_name") + + @property + @pulumi.getter(name="metricName") + def metric_name(self) -> Optional[str]: + """ + (Output) + The Compute Engine quota metric name. + """ + return pulumi.get(self, "metric_name") + + @property + @pulumi.getter(name="rolloutStatus") + def rollout_status(self) -> Optional[str]: + """ + (Output) + Rollout status of the future quota limit. + """ + return pulumi.get(self, "rollout_status") + + @pulumi.output_type class ResourcePolicyDiskConsistencyGroupPolicy(dict): def __init__(__self__, *, @@ -30807,6 +32003,26 @@ def multiplier(self) -> Optional[int]: return pulumi.get(self, "multiplier") +@pulumi.output_type +class RouterPeerCustomLearnedIpRange(dict): + def __init__(__self__, *, + range: str): + """ + :param str range: The IP range to advertise. The value must be a + CIDR-formatted string. + """ + pulumi.set(__self__, "range", range) + + @property + @pulumi.getter + def range(self) -> str: + """ + The IP range to advertise. The value must be a + CIDR-formatted string. + """ + return pulumi.get(self, "range") + + @pulumi.output_type class RouterPeerMd5AuthenticationKey(dict): def __init__(__self__, *, @@ -30846,6 +32062,170 @@ def name(self) -> str: return pulumi.get(self, "name") +@pulumi.output_type +class RouterRoutePolicyTerm(dict): + def __init__(__self__, *, + priority: int, + actions: Optional[Sequence['outputs.RouterRoutePolicyTermAction']] = None, + match: Optional['outputs.RouterRoutePolicyTermMatch'] = None): + """ + :param int priority: The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + :param Sequence['RouterRoutePolicyTermActionArgs'] actions: 'CEL expressions to evaluate to modify a route when this term matches.'\\ + Structure is documented below. + :param 'RouterRoutePolicyTermMatchArgs' match: CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + Structure is documented below. + """ + pulumi.set(__self__, "priority", priority) + if actions is not None: + pulumi.set(__self__, "actions", actions) + if match is not None: + pulumi.set(__self__, "match", match) + + @property + @pulumi.getter + def priority(self) -> int: + """ + The evaluation priority for this term, which must be between 0 (inclusive) and 231 (exclusive), and unique within the list. + """ + return pulumi.get(self, "priority") + + @property + @pulumi.getter + def actions(self) -> Optional[Sequence['outputs.RouterRoutePolicyTermAction']]: + """ + 'CEL expressions to evaluate to modify a route when this term matches.'\\ + Structure is documented below. + """ + return pulumi.get(self, "actions") + + @property + @pulumi.getter + def match(self) -> Optional['outputs.RouterRoutePolicyTermMatch']: + """ + CEL expression evaluated against a route to determine if this term applies (see Policy Language). When not set, the term applies to all routes. + Structure is documented below. + """ + return pulumi.get(self, "match") + + +@pulumi.output_type +class RouterRoutePolicyTermAction(dict): + def __init__(__self__, *, + expression: str, + description: Optional[str] = None, + location: Optional[str] = None, + title: Optional[str] = None): + """ + :param str expression: Textual representation of an expression in Common Expression + Language syntax. + :param str description: Description of the expression + :param str location: String indicating the location of the expression for error + reporting, e.g. a file name and a position in the file + + - - - + :param str title: Title for the expression, i.e. a short string describing its + purpose. + """ + pulumi.set(__self__, "expression", expression) + if description is not None: + pulumi.set(__self__, "description", description) + if location is not None: + pulumi.set(__self__, "location", location) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def expression(self) -> str: + """ + Textual representation of an expression in Common Expression + Language syntax. + """ + return pulumi.get(self, "expression") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the expression + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def location(self) -> Optional[str]: + """ + String indicating the location of the expression for error + reporting, e.g. a file name and a position in the file + + - - - + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def title(self) -> Optional[str]: + """ + Title for the expression, i.e. a short string describing its + purpose. + """ + return pulumi.get(self, "title") + + +@pulumi.output_type +class RouterRoutePolicyTermMatch(dict): + def __init__(__self__, *, + expression: str, + description: Optional[str] = None, + location: Optional[str] = None, + title: Optional[str] = None): + """ + :param str expression: Textual representation of an expression in Common Expression Language syntax. + :param str description: Description of the expression + :param str location: String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + :param str title: Title for the expression, i.e. a short string describing its purpose. + """ + pulumi.set(__self__, "expression", expression) + if description is not None: + pulumi.set(__self__, "description", description) + if location is not None: + pulumi.set(__self__, "location", location) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def expression(self) -> str: + """ + Textual representation of an expression in Common Expression Language syntax. + """ + return pulumi.get(self, "expression") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the expression + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def location(self) -> Optional[str]: + """ + String indicating the location of the expression for error reporting, e.g. a file name and a position in the file + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def title(self) -> Optional[str]: + """ + Title for the expression, i.e. a short string describing its purpose. + """ + return pulumi.get(self, "title") + + @pulumi.output_type class RouterStatusBestRouteResult(dict): def __init__(__self__, *, @@ -42265,9 +43645,12 @@ def seconds(self) -> int: @pulumi.output_type class GetBackendServiceSecuritySettingResult(dict): def __init__(__self__, *, + aws_v4_authentications: Sequence['outputs.GetBackendServiceSecuritySettingAwsV4AuthenticationResult'], client_tls_policy: str, subject_alt_names: Sequence[str]): """ + :param Sequence['GetBackendServiceSecuritySettingAwsV4AuthenticationArgs'] aws_v4_authentications: The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. :param str client_tls_policy: ClientTlsPolicy is a resource that specifies how a client should authenticate connections to backends of a service. This resource itself does not affect configuration unless it is attached to a backend service resource. @@ -42275,9 +43658,19 @@ def __init__(__self__, *, If specified, the client will verify that the server certificate's subject alt name matches one of the specified values. """ + pulumi.set(__self__, "aws_v4_authentications", aws_v4_authentications) pulumi.set(__self__, "client_tls_policy", client_tls_policy) pulumi.set(__self__, "subject_alt_names", subject_alt_names) + @property + @pulumi.getter(name="awsV4Authentications") + def aws_v4_authentications(self) -> Sequence['outputs.GetBackendServiceSecuritySettingAwsV4AuthenticationResult']: + """ + The configuration needed to generate a signature for access to private storage buckets that support AWS's Signature Version 4 for authentication. + Allowed only for INTERNET_IP_PORT and INTERNET_FQDN_PORT NEG backends. + """ + return pulumi.get(self, "aws_v4_authentications") + @property @pulumi.getter(name="clientTlsPolicy") def client_tls_policy(self) -> str: @@ -42299,6 +43692,61 @@ def subject_alt_names(self) -> Sequence[str]: return pulumi.get(self, "subject_alt_names") +@pulumi.output_type +class GetBackendServiceSecuritySettingAwsV4AuthenticationResult(dict): + def __init__(__self__, *, + access_key: str, + access_key_id: str, + access_key_version: str, + origin_region: str): + """ + :param str access_key: The access key used for s3 bucket authentication. + Required 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. + :param str access_key_id: The identifier of an access key used for s3 bucket authentication. + :param str access_key_version: The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + :param str origin_region: 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. + For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + """ + pulumi.set(__self__, "access_key", access_key) + pulumi.set(__self__, "access_key_id", access_key_id) + pulumi.set(__self__, "access_key_version", access_key_version) + pulumi.set(__self__, "origin_region", origin_region) + + @property + @pulumi.getter(name="accessKey") + def access_key(self) -> str: + """ + The access key used for s3 bucket authentication. + Required 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. + """ + return pulumi.get(self, "access_key") + + @property + @pulumi.getter(name="accessKeyId") + def access_key_id(self) -> str: + """ + The identifier of an access key used for s3 bucket authentication. + """ + return pulumi.get(self, "access_key_id") + + @property + @pulumi.getter(name="accessKeyVersion") + def access_key_version(self) -> str: + """ + The optional version identifier for the access key. You can use this to keep track of different iterations of your access key. + """ + return pulumi.get(self, "access_key_version") + + @property + @pulumi.getter(name="originRegion") + def origin_region(self) -> str: + """ + 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. + For example, "us-east-1" for AWS or "us-ashburn-1" for OCI. + """ + return pulumi.get(self, "origin_region") + + @pulumi.output_type class GetDiskAsyncPrimaryDiskResult(dict): def __init__(__self__, *, @@ -44504,6 +45952,7 @@ def __init__(__self__, *, provisioned_throughput: int, resource_manager_tags: Mapping[str, Any], size: int, + storage_pool: str, type: str): """ :param bool enable_confidential_compute: A flag to enable confidential compute mode on boot disk @@ -44513,6 +45962,7 @@ def __init__(__self__, *, :param int provisioned_throughput: Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param int size: The size of the image in gigabytes. + :param str storage_pool: The URL of the storage pool in which the new disk is created :param str type: The accelerator type resource exposed to this instance. E.g. `nvidia-tesla-k80`. """ pulumi.set(__self__, "enable_confidential_compute", enable_confidential_compute) @@ -44522,6 +45972,7 @@ def __init__(__self__, *, pulumi.set(__self__, "provisioned_throughput", provisioned_throughput) pulumi.set(__self__, "resource_manager_tags", resource_manager_tags) pulumi.set(__self__, "size", size) + pulumi.set(__self__, "storage_pool", storage_pool) pulumi.set(__self__, "type", type) @property @@ -44580,6 +46031,14 @@ def size(self) -> int: """ return pulumi.get(self, "size") + @property + @pulumi.getter(name="storagePool") + def storage_pool(self) -> str: + """ + The URL of the storage pool in which the new disk is created + """ + return pulumi.get(self, "storage_pool") + @property @pulumi.getter def type(self) -> str: diff --git a/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py b/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py index 453c4dc7b3..f603ce5731 100644 --- a/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py +++ b/sdk/python/pulumi_gcp/compute/public_advertised_prefix.py @@ -128,7 +128,8 @@ def __init__(__self__, *, ip_cidr_range: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, - self_link: Optional[pulumi.Input[str]] = None): + self_link: Optional[pulumi.Input[str]] = None, + shared_secret: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering PublicAdvertisedPrefix resources. :param pulumi.Input[str] description: An optional description of this resource. @@ -146,6 +147,7 @@ def __init__(__self__, *, :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] self_link: The URI of the created resource. + :param pulumi.Input[str] shared_secret: Output Only. The shared secret to be used for reverse DNS verification. """ if description is not None: pulumi.set(__self__, "description", description) @@ -159,6 +161,8 @@ def __init__(__self__, *, pulumi.set(__self__, "project", project) if self_link is not None: pulumi.set(__self__, "self_link", self_link) + if shared_secret is not None: + pulumi.set(__self__, "shared_secret", shared_secret) @property @pulumi.getter @@ -241,6 +245,18 @@ def self_link(self) -> Optional[pulumi.Input[str]]: def self_link(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "self_link", value) + @property + @pulumi.getter(name="sharedSecret") + def shared_secret(self) -> Optional[pulumi.Input[str]]: + """ + Output Only. The shared secret to be used for reverse DNS verification. + """ + return pulumi.get(self, "shared_secret") + + @shared_secret.setter + def shared_secret(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "shared_secret", value) + class PublicAdvertisedPrefix(pulumi.CustomResource): @overload @@ -411,6 +427,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["project"] = project __props__.__dict__["self_link"] = None + __props__.__dict__["shared_secret"] = None super(PublicAdvertisedPrefix, __self__).__init__( 'gcp:compute/publicAdvertisedPrefix:PublicAdvertisedPrefix', resource_name, @@ -426,7 +443,8 @@ def get(resource_name: str, ip_cidr_range: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, - self_link: Optional[pulumi.Input[str]] = None) -> 'PublicAdvertisedPrefix': + self_link: Optional[pulumi.Input[str]] = None, + shared_secret: Optional[pulumi.Input[str]] = None) -> 'PublicAdvertisedPrefix': """ Get an existing PublicAdvertisedPrefix resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -449,6 +467,7 @@ def get(resource_name: str, :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] self_link: The URI of the created resource. + :param pulumi.Input[str] shared_secret: Output Only. The shared secret to be used for reverse DNS verification. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -460,6 +479,7 @@ def get(resource_name: str, __props__.__dict__["name"] = name __props__.__dict__["project"] = project __props__.__dict__["self_link"] = self_link + __props__.__dict__["shared_secret"] = shared_secret return PublicAdvertisedPrefix(resource_name, opts=opts, __props__=__props__) @property @@ -519,3 +539,11 @@ def self_link(self) -> pulumi.Output[str]: """ return pulumi.get(self, "self_link") + @property + @pulumi.getter(name="sharedSecret") + def shared_secret(self) -> pulumi.Output[str]: + """ + Output Only. The shared secret to be used for reverse DNS verification. + """ + return pulumi.get(self, "shared_secret") + diff --git a/sdk/python/pulumi_gcp/compute/resize_request.py b/sdk/python/pulumi_gcp/compute/resize_request.py new file mode 100644 index 0000000000..9d08812662 --- /dev/null +++ b/sdk/python/pulumi_gcp/compute/resize_request.py @@ -0,0 +1,782 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ResizeRequestArgs', 'ResizeRequest'] + +@pulumi.input_type +class ResizeRequestArgs: + def __init__(__self__, *, + instance_group_manager: pulumi.Input[str], + resize_by: pulumi.Input[int], + zone: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input['ResizeRequestRequestedRunDurationArgs']] = None): + """ + The set of arguments for constructing a ResizeRequest resource. + :param pulumi.Input[str] instance_group_manager: The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + Authorization requires the following IAM permission on the specified resource instanceGroupManager: + *compute.instanceGroupManagers.update + + + - - - + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + :param pulumi.Input[str] zone: Name of the compute zone scoping this request. Name should conform to RFC1035. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input['ResizeRequestRequestedRunDurationArgs'] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + Structure is documented below. + """ + pulumi.set(__self__, "instance_group_manager", instance_group_manager) + pulumi.set(__self__, "resize_by", resize_by) + pulumi.set(__self__, "zone", zone) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if requested_run_duration is not None: + pulumi.set(__self__, "requested_run_duration", requested_run_duration) + + @property + @pulumi.getter(name="instanceGroupManager") + def instance_group_manager(self) -> pulumi.Input[str]: + """ + The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + Authorization requires the following IAM permission on the specified resource instanceGroupManager: + *compute.instanceGroupManagers.update + + + - - - + """ + return pulumi.get(self, "instance_group_manager") + + @instance_group_manager.setter + def instance_group_manager(self, value: pulumi.Input[str]): + pulumi.set(self, "instance_group_manager", value) + + @property + @pulumi.getter(name="resizeBy") + def resize_by(self) -> pulumi.Input[int]: + """ + The number of instances to be created by this resize request. The group's target size will be increased by this number. + """ + return pulumi.get(self, "resize_by") + + @resize_by.setter + def resize_by(self, value: pulumi.Input[int]): + pulumi.set(self, "resize_by", value) + + @property + @pulumi.getter + def zone(self) -> pulumi.Input[str]: + """ + Name of the compute zone scoping this request. Name should conform to RFC1035. + """ + return pulumi.get(self, "zone") + + @zone.setter + def zone(self, value: pulumi.Input[str]): + pulumi.set(self, "zone", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="requestedRunDuration") + def requested_run_duration(self) -> Optional[pulumi.Input['ResizeRequestRequestedRunDurationArgs']]: + """ + Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + Structure is documented below. + """ + return pulumi.get(self, "requested_run_duration") + + @requested_run_duration.setter + def requested_run_duration(self, value: Optional[pulumi.Input['ResizeRequestRequestedRunDurationArgs']]): + pulumi.set(self, "requested_run_duration", value) + + +@pulumi.input_type +class _ResizeRequestState: + def __init__(__self__, *, + creation_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input['ResizeRequestRequestedRunDurationArgs']] = None, + resize_by: Optional[pulumi.Input[int]] = None, + state: Optional[pulumi.Input[str]] = None, + statuses: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusArgs']]]] = None, + zone: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ResizeRequest resources. + :param pulumi.Input[str] creation_timestamp: The creation timestamp for this resize request in RFC3339 text format. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] instance_group_manager: The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + Authorization requires the following IAM permission on the specified resource instanceGroupManager: + *compute.instanceGroupManagers.update + + + - - - + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input['ResizeRequestRequestedRunDurationArgs'] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + Structure is documented below. + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + :param pulumi.Input[str] state: [Output only] Current state of the request. + :param pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusArgs']]] statuses: [Output only] Status of the request. + Structure is documented below. + :param pulumi.Input[str] zone: Name of the compute zone scoping this request. Name should conform to RFC1035. + """ + if creation_timestamp is not None: + pulumi.set(__self__, "creation_timestamp", creation_timestamp) + if description is not None: + pulumi.set(__self__, "description", description) + if instance_group_manager is not None: + pulumi.set(__self__, "instance_group_manager", instance_group_manager) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if requested_run_duration is not None: + pulumi.set(__self__, "requested_run_duration", requested_run_duration) + if resize_by is not None: + pulumi.set(__self__, "resize_by", resize_by) + if state is not None: + pulumi.set(__self__, "state", state) + if statuses is not None: + pulumi.set(__self__, "statuses", statuses) + if zone is not None: + pulumi.set(__self__, "zone", zone) + + @property + @pulumi.getter(name="creationTimestamp") + def creation_timestamp(self) -> Optional[pulumi.Input[str]]: + """ + The creation timestamp for this resize request in RFC3339 text format. + """ + return pulumi.get(self, "creation_timestamp") + + @creation_timestamp.setter + def creation_timestamp(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "creation_timestamp", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter(name="instanceGroupManager") + def instance_group_manager(self) -> Optional[pulumi.Input[str]]: + """ + The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + Authorization requires the following IAM permission on the specified resource instanceGroupManager: + *compute.instanceGroupManagers.update + + + - - - + """ + return pulumi.get(self, "instance_group_manager") + + @instance_group_manager.setter + def instance_group_manager(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_group_manager", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter(name="requestedRunDuration") + def requested_run_duration(self) -> Optional[pulumi.Input['ResizeRequestRequestedRunDurationArgs']]: + """ + Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + Structure is documented below. + """ + return pulumi.get(self, "requested_run_duration") + + @requested_run_duration.setter + def requested_run_duration(self, value: Optional[pulumi.Input['ResizeRequestRequestedRunDurationArgs']]): + pulumi.set(self, "requested_run_duration", value) + + @property + @pulumi.getter(name="resizeBy") + def resize_by(self) -> Optional[pulumi.Input[int]]: + """ + The number of instances to be created by this resize request. The group's target size will be increased by this number. + """ + return pulumi.get(self, "resize_by") + + @resize_by.setter + def resize_by(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "resize_by", value) + + @property + @pulumi.getter + def state(self) -> Optional[pulumi.Input[str]]: + """ + [Output only] Current state of the request. + """ + return pulumi.get(self, "state") + + @state.setter + def state(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "state", value) + + @property + @pulumi.getter + def statuses(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusArgs']]]]: + """ + [Output only] Status of the request. + Structure is documented below. + """ + return pulumi.get(self, "statuses") + + @statuses.setter + def statuses(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ResizeRequestStatusArgs']]]]): + pulumi.set(self, "statuses", value) + + @property + @pulumi.getter + def zone(self) -> Optional[pulumi.Input[str]]: + """ + Name of the compute zone scoping this request. Name should conform to RFC1035. + """ + return pulumi.get(self, "zone") + + @zone.setter + def zone(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "zone", value) + + +class ResizeRequest(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input[Union['ResizeRequestRequestedRunDurationArgs', 'ResizeRequestRequestedRunDurationArgsDict']]] = None, + resize_by: Optional[pulumi.Input[int]] = None, + zone: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Represents a Managed Instance Group Resize Request + + Resize Requests are the Managed Instance Group implementation of Dynamic Workload Scheduler Flex Start. + + With Dynamic Workload Scheduler in Flex Start mode, you submit a GPU capacity request for your AI/ML jobs by indicating how many you need, a duration, and your preferred region. Dynamic Workload Scheduler intelligently persists the request; once the capacity becomes available, it automatically provisions your VMs enabling your workloads to run continuously for the entire duration of the capacity allocation. + + To get more information about ResizeRequest, see: + + * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagerResizeRequests) + * How-to Guides + * [QUICKSTART_TITLE](https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig) + + ## Example Usage + + ### Compute Mig Resize Request + + ```python + import pulumi + import pulumi_gcp as gcp + + a3_dws = gcp.compute.RegionInstanceTemplate("a3_dws", + name="a3-dws", + region="us-central1", + description="This template is used to create a mig instance that is compatible with DWS resize requests.", + instance_description="A3 GPU", + machine_type="a3-highgpu-8g", + can_ip_forward=False, + scheduling={ + "automatic_restart": False, + "on_host_maintenance": "TERMINATE", + }, + disks=[{ + "source_image": "cos-cloud/cos-105-lts", + "auto_delete": True, + "boot": True, + "disk_type": "pd-ssd", + "disk_size_gb": 960, + "mode": "READ_WRITE", + }], + guest_accelerators=[{ + "type": "nvidia-h100-80gb", + "count": 8, + }], + reservation_affinity={ + "type": "NO_RESERVATION", + }, + shielded_instance_config={ + "enable_vtpm": True, + "enable_integrity_monitoring": True, + }, + network_interfaces=[{ + "network": "default", + }]) + a3_dws_instance_group_manager = gcp.compute.InstanceGroupManager("a3_dws", + name="a3-dws", + base_instance_name="a3-dws", + zone="us-central1-a", + versions=[{ + "instance_template": a3_dws.self_link, + }], + instance_lifecycle_policy={ + "default_action_on_failure": "DO_NOTHING", + }, + wait_for_instances=False) + a3_resize_request = gcp.compute.ResizeRequest("a3_resize_request", + name="a3-dws", + instance_group_manager=a3_dws_instance_group_manager.name, + zone="us-central1-a", + description="Test resize request resource", + resize_by=2, + requested_run_duration={ + "seconds": "14400", + "nanos": 0, + }) + ``` + + ## Import + + ResizeRequest can be imported using any of these accepted formats: + + * `projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + + * `{{project}}/{{zone}}/{{instance_group_manager}}/{{name}}` + + * `{{zone}}/{{instance_group_manager}}/{{name}}` + + * `{{instance_group_manager}}/{{name}}` + + When using the `pulumi import` command, ResizeRequest can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{zone}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{instance_group_manager}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] instance_group_manager: The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + Authorization requires the following IAM permission on the specified resource instanceGroupManager: + *compute.instanceGroupManagers.update + + + - - - + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Union['ResizeRequestRequestedRunDurationArgs', 'ResizeRequestRequestedRunDurationArgsDict']] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + Structure is documented below. + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + :param pulumi.Input[str] zone: Name of the compute zone scoping this request. Name should conform to RFC1035. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ResizeRequestArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Represents a Managed Instance Group Resize Request + + Resize Requests are the Managed Instance Group implementation of Dynamic Workload Scheduler Flex Start. + + With Dynamic Workload Scheduler in Flex Start mode, you submit a GPU capacity request for your AI/ML jobs by indicating how many you need, a duration, and your preferred region. Dynamic Workload Scheduler intelligently persists the request; once the capacity becomes available, it automatically provisions your VMs enabling your workloads to run continuously for the entire duration of the capacity allocation. + + To get more information about ResizeRequest, see: + + * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/instanceGroupManagerResizeRequests) + * How-to Guides + * [QUICKSTART_TITLE](https://cloud.google.com/compute/docs/instance-groups/create-resize-requests-mig) + + ## Example Usage + + ### Compute Mig Resize Request + + ```python + import pulumi + import pulumi_gcp as gcp + + a3_dws = gcp.compute.RegionInstanceTemplate("a3_dws", + name="a3-dws", + region="us-central1", + description="This template is used to create a mig instance that is compatible with DWS resize requests.", + instance_description="A3 GPU", + machine_type="a3-highgpu-8g", + can_ip_forward=False, + scheduling={ + "automatic_restart": False, + "on_host_maintenance": "TERMINATE", + }, + disks=[{ + "source_image": "cos-cloud/cos-105-lts", + "auto_delete": True, + "boot": True, + "disk_type": "pd-ssd", + "disk_size_gb": 960, + "mode": "READ_WRITE", + }], + guest_accelerators=[{ + "type": "nvidia-h100-80gb", + "count": 8, + }], + reservation_affinity={ + "type": "NO_RESERVATION", + }, + shielded_instance_config={ + "enable_vtpm": True, + "enable_integrity_monitoring": True, + }, + network_interfaces=[{ + "network": "default", + }]) + a3_dws_instance_group_manager = gcp.compute.InstanceGroupManager("a3_dws", + name="a3-dws", + base_instance_name="a3-dws", + zone="us-central1-a", + versions=[{ + "instance_template": a3_dws.self_link, + }], + instance_lifecycle_policy={ + "default_action_on_failure": "DO_NOTHING", + }, + wait_for_instances=False) + a3_resize_request = gcp.compute.ResizeRequest("a3_resize_request", + name="a3-dws", + instance_group_manager=a3_dws_instance_group_manager.name, + zone="us-central1-a", + description="Test resize request resource", + resize_by=2, + requested_run_duration={ + "seconds": "14400", + "nanos": 0, + }) + ``` + + ## Import + + ResizeRequest can be imported using any of these accepted formats: + + * `projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}}` + + * `{{project}}/{{zone}}/{{instance_group_manager}}/{{name}}` + + * `{{zone}}/{{instance_group_manager}}/{{name}}` + + * `{{instance_group_manager}}/{{name}}` + + When using the `pulumi import` command, ResizeRequest can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default projects/{{project}}/zones/{{zone}}/instanceGroupManagers/{{instance_group_manager}}/resizeRequests/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{project}}/{{zone}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{zone}}/{{instance_group_manager}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/resizeRequest:ResizeRequest default {{instance_group_manager}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param ResizeRequestArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ResizeRequestArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input[Union['ResizeRequestRequestedRunDurationArgs', 'ResizeRequestRequestedRunDurationArgsDict']]] = None, + resize_by: Optional[pulumi.Input[int]] = None, + zone: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ResizeRequestArgs.__new__(ResizeRequestArgs) + + __props__.__dict__["description"] = description + if instance_group_manager is None and not opts.urn: + raise TypeError("Missing required property 'instance_group_manager'") + __props__.__dict__["instance_group_manager"] = instance_group_manager + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["requested_run_duration"] = requested_run_duration + if resize_by is None and not opts.urn: + raise TypeError("Missing required property 'resize_by'") + __props__.__dict__["resize_by"] = resize_by + if zone is None and not opts.urn: + raise TypeError("Missing required property 'zone'") + __props__.__dict__["zone"] = zone + __props__.__dict__["creation_timestamp"] = None + __props__.__dict__["state"] = None + __props__.__dict__["statuses"] = None + super(ResizeRequest, __self__).__init__( + 'gcp:compute/resizeRequest:ResizeRequest', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + creation_timestamp: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + instance_group_manager: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + requested_run_duration: Optional[pulumi.Input[Union['ResizeRequestRequestedRunDurationArgs', 'ResizeRequestRequestedRunDurationArgsDict']]] = None, + resize_by: Optional[pulumi.Input[int]] = None, + state: Optional[pulumi.Input[str]] = None, + statuses: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ResizeRequestStatusArgs', 'ResizeRequestStatusArgsDict']]]]] = None, + zone: Optional[pulumi.Input[str]] = None) -> 'ResizeRequest': + """ + Get an existing ResizeRequest resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] creation_timestamp: The creation timestamp for this resize request in RFC3339 text format. + :param pulumi.Input[str] description: An optional description of this resize-request. + :param pulumi.Input[str] instance_group_manager: The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + Authorization requires the following IAM permission on the specified resource instanceGroupManager: + *compute.instanceGroupManagers.update + + + - - - + :param pulumi.Input[str] name: The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Union['ResizeRequestRequestedRunDurationArgs', 'ResizeRequestRequestedRunDurationArgsDict']] requested_run_duration: Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + Structure is documented below. + :param pulumi.Input[int] resize_by: The number of instances to be created by this resize request. The group's target size will be increased by this number. + :param pulumi.Input[str] state: [Output only] Current state of the request. + :param pulumi.Input[Sequence[pulumi.Input[Union['ResizeRequestStatusArgs', 'ResizeRequestStatusArgsDict']]]] statuses: [Output only] Status of the request. + Structure is documented below. + :param pulumi.Input[str] zone: Name of the compute zone scoping this request. Name should conform to RFC1035. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ResizeRequestState.__new__(_ResizeRequestState) + + __props__.__dict__["creation_timestamp"] = creation_timestamp + __props__.__dict__["description"] = description + __props__.__dict__["instance_group_manager"] = instance_group_manager + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["requested_run_duration"] = requested_run_duration + __props__.__dict__["resize_by"] = resize_by + __props__.__dict__["state"] = state + __props__.__dict__["statuses"] = statuses + __props__.__dict__["zone"] = zone + return ResizeRequest(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="creationTimestamp") + def creation_timestamp(self) -> pulumi.Output[str]: + """ + The creation timestamp for this resize request in RFC3339 text format. + """ + return pulumi.get(self, "creation_timestamp") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + An optional description of this resize-request. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter(name="instanceGroupManager") + def instance_group_manager(self) -> pulumi.Output[str]: + """ + The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. + Authorization requires the following IAM permission on the specified resource instanceGroupManager: + *compute.instanceGroupManagers.update + + + - - - + """ + return pulumi.get(self, "instance_group_manager") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of this resize request. The name must be 1-63 characters long, and comply with RFC1035. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + """ + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + """ + return pulumi.get(self, "project") + + @property + @pulumi.getter(name="requestedRunDuration") + def requested_run_duration(self) -> pulumi.Output[Optional['outputs.ResizeRequestRequestedRunDuration']]: + """ + Requested run duration for instances that will be created by this request. At the end of the run duration instance will be deleted. + Structure is documented below. + """ + return pulumi.get(self, "requested_run_duration") + + @property + @pulumi.getter(name="resizeBy") + def resize_by(self) -> pulumi.Output[int]: + """ + The number of instances to be created by this resize request. The group's target size will be increased by this number. + """ + return pulumi.get(self, "resize_by") + + @property + @pulumi.getter + def state(self) -> pulumi.Output[str]: + """ + [Output only] Current state of the request. + """ + return pulumi.get(self, "state") + + @property + @pulumi.getter + def statuses(self) -> pulumi.Output[Sequence['outputs.ResizeRequestStatus']]: + """ + [Output only] Status of the request. + Structure is documented below. + """ + return pulumi.get(self, "statuses") + + @property + @pulumi.getter + def zone(self) -> pulumi.Output[str]: + """ + Name of the compute zone scoping this request. Name should conform to RFC1035. + """ + return pulumi.get(self, "zone") + diff --git a/sdk/python/pulumi_gcp/compute/router_peer.py b/sdk/python/pulumi_gcp/compute/router_peer.py index d1ebcb3e0d..fe48b347a6 100644 --- a/sdk/python/pulumi_gcp/compute/router_peer.py +++ b/sdk/python/pulumi_gcp/compute/router_peer.py @@ -29,9 +29,13 @@ def __init__(__self__, *, advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerAdvertisedIpRangeArgs']]]] = None, advertised_route_priority: Optional[pulumi.Input[int]] = None, bfd: Optional[pulumi.Input['RouterPeerBfdArgs']] = None, + custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]] = None, + custom_learned_route_priority: Optional[pulumi.Input[int]] = None, enable: Optional[pulumi.Input[bool]] = None, enable_ipv4: Optional[pulumi.Input[bool]] = None, enable_ipv6: Optional[pulumi.Input[bool]] = None, + export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, ip_address: Optional[pulumi.Input[str]] = None, ipv4_nexthop_address: Optional[pulumi.Input[str]] = None, ipv6_nexthop_address: Optional[pulumi.Input[str]] = None, @@ -77,12 +81,21 @@ def __init__(__self__, *, length, the routes with the lowest priority value win. :param pulumi.Input['RouterPeerBfdArgs'] bfd: BFD configuration for the BGP peering. Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. The default is true. :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. + :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. :param pulumi.Input[str] ipv4_nexthop_address: IPv4 address of the interface inside Google Cloud Platform. @@ -127,12 +140,20 @@ def __init__(__self__, *, pulumi.set(__self__, "advertised_route_priority", advertised_route_priority) if bfd is not None: pulumi.set(__self__, "bfd", bfd) + if custom_learned_ip_ranges is not None: + pulumi.set(__self__, "custom_learned_ip_ranges", custom_learned_ip_ranges) + if custom_learned_route_priority is not None: + pulumi.set(__self__, "custom_learned_route_priority", custom_learned_route_priority) if enable is not None: pulumi.set(__self__, "enable", enable) if enable_ipv4 is not None: pulumi.set(__self__, "enable_ipv4", enable_ipv4) if enable_ipv6 is not None: pulumi.set(__self__, "enable_ipv6", enable_ipv6) + if export_policies is not None: + pulumi.set(__self__, "export_policies", export_policies) + if import_policies is not None: + pulumi.set(__self__, "import_policies", import_policies) if ip_address is not None: pulumi.set(__self__, "ip_address", ip_address) if ipv4_nexthop_address is not None: @@ -276,6 +297,33 @@ def bfd(self) -> Optional[pulumi.Input['RouterPeerBfdArgs']]: def bfd(self, value: Optional[pulumi.Input['RouterPeerBfdArgs']]): pulumi.set(self, "bfd", value) + @property + @pulumi.getter(name="customLearnedIpRanges") + def custom_learned_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]: + """ + The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + """ + return pulumi.get(self, "custom_learned_ip_ranges") + + @custom_learned_ip_ranges.setter + def custom_learned_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]): + pulumi.set(self, "custom_learned_ip_ranges", value) + + @property + @pulumi.getter(name="customLearnedRoutePriority") + def custom_learned_route_priority(self) -> Optional[pulumi.Input[int]]: + """ + The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + priority of 100 to the ranges. + """ + return pulumi.get(self, "custom_learned_route_priority") + + @custom_learned_route_priority.setter + def custom_learned_route_priority(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "custom_learned_route_priority", value) + @property @pulumi.getter def enable(self) -> Optional[pulumi.Input[bool]]: @@ -315,6 +363,32 @@ def enable_ipv6(self) -> Optional[pulumi.Input[bool]]: def enable_ipv6(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_ipv6", value) + @property + @pulumi.getter(name="exportPolicies") + def export_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + routers.list of export policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + """ + return pulumi.get(self, "export_policies") + + @export_policies.setter + def export_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "export_policies", value) + + @property + @pulumi.getter(name="importPolicies") + def import_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + routers.list of import policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + """ + return pulumi.get(self, "import_policies") + + @import_policies.setter + def import_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "import_policies", value) + @property @pulumi.getter(name="ipAddress") def ip_address(self) -> Optional[pulumi.Input[str]]: @@ -475,9 +549,13 @@ def __init__(__self__, *, advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerAdvertisedIpRangeArgs']]]] = None, advertised_route_priority: Optional[pulumi.Input[int]] = None, bfd: Optional[pulumi.Input['RouterPeerBfdArgs']] = None, + custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]] = None, + custom_learned_route_priority: Optional[pulumi.Input[int]] = None, enable: Optional[pulumi.Input[bool]] = None, enable_ipv4: Optional[pulumi.Input[bool]] = None, enable_ipv6: Optional[pulumi.Input[bool]] = None, + export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, interface: Optional[pulumi.Input[str]] = None, ip_address: Optional[pulumi.Input[str]] = None, ipv4_nexthop_address: Optional[pulumi.Input[str]] = None, @@ -520,12 +598,21 @@ def __init__(__self__, *, length, the routes with the lowest priority value win. :param pulumi.Input['RouterPeerBfdArgs'] bfd: BFD configuration for the BGP peering. Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. The default is true. :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. + :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. :param pulumi.Input[str] interface: Name of the interface the BGP peer is associated with. :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. @@ -583,12 +670,20 @@ def __init__(__self__, *, pulumi.set(__self__, "advertised_route_priority", advertised_route_priority) if bfd is not None: pulumi.set(__self__, "bfd", bfd) + if custom_learned_ip_ranges is not None: + pulumi.set(__self__, "custom_learned_ip_ranges", custom_learned_ip_ranges) + if custom_learned_route_priority is not None: + pulumi.set(__self__, "custom_learned_route_priority", custom_learned_route_priority) if enable is not None: pulumi.set(__self__, "enable", enable) if enable_ipv4 is not None: pulumi.set(__self__, "enable_ipv4", enable_ipv4) if enable_ipv6 is not None: pulumi.set(__self__, "enable_ipv6", enable_ipv6) + if export_policies is not None: + pulumi.set(__self__, "export_policies", export_policies) + if import_policies is not None: + pulumi.set(__self__, "import_policies", import_policies) if interface is not None: pulumi.set(__self__, "interface", interface) if ip_address is not None: @@ -700,6 +795,33 @@ def bfd(self) -> Optional[pulumi.Input['RouterPeerBfdArgs']]: def bfd(self, value: Optional[pulumi.Input['RouterPeerBfdArgs']]): pulumi.set(self, "bfd", value) + @property + @pulumi.getter(name="customLearnedIpRanges") + def custom_learned_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]: + """ + The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + """ + return pulumi.get(self, "custom_learned_ip_ranges") + + @custom_learned_ip_ranges.setter + def custom_learned_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterPeerCustomLearnedIpRangeArgs']]]]): + pulumi.set(self, "custom_learned_ip_ranges", value) + + @property + @pulumi.getter(name="customLearnedRoutePriority") + def custom_learned_route_priority(self) -> Optional[pulumi.Input[int]]: + """ + The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + priority of 100 to the ranges. + """ + return pulumi.get(self, "custom_learned_route_priority") + + @custom_learned_route_priority.setter + def custom_learned_route_priority(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "custom_learned_route_priority", value) + @property @pulumi.getter def enable(self) -> Optional[pulumi.Input[bool]]: @@ -739,6 +861,32 @@ def enable_ipv6(self) -> Optional[pulumi.Input[bool]]: def enable_ipv6(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_ipv6", value) + @property + @pulumi.getter(name="exportPolicies") + def export_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + routers.list of export policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + """ + return pulumi.get(self, "export_policies") + + @export_policies.setter + def export_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "export_policies", value) + + @property + @pulumi.getter(name="importPolicies") + def import_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + routers.list of import policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + """ + return pulumi.get(self, "import_policies") + + @import_policies.setter + def import_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "import_policies", value) + @property @pulumi.getter def interface(self) -> Optional[pulumi.Input[str]]: @@ -961,9 +1109,13 @@ def __init__(__self__, advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerAdvertisedIpRangeArgs', 'RouterPeerAdvertisedIpRangeArgsDict']]]]] = None, advertised_route_priority: Optional[pulumi.Input[int]] = None, bfd: Optional[pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']]] = None, + custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]]] = None, + custom_learned_route_priority: Optional[pulumi.Input[int]] = None, enable: Optional[pulumi.Input[bool]] = None, enable_ipv4: Optional[pulumi.Input[bool]] = None, enable_ipv6: Optional[pulumi.Input[bool]] = None, + export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, interface: Optional[pulumi.Input[str]] = None, ip_address: Optional[pulumi.Input[str]] = None, ipv4_nexthop_address: Optional[pulumi.Input[str]] = None, @@ -1149,6 +1301,113 @@ def __init__(__self__, }) ``` + ### Router Peer Export And Import Policies + + ```python + import pulumi + import pulumi_gcp as gcp + + network = gcp.compute.Network("network", + name="my-router-net", + auto_create_subnetworks=False) + subnetwork = gcp.compute.Subnetwork("subnetwork", + name="my-router-subnet", + network=network.self_link, + ip_cidr_range="10.0.0.0/16", + region="us-central1") + address = gcp.compute.Address("address", + name="my-router", + region=subnetwork.region) + vpn_gateway = gcp.compute.HaVpnGateway("vpn_gateway", + name="my-router-gateway", + network=network.self_link, + region=subnetwork.region) + external_gateway = gcp.compute.ExternalVpnGateway("external_gateway", + name="my-router-external-gateway", + redundancy_type="SINGLE_IP_INTERNALLY_REDUNDANT", + description="An externally managed VPN gateway", + interfaces=[{ + "id": 0, + "ip_address": "8.8.8.8", + }]) + router = gcp.compute.Router("router", + name="my-router", + region=subnetwork.region, + network=network.self_link, + bgp={ + "asn": 64514, + }) + vpn_tunnel = gcp.compute.VPNTunnel("vpn_tunnel", + name="my-router", + region=subnetwork.region, + vpn_gateway=vpn_gateway.id, + peer_external_gateway=external_gateway.id, + peer_external_gateway_interface=0, + shared_secret="unguessable", + router=router.name, + vpn_gateway_interface=0) + router_interface = gcp.compute.RouterInterface("router_interface", + name="my-router", + router=router.name, + region=router.region, + vpn_tunnel=vpn_tunnel.name) + rp_export = gcp.compute.RouterRoutePolicy("rp-export", + name="my-router-rp-export", + router=router.name, + region=router.region, + type="ROUTE_POLICY_TYPE_EXPORT", + terms=[{ + "priority": 2, + "match": { + "expression": "destination == '10.0.0.0/12'", + "title": "export_expression", + "description": "acceptance expression for export", + }, + "actions": [{ + "expression": "accept()", + }], + }], + opts = pulumi.ResourceOptions(depends_on=[router_interface])) + rp_import = gcp.compute.RouterRoutePolicy("rp-import", + name="my-router-rp-import", + router=router.name, + region=router.region, + type="ROUTE_POLICY_TYPE_IMPORT", + terms=[{ + "priority": 1, + "match": { + "expression": "destination == '10.0.0.0/12'", + "title": "import_expression", + "description": "acceptance expression for import", + }, + "actions": [{ + "expression": "accept()", + }], + }], + opts = pulumi.ResourceOptions(depends_on=[ + router_interface, + rp_export, + ])) + router_peer = gcp.compute.RouterPeer("router_peer", + name="my-router-peer", + router=router.name, + region=router.region, + peer_asn=65515, + advertised_route_priority=100, + interface=router_interface.name, + md5_authentication_key={ + "name": "my-router-peer-key", + "key": "my-router-peer-key-value", + }, + import_policies=[rp_import.name], + export_policies=[rp_export.name], + opts = pulumi.ResourceOptions(depends_on=[ + rp_export, + rp_import, + router_interface, + ])) + ``` + ## Import RouterBgpPeer can be imported using any of these accepted formats: @@ -1206,12 +1465,21 @@ def __init__(__self__, length, the routes with the lowest priority value win. :param pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']] bfd: BFD configuration for the BGP peering. Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. The default is true. :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. + :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. :param pulumi.Input[str] interface: Name of the interface the BGP peer is associated with. :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. @@ -1426,6 +1694,113 @@ def __init__(__self__, }) ``` + ### Router Peer Export And Import Policies + + ```python + import pulumi + import pulumi_gcp as gcp + + network = gcp.compute.Network("network", + name="my-router-net", + auto_create_subnetworks=False) + subnetwork = gcp.compute.Subnetwork("subnetwork", + name="my-router-subnet", + network=network.self_link, + ip_cidr_range="10.0.0.0/16", + region="us-central1") + address = gcp.compute.Address("address", + name="my-router", + region=subnetwork.region) + vpn_gateway = gcp.compute.HaVpnGateway("vpn_gateway", + name="my-router-gateway", + network=network.self_link, + region=subnetwork.region) + external_gateway = gcp.compute.ExternalVpnGateway("external_gateway", + name="my-router-external-gateway", + redundancy_type="SINGLE_IP_INTERNALLY_REDUNDANT", + description="An externally managed VPN gateway", + interfaces=[{ + "id": 0, + "ip_address": "8.8.8.8", + }]) + router = gcp.compute.Router("router", + name="my-router", + region=subnetwork.region, + network=network.self_link, + bgp={ + "asn": 64514, + }) + vpn_tunnel = gcp.compute.VPNTunnel("vpn_tunnel", + name="my-router", + region=subnetwork.region, + vpn_gateway=vpn_gateway.id, + peer_external_gateway=external_gateway.id, + peer_external_gateway_interface=0, + shared_secret="unguessable", + router=router.name, + vpn_gateway_interface=0) + router_interface = gcp.compute.RouterInterface("router_interface", + name="my-router", + router=router.name, + region=router.region, + vpn_tunnel=vpn_tunnel.name) + rp_export = gcp.compute.RouterRoutePolicy("rp-export", + name="my-router-rp-export", + router=router.name, + region=router.region, + type="ROUTE_POLICY_TYPE_EXPORT", + terms=[{ + "priority": 2, + "match": { + "expression": "destination == '10.0.0.0/12'", + "title": "export_expression", + "description": "acceptance expression for export", + }, + "actions": [{ + "expression": "accept()", + }], + }], + opts = pulumi.ResourceOptions(depends_on=[router_interface])) + rp_import = gcp.compute.RouterRoutePolicy("rp-import", + name="my-router-rp-import", + router=router.name, + region=router.region, + type="ROUTE_POLICY_TYPE_IMPORT", + terms=[{ + "priority": 1, + "match": { + "expression": "destination == '10.0.0.0/12'", + "title": "import_expression", + "description": "acceptance expression for import", + }, + "actions": [{ + "expression": "accept()", + }], + }], + opts = pulumi.ResourceOptions(depends_on=[ + router_interface, + rp_export, + ])) + router_peer = gcp.compute.RouterPeer("router_peer", + name="my-router-peer", + router=router.name, + region=router.region, + peer_asn=65515, + advertised_route_priority=100, + interface=router_interface.name, + md5_authentication_key={ + "name": "my-router-peer-key", + "key": "my-router-peer-key-value", + }, + import_policies=[rp_import.name], + export_policies=[rp_export.name], + opts = pulumi.ResourceOptions(depends_on=[ + rp_export, + rp_import, + router_interface, + ])) + ``` + ## Import RouterBgpPeer can be imported using any of these accepted formats: @@ -1476,9 +1851,13 @@ def _internal_init(__self__, advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerAdvertisedIpRangeArgs', 'RouterPeerAdvertisedIpRangeArgsDict']]]]] = None, advertised_route_priority: Optional[pulumi.Input[int]] = None, bfd: Optional[pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']]] = None, + custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]]] = None, + custom_learned_route_priority: Optional[pulumi.Input[int]] = None, enable: Optional[pulumi.Input[bool]] = None, enable_ipv4: Optional[pulumi.Input[bool]] = None, enable_ipv6: Optional[pulumi.Input[bool]] = None, + export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, interface: Optional[pulumi.Input[str]] = None, ip_address: Optional[pulumi.Input[str]] = None, ipv4_nexthop_address: Optional[pulumi.Input[str]] = None, @@ -1507,9 +1886,13 @@ def _internal_init(__self__, __props__.__dict__["advertised_ip_ranges"] = advertised_ip_ranges __props__.__dict__["advertised_route_priority"] = advertised_route_priority __props__.__dict__["bfd"] = bfd + __props__.__dict__["custom_learned_ip_ranges"] = custom_learned_ip_ranges + __props__.__dict__["custom_learned_route_priority"] = custom_learned_route_priority __props__.__dict__["enable"] = enable __props__.__dict__["enable_ipv4"] = enable_ipv4 __props__.__dict__["enable_ipv6"] = enable_ipv6 + __props__.__dict__["export_policies"] = export_policies + __props__.__dict__["import_policies"] = import_policies if interface is None and not opts.urn: raise TypeError("Missing required property 'interface'") __props__.__dict__["interface"] = interface @@ -1546,9 +1929,13 @@ def get(resource_name: str, advertised_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerAdvertisedIpRangeArgs', 'RouterPeerAdvertisedIpRangeArgsDict']]]]] = None, advertised_route_priority: Optional[pulumi.Input[int]] = None, bfd: Optional[pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']]] = None, + custom_learned_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]]] = None, + custom_learned_route_priority: Optional[pulumi.Input[int]] = None, enable: Optional[pulumi.Input[bool]] = None, enable_ipv4: Optional[pulumi.Input[bool]] = None, enable_ipv6: Optional[pulumi.Input[bool]] = None, + export_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + import_policies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, interface: Optional[pulumi.Input[str]] = None, ip_address: Optional[pulumi.Input[str]] = None, ipv4_nexthop_address: Optional[pulumi.Input[str]] = None, @@ -1596,12 +1983,21 @@ def get(resource_name: str, length, the routes with the lowest priority value win. :param pulumi.Input[Union['RouterPeerBfdArgs', 'RouterPeerBfdArgsDict']] bfd: BFD configuration for the BGP peering. Structure is documented below. + :param pulumi.Input[Sequence[pulumi.Input[Union['RouterPeerCustomLearnedIpRangeArgs', 'RouterPeerCustomLearnedIpRangeArgsDict']]]] custom_learned_ip_ranges: The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + :param pulumi.Input[int] custom_learned_route_priority: The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + priority of 100 to the ranges. :param pulumi.Input[bool] enable: The status of the BGP peer connection. If set to false, any active session with the peer is terminated and all associated routing information is removed. If set to true, the peer connection can be established with routing information. The default is true. :param pulumi.Input[bool] enable_ipv4: Enable IPv4 traffic over BGP Peer. It is enabled by default if the peerIpAddress is version 4. :param pulumi.Input[bool] enable_ipv6: Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default. + :param pulumi.Input[Sequence[pulumi.Input[str]]] export_policies: routers.list of export policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + :param pulumi.Input[Sequence[pulumi.Input[str]]] import_policies: routers.list of import policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. :param pulumi.Input[str] interface: Name of the interface the BGP peer is associated with. :param pulumi.Input[str] ip_address: IP address of the interface inside Google Cloud Platform. Only IPv4 is supported. @@ -1658,9 +2054,13 @@ def get(resource_name: str, __props__.__dict__["advertised_ip_ranges"] = advertised_ip_ranges __props__.__dict__["advertised_route_priority"] = advertised_route_priority __props__.__dict__["bfd"] = bfd + __props__.__dict__["custom_learned_ip_ranges"] = custom_learned_ip_ranges + __props__.__dict__["custom_learned_route_priority"] = custom_learned_route_priority __props__.__dict__["enable"] = enable __props__.__dict__["enable_ipv4"] = enable_ipv4 __props__.__dict__["enable_ipv6"] = enable_ipv6 + __props__.__dict__["export_policies"] = export_policies + __props__.__dict__["import_policies"] = import_policies __props__.__dict__["interface"] = interface __props__.__dict__["ip_address"] = ip_address __props__.__dict__["ipv4_nexthop_address"] = ipv4_nexthop_address @@ -1738,6 +2138,25 @@ def bfd(self) -> pulumi.Output['outputs.RouterPeerBfd']: """ return pulumi.get(self, "bfd") + @property + @pulumi.getter(name="customLearnedIpRanges") + def custom_learned_ip_ranges(self) -> pulumi.Output[Optional[Sequence['outputs.RouterPeerCustomLearnedIpRange']]]: + """ + The custom learned route IP address range. Must be a valid CIDR-formatted prefix. If an IP address is provided without a + subnet mask, it is interpreted as, for IPv4, a /32 singular IP address range, and, for IPv6, /128. + """ + return pulumi.get(self, "custom_learned_ip_ranges") + + @property + @pulumi.getter(name="customLearnedRoutePriority") + def custom_learned_route_priority(self) -> pulumi.Output[Optional[int]]: + """ + The user-defined custom learned route priority for a BGP session. This value is applied to all custom learned route + ranges for the session. You can choose a value from 0 to 65335. If you don't provide a value, Google Cloud assigns a + priority of 100 to the ranges. + """ + return pulumi.get(self, "custom_learned_route_priority") + @property @pulumi.getter def enable(self) -> pulumi.Output[Optional[bool]]: @@ -1765,6 +2184,24 @@ def enable_ipv6(self) -> pulumi.Output[Optional[bool]]: """ return pulumi.get(self, "enable_ipv6") + @property + @pulumi.getter(name="exportPolicies") + def export_policies(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + routers.list of export policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_EXPORT type. + """ + return pulumi.get(self, "export_policies") + + @property + @pulumi.getter(name="importPolicies") + def import_policies(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + routers.list of import policies applied to this peer, in the order they must be evaluated. + The name must correspond to an existing policy that has ROUTE_POLICY_TYPE_IMPORT type. + """ + return pulumi.get(self, "import_policies") + @property @pulumi.getter def interface(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/compute/router_route_policy.py b/sdk/python/pulumi_gcp/compute/router_route_policy.py new file mode 100644 index 0000000000..24d401add6 --- /dev/null +++ b/sdk/python/pulumi_gcp/compute/router_route_policy.py @@ -0,0 +1,616 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['RouterRoutePolicyArgs', 'RouterRoutePolicy'] + +@pulumi.input_type +class RouterRoutePolicyArgs: + def __init__(__self__, *, + router: pulumi.Input[str], + terms: pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]], + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a RouterRoutePolicy resource. + :param pulumi.Input[str] router: The name of the Cloud Router in which this route policy will be configured. + :param pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]] terms: List of terms (the order in the list is not important, they are evaluated in order of priority). + Structure is documented below. + :param pulumi.Input[str] name: Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + :param pulumi.Input[str] region: Region where the router and NAT reside. + :param pulumi.Input[str] type: This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + "ROUTE_POLICY_TYPE_EXPORT"] + """ + pulumi.set(__self__, "router", router) + pulumi.set(__self__, "terms", terms) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if region is not None: + pulumi.set(__self__, "region", region) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def router(self) -> pulumi.Input[str]: + """ + The name of the Cloud Router in which this route policy will be configured. + """ + return pulumi.get(self, "router") + + @router.setter + def router(self, value: pulumi.Input[str]): + pulumi.set(self, "router", value) + + @property + @pulumi.getter + def terms(self) -> pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]]: + """ + List of terms (the order in the list is not important, they are evaluated in order of priority). + Structure is documented below. + """ + return pulumi.get(self, "terms") + + @terms.setter + def terms(self, value: pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]]): + pulumi.set(self, "terms", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + Region where the router and NAT reside. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + "ROUTE_POLICY_TYPE_EXPORT"] + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class _RouterRoutePolicyState: + def __init__(__self__, *, + fingerprint: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + router: Optional[pulumi.Input[str]] = None, + terms: Optional[pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]]] = None, + type: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering RouterRoutePolicy resources. + :param pulumi.Input[str] fingerprint: The fingerprint used for optimistic locking of this resource. Used + internally during updates. + :param pulumi.Input[str] name: Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + :param pulumi.Input[str] region: Region where the router and NAT reside. + :param pulumi.Input[str] router: The name of the Cloud Router in which this route policy will be configured. + :param pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]] terms: List of terms (the order in the list is not important, they are evaluated in order of priority). + Structure is documented below. + :param pulumi.Input[str] type: This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + "ROUTE_POLICY_TYPE_EXPORT"] + """ + if fingerprint is not None: + pulumi.set(__self__, "fingerprint", fingerprint) + if name is not None: + pulumi.set(__self__, "name", name) + if project is not None: + pulumi.set(__self__, "project", project) + if region is not None: + pulumi.set(__self__, "region", region) + if router is not None: + pulumi.set(__self__, "router", router) + if terms is not None: + pulumi.set(__self__, "terms", terms) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def fingerprint(self) -> Optional[pulumi.Input[str]]: + """ + The fingerprint used for optimistic locking of this resource. Used + internally during updates. + """ + return pulumi.get(self, "fingerprint") + + @fingerprint.setter + def fingerprint(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "fingerprint", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def project(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "project") + + @project.setter + def project(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + Region where the router and NAT reside. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @property + @pulumi.getter + def router(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Cloud Router in which this route policy will be configured. + """ + return pulumi.get(self, "router") + + @router.setter + def router(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "router", value) + + @property + @pulumi.getter + def terms(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]]]: + """ + List of terms (the order in the list is not important, they are evaluated in order of priority). + Structure is documented below. + """ + return pulumi.get(self, "terms") + + @terms.setter + def terms(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouterRoutePolicyTermArgs']]]]): + pulumi.set(self, "terms", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + "ROUTE_POLICY_TYPE_EXPORT"] + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + +class RouterRoutePolicy(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + router: Optional[pulumi.Input[str]] = None, + terms: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterRoutePolicyTermArgs', 'RouterRoutePolicyTermArgsDict']]]]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + ## Example Usage + + ### Router Route Policy Export + + ```python + import pulumi + import pulumi_gcp as gcp + + net = gcp.compute.Network("net", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnetwork", + network=net.id, + ip_cidr_range="10.0.0.0/16", + region="us-central1") + router = gcp.compute.Router("router", + name="my-router", + region=subnet.region, + network=net.id) + rp_export = gcp.compute.RouterRoutePolicy("rp-export", + router=router.name, + region=router.region, + name="my-rp1", + type="ROUTE_POLICY_TYPE_EXPORT", + terms=[{ + "priority": 1, + "match": { + "expression": "destination == '10.0.0.0/12'", + }, + "actions": [{ + "expression": "accept()", + }], + }]) + ``` + ### Router Route Policy Import + + ```python + import pulumi + import pulumi_gcp as gcp + + net = gcp.compute.Network("net", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnetwork", + network=net.id, + ip_cidr_range="10.0.0.0/16", + region="us-central1") + router = gcp.compute.Router("router", + name="my-router", + region=subnet.region, + network=net.id) + rp_import = gcp.compute.RouterRoutePolicy("rp-import", + name="my-rp2", + router=router.name, + region=router.region, + type="ROUTE_POLICY_TYPE_IMPORT", + terms=[{ + "priority": 2, + "match": { + "expression": "destination == '10.0.0.0/12'", + }, + "actions": [{ + "expression": "accept()", + }], + }]) + ``` + + ## Import + + RouterRoutePolicy can be imported using any of these accepted formats: + + * `{{project}}/{{region}}/{{router}}/routePolicies/{{name}}` + + * `{{project}}/{{region}}/{{router}}/{{name}}` + + * `{{region}}/{{router}}/{{name}}` + + * `{{router}}/{{name}}` + + When using the `pulumi import` command, RouterRoutePolicy can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/routePolicies/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{region}}/{{router}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{router}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + :param pulumi.Input[str] region: Region where the router and NAT reside. + :param pulumi.Input[str] router: The name of the Cloud Router in which this route policy will be configured. + :param pulumi.Input[Sequence[pulumi.Input[Union['RouterRoutePolicyTermArgs', 'RouterRoutePolicyTermArgsDict']]]] terms: List of terms (the order in the list is not important, they are evaluated in order of priority). + Structure is documented below. + :param pulumi.Input[str] type: This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + "ROUTE_POLICY_TYPE_EXPORT"] + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: RouterRoutePolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + ## Example Usage + + ### Router Route Policy Export + + ```python + import pulumi + import pulumi_gcp as gcp + + net = gcp.compute.Network("net", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnetwork", + network=net.id, + ip_cidr_range="10.0.0.0/16", + region="us-central1") + router = gcp.compute.Router("router", + name="my-router", + region=subnet.region, + network=net.id) + rp_export = gcp.compute.RouterRoutePolicy("rp-export", + router=router.name, + region=router.region, + name="my-rp1", + type="ROUTE_POLICY_TYPE_EXPORT", + terms=[{ + "priority": 1, + "match": { + "expression": "destination == '10.0.0.0/12'", + }, + "actions": [{ + "expression": "accept()", + }], + }]) + ``` + ### Router Route Policy Import + + ```python + import pulumi + import pulumi_gcp as gcp + + net = gcp.compute.Network("net", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnetwork", + network=net.id, + ip_cidr_range="10.0.0.0/16", + region="us-central1") + router = gcp.compute.Router("router", + name="my-router", + region=subnet.region, + network=net.id) + rp_import = gcp.compute.RouterRoutePolicy("rp-import", + name="my-rp2", + router=router.name, + region=router.region, + type="ROUTE_POLICY_TYPE_IMPORT", + terms=[{ + "priority": 2, + "match": { + "expression": "destination == '10.0.0.0/12'", + }, + "actions": [{ + "expression": "accept()", + }], + }]) + ``` + + ## Import + + RouterRoutePolicy can be imported using any of these accepted formats: + + * `{{project}}/{{region}}/{{router}}/routePolicies/{{name}}` + + * `{{project}}/{{region}}/{{router}}/{{name}}` + + * `{{region}}/{{router}}/{{name}}` + + * `{{router}}/{{name}}` + + When using the `pulumi import` command, RouterRoutePolicy can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/routePolicies/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{project}}/{{region}}/{{router}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{region}}/{{router}}/{{name}} + ``` + + ```sh + $ pulumi import gcp:compute/routerRoutePolicy:RouterRoutePolicy default {{router}}/{{name}} + ``` + + :param str resource_name: The name of the resource. + :param RouterRoutePolicyArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(RouterRoutePolicyArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + router: Optional[pulumi.Input[str]] = None, + terms: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterRoutePolicyTermArgs', 'RouterRoutePolicyTermArgsDict']]]]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = RouterRoutePolicyArgs.__new__(RouterRoutePolicyArgs) + + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["region"] = region + if router is None and not opts.urn: + raise TypeError("Missing required property 'router'") + __props__.__dict__["router"] = router + if terms is None and not opts.urn: + raise TypeError("Missing required property 'terms'") + __props__.__dict__["terms"] = terms + __props__.__dict__["type"] = type + __props__.__dict__["fingerprint"] = None + super(RouterRoutePolicy, __self__).__init__( + 'gcp:compute/routerRoutePolicy:RouterRoutePolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + fingerprint: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None, + router: Optional[pulumi.Input[str]] = None, + terms: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RouterRoutePolicyTermArgs', 'RouterRoutePolicyTermArgsDict']]]]] = None, + type: Optional[pulumi.Input[str]] = None) -> 'RouterRoutePolicy': + """ + Get an existing RouterRoutePolicy resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] fingerprint: The fingerprint used for optimistic locking of this resource. Used + internally during updates. + :param pulumi.Input[str] name: Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + :param pulumi.Input[str] region: Region where the router and NAT reside. + :param pulumi.Input[str] router: The name of the Cloud Router in which this route policy will be configured. + :param pulumi.Input[Sequence[pulumi.Input[Union['RouterRoutePolicyTermArgs', 'RouterRoutePolicyTermArgsDict']]]] terms: List of terms (the order in the list is not important, they are evaluated in order of priority). + Structure is documented below. + :param pulumi.Input[str] type: This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + "ROUTE_POLICY_TYPE_EXPORT"] + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _RouterRoutePolicyState.__new__(_RouterRoutePolicyState) + + __props__.__dict__["fingerprint"] = fingerprint + __props__.__dict__["name"] = name + __props__.__dict__["project"] = project + __props__.__dict__["region"] = region + __props__.__dict__["router"] = router + __props__.__dict__["terms"] = terms + __props__.__dict__["type"] = type + return RouterRoutePolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def fingerprint(self) -> pulumi.Output[str]: + """ + The fingerprint used for optimistic locking of this resource. Used + internally during updates. + """ + return pulumi.get(self, "fingerprint") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the route policy. This policy's name, which must be a resource ID segment and unique within all policies owned by the Router + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def project(self) -> pulumi.Output[str]: + return pulumi.get(self, "project") + + @property + @pulumi.getter + def region(self) -> pulumi.Output[str]: + """ + Region where the router and NAT reside. + """ + return pulumi.get(self, "region") + + @property + @pulumi.getter + def router(self) -> pulumi.Output[str]: + """ + The name of the Cloud Router in which this route policy will be configured. + """ + return pulumi.get(self, "router") + + @property + @pulumi.getter + def terms(self) -> pulumi.Output[Sequence['outputs.RouterRoutePolicyTerm']]: + """ + List of terms (the order in the list is not important, they are evaluated in order of priority). + Structure is documented below. + """ + return pulumi.get(self, "terms") + + @property + @pulumi.getter + def type(self) -> pulumi.Output[Optional[str]]: + """ + This is policy's type, which is one of IMPORT or EXPORT Possible values: ["ROUTE_POLICY_TYPE_IMPORT", + "ROUTE_POLICY_TYPE_EXPORT"] + """ + return pulumi.get(self, "type") + diff --git a/sdk/python/pulumi_gcp/compute/service_attachment.py b/sdk/python/pulumi_gcp/compute/service_attachment.py index 1e742a1dbb..8ba8fedd8b 100644 --- a/sdk/python/pulumi_gcp/compute/service_attachment.py +++ b/sdk/python/pulumi_gcp/compute/service_attachment.py @@ -44,8 +44,7 @@ def __init__(__self__, *, - - - :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_subnets: An array of subnets that is provided for NAT in this service attachment. - :param pulumi.Input[str] target_service: The URL of a forwarding rule that represents the service identified by - this service attachment. + :param pulumi.Input[str] target_service: The URL of a service serving the endpoint identified by this service attachment. :param pulumi.Input[Sequence[pulumi.Input['ServiceAttachmentConsumerAcceptListArgs']]] consumer_accept_lists: An array of projects that are allowed to connect to this service attachment. Structure is documented below. @@ -136,8 +135,7 @@ def nat_subnets(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): @pulumi.getter(name="targetService") def target_service(self) -> pulumi.Input[str]: """ - The URL of a forwarding rule that represents the service identified by - this service attachment. + The URL of a service serving the endpoint identified by this service attachment. """ return pulumi.get(self, "target_service") @@ -313,8 +311,7 @@ def __init__(__self__, *, If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. :param pulumi.Input[str] region: URL of the region where the resource resides. :param pulumi.Input[str] self_link: The URI of the created resource. - :param pulumi.Input[str] target_service: The URL of a forwarding rule that represents the service identified by - this service attachment. + :param pulumi.Input[str] target_service: The URL of a service serving the endpoint identified by this service attachment. """ if connected_endpoints is not None: pulumi.set(__self__, "connected_endpoints", connected_endpoints) @@ -542,8 +539,7 @@ def self_link(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="targetService") def target_service(self) -> Optional[pulumi.Input[str]]: """ - The URL of a forwarding rule that represents the service identified by - this service attachment. + The URL of a service serving the endpoint identified by this service attachment. """ return pulumi.get(self, "target_service") @@ -906,8 +902,7 @@ def __init__(__self__, If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified . If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. :param pulumi.Input[str] region: URL of the region where the resource resides. - :param pulumi.Input[str] target_service: The URL of a forwarding rule that represents the service identified by - this service attachment. + :param pulumi.Input[str] target_service: The URL of a service serving the endpoint identified by this service attachment. """ ... @overload @@ -1346,8 +1341,7 @@ def get(resource_name: str, If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list. :param pulumi.Input[str] region: URL of the region where the resource resides. :param pulumi.Input[str] self_link: The URI of the created resource. - :param pulumi.Input[str] target_service: The URL of a forwarding rule that represents the service identified by - this service attachment. + :param pulumi.Input[str] target_service: The URL of a service serving the endpoint identified by this service attachment. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -1509,8 +1503,7 @@ def self_link(self) -> pulumi.Output[str]: @pulumi.getter(name="targetService") def target_service(self) -> pulumi.Output[str]: """ - The URL of a forwarding rule that represents the service identified by - this service attachment. + The URL of a service serving the endpoint identified by this service attachment. """ return pulumi.get(self, "target_service") diff --git a/sdk/python/pulumi_gcp/container/_inputs.py b/sdk/python/pulumi_gcp/container/_inputs.py index bef715db01..a084e00287 100644 --- a/sdk/python/pulumi_gcp/container/_inputs.py +++ b/sdk/python/pulumi_gcp/container/_inputs.py @@ -175,6 +175,12 @@ 'ClusterAddonsConfigKalmConfigArgsDict', 'ClusterAddonsConfigNetworkPolicyConfigArgs', 'ClusterAddonsConfigNetworkPolicyConfigArgsDict', + 'ClusterAddonsConfigRayOperatorConfigArgs', + 'ClusterAddonsConfigRayOperatorConfigArgsDict', + 'ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs', + 'ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgsDict', + 'ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs', + 'ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgsDict', 'ClusterAddonsConfigStatefulHaConfigArgs', 'ClusterAddonsConfigStatefulHaConfigArgsDict', 'ClusterAuthenticatorGroupsConfigArgs', @@ -4472,13 +4478,29 @@ class ClusterAddonsConfigArgsDict(TypedDict): It can only be disabled if the nodes already do not have network policies enabled. Defaults to disabled; set `disabled = false` to enable. """ + ray_operator_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgsDict']]]] + """ + . The status of the [Ray Operator + addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + It is disabled by default. Set `enabled = true` to enable. The minimum + cluster version to enable Ray is 1.30.0-gke.1747000. + + Ray Operator config has optional subfields + `ray_cluster_logging_config.enabled` and + `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + and monitoring respectively. See [Collect and view logs and metrics for Ray + clusters on + GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + for more information. + + + This example `addons_config` disables two addons: + """ stateful_ha_config: NotRequired[pulumi.Input['ClusterAddonsConfigStatefulHaConfigArgsDict']] """ . The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. It is disabled by default for Standard clusters. Set `enabled = true` to enable. - - This example `addons_config` disables two addons: """ elif False: ClusterAddonsConfigArgsDict: TypeAlias = Mapping[str, Any] @@ -4498,6 +4520,7 @@ def __init__(__self__, *, istio_config: Optional[pulumi.Input['ClusterAddonsConfigIstioConfigArgs']] = None, kalm_config: Optional[pulumi.Input['ClusterAddonsConfigKalmConfigArgs']] = None, network_policy_config: Optional[pulumi.Input['ClusterAddonsConfigNetworkPolicyConfigArgs']] = None, + ray_operator_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgs']]]] = None, stateful_ha_config: Optional[pulumi.Input['ClusterAddonsConfigStatefulHaConfigArgs']] = None): """ :param pulumi.Input['ClusterAddonsConfigCloudrunConfigArgs'] cloudrun_config: . Structure is documented below. @@ -4541,11 +4564,24 @@ def __init__(__self__, *, 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. + :param pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgs']]] ray_operator_configs: . The status of the [Ray Operator + addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + It is disabled by default. Set `enabled = true` to enable. The minimum + cluster version to enable Ray is 1.30.0-gke.1747000. + + Ray Operator config has optional subfields + `ray_cluster_logging_config.enabled` and + `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + and monitoring respectively. See [Collect and view logs and metrics for Ray + clusters on + GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + for more information. + + + This example `addons_config` disables two addons: :param pulumi.Input['ClusterAddonsConfigStatefulHaConfigArgs'] stateful_ha_config: . The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. It is disabled by default for Standard clusters. Set `enabled = true` to enable. - - This example `addons_config` disables two addons: """ if cloudrun_config is not None: pulumi.set(__self__, "cloudrun_config", cloudrun_config) @@ -4571,6 +4607,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kalm_config", kalm_config) if network_policy_config is not None: pulumi.set(__self__, "network_policy_config", network_policy_config) + if ray_operator_configs is not None: + pulumi.set(__self__, "ray_operator_configs", ray_operator_configs) if stateful_ha_config is not None: pulumi.set(__self__, "stateful_ha_config", stateful_ha_config) @@ -4747,6 +4785,32 @@ def network_policy_config(self) -> Optional[pulumi.Input['ClusterAddonsConfigNet def network_policy_config(self, value: Optional[pulumi.Input['ClusterAddonsConfigNetworkPolicyConfigArgs']]): pulumi.set(self, "network_policy_config", value) + @property + @pulumi.getter(name="rayOperatorConfigs") + def ray_operator_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgs']]]]: + """ + . The status of the [Ray Operator + addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + It is disabled by default. Set `enabled = true` to enable. The minimum + cluster version to enable Ray is 1.30.0-gke.1747000. + + Ray Operator config has optional subfields + `ray_cluster_logging_config.enabled` and + `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + and monitoring respectively. See [Collect and view logs and metrics for Ray + clusters on + GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + for more information. + + + This example `addons_config` disables two addons: + """ + return pulumi.get(self, "ray_operator_configs") + + @ray_operator_configs.setter + def ray_operator_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterAddonsConfigRayOperatorConfigArgs']]]]): + pulumi.set(self, "ray_operator_configs", value) + @property @pulumi.getter(name="statefulHaConfig") def stateful_ha_config(self) -> Optional[pulumi.Input['ClusterAddonsConfigStatefulHaConfigArgs']]: @@ -4754,8 +4818,6 @@ def stateful_ha_config(self) -> Optional[pulumi.Input['ClusterAddonsConfigStatef . The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. It is disabled by default for Standard clusters. Set `enabled = true` to enable. - - This example `addons_config` disables two addons: """ return pulumi.get(self, "stateful_ha_config") @@ -5137,6 +5199,114 @@ def disabled(self, value: pulumi.Input[bool]): pulumi.set(self, "disabled", value) +if not MYPY: + class ClusterAddonsConfigRayOperatorConfigArgsDict(TypedDict): + enabled: pulumi.Input[bool] + ray_cluster_logging_config: NotRequired[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgsDict']] + """ + The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + """ + ray_cluster_monitoring_config: NotRequired[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgsDict']] + """ + The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + """ +elif False: + ClusterAddonsConfigRayOperatorConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterAddonsConfigRayOperatorConfigArgs: + def __init__(__self__, *, + enabled: pulumi.Input[bool], + ray_cluster_logging_config: Optional[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs']] = None, + ray_cluster_monitoring_config: Optional[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs']] = None): + """ + :param pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs'] ray_cluster_logging_config: The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + :param pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs'] ray_cluster_monitoring_config: The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + """ + pulumi.set(__self__, "enabled", enabled) + if ray_cluster_logging_config is not None: + pulumi.set(__self__, "ray_cluster_logging_config", ray_cluster_logging_config) + if ray_cluster_monitoring_config is not None: + pulumi.set(__self__, "ray_cluster_monitoring_config", ray_cluster_monitoring_config) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Input[bool]: + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "enabled", value) + + @property + @pulumi.getter(name="rayClusterLoggingConfig") + def ray_cluster_logging_config(self) -> Optional[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs']]: + """ + The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + """ + return pulumi.get(self, "ray_cluster_logging_config") + + @ray_cluster_logging_config.setter + def ray_cluster_logging_config(self, value: Optional[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs']]): + pulumi.set(self, "ray_cluster_logging_config", value) + + @property + @pulumi.getter(name="rayClusterMonitoringConfig") + def ray_cluster_monitoring_config(self) -> Optional[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs']]: + """ + The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + """ + return pulumi.get(self, "ray_cluster_monitoring_config") + + @ray_cluster_monitoring_config.setter + def ray_cluster_monitoring_config(self, value: Optional[pulumi.Input['ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs']]): + pulumi.set(self, "ray_cluster_monitoring_config", value) + + +if not MYPY: + class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgsDict(TypedDict): + enabled: pulumi.Input[bool] +elif False: + ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs: + def __init__(__self__, *, + enabled: pulumi.Input[bool]): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Input[bool]: + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "enabled", value) + + +if not MYPY: + class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgsDict(TypedDict): + enabled: pulumi.Input[bool] +elif False: + ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs: + def __init__(__self__, *, + enabled: pulumi.Input[bool]): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> pulumi.Input[bool]: + return pulumi.get(self, "enabled") + + @enabled.setter + def enabled(self, value: pulumi.Input[bool]): + pulumi.set(self, "enabled", value) + + if not MYPY: class ClusterAddonsConfigStatefulHaConfigArgsDict(TypedDict): enabled: pulumi.Input[bool] @@ -15896,7 +16066,10 @@ class NodePoolNodeConfigArgsDict(TypedDict): """ reservation_affinity: NotRequired[pulumi.Input['NodePoolNodeConfigReservationAffinityArgsDict']] """ - The reservation affinity configuration for the node pool. + The configuration of the desired reservation which instances could take capacity from. + Structure is documented below. + + The `autoscaling` block supports (either total or per zone limits are required): """ resource_labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]] """ @@ -16017,7 +16190,10 @@ def __init__(__self__, *, :param pulumi.Input[str] node_group: 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. :param pulumi.Input[Sequence[pulumi.Input[str]]] oauth_scopes: The set of Google API scopes to be made available on all of the node VMs. :param pulumi.Input[bool] preemptible: Whether the nodes are created as preemptible VM instances. - :param pulumi.Input['NodePoolNodeConfigReservationAffinityArgs'] reservation_affinity: The reservation affinity configuration for the node pool. + :param pulumi.Input['NodePoolNodeConfigReservationAffinityArgs'] reservation_affinity: The configuration of the desired reservation which instances could take capacity from. + Structure is documented below. + + The `autoscaling` block supports (either total or per zone limits are required): :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_labels: The GCE resource labels (a map of key/value pairs) to be applied to the node pool. :param pulumi.Input[Mapping[str, Any]] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param pulumi.Input['NodePoolNodeConfigSandboxConfigArgs'] sandbox_config: Sandbox configuration for this node. @@ -16451,7 +16627,10 @@ def preemptible(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="reservationAffinity") def reservation_affinity(self) -> Optional[pulumi.Input['NodePoolNodeConfigReservationAffinityArgs']]: """ - The reservation affinity configuration for the node pool. + The configuration of the desired reservation which instances could take capacity from. + Structure is documented below. + + The `autoscaling` block supports (either total or per zone limits are required): """ return pulumi.get(self, "reservation_affinity") @@ -17468,15 +17647,21 @@ def local_ssd_count(self, value: pulumi.Input[int]): class NodePoolNodeConfigReservationAffinityArgsDict(TypedDict): consume_reservation_type: pulumi.Input[str] """ - Corresponds to the type of reservation consumption. + The type of reservation consumption + Accepted values are: + + * `"UNSPECIFIED"`: Default value. This should not be used. + * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * `"ANY_RESERVATION"`: Consume any reservation available. + * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. """ key: NotRequired[pulumi.Input[str]] """ - The label key of a reservation resource. + 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. """ values: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ - The label values of the reservation resource. + 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" """ elif False: NodePoolNodeConfigReservationAffinityArgsDict: TypeAlias = Mapping[str, Any] @@ -17488,9 +17673,15 @@ def __init__(__self__, *, key: Optional[pulumi.Input[str]] = None, values: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ - :param pulumi.Input[str] consume_reservation_type: Corresponds to the type of reservation consumption. - :param pulumi.Input[str] key: The label key of a reservation resource. - :param pulumi.Input[Sequence[pulumi.Input[str]]] values: The label values of the reservation resource. + :param pulumi.Input[str] consume_reservation_type: The type of reservation consumption + Accepted values are: + + * `"UNSPECIFIED"`: Default value. This should not be used. + * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * `"ANY_RESERVATION"`: Consume any reservation available. + * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. + :param pulumi.Input[str] key: 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. + :param pulumi.Input[Sequence[pulumi.Input[str]]] values: 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" """ pulumi.set(__self__, "consume_reservation_type", consume_reservation_type) if key is not None: @@ -17502,7 +17693,13 @@ def __init__(__self__, *, @pulumi.getter(name="consumeReservationType") def consume_reservation_type(self) -> pulumi.Input[str]: """ - Corresponds to the type of reservation consumption. + The type of reservation consumption + Accepted values are: + + * `"UNSPECIFIED"`: Default value. This should not be used. + * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * `"ANY_RESERVATION"`: Consume any reservation available. + * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. """ return pulumi.get(self, "consume_reservation_type") @@ -17514,7 +17711,7 @@ def consume_reservation_type(self, value: pulumi.Input[str]): @pulumi.getter def key(self) -> Optional[pulumi.Input[str]]: """ - The label key of a reservation resource. + 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. """ return pulumi.get(self, "key") @@ -17526,7 +17723,7 @@ def key(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def values(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ - The label values of the reservation resource. + 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" """ return pulumi.get(self, "values") diff --git a/sdk/python/pulumi_gcp/container/node_pool.py b/sdk/python/pulumi_gcp/container/node_pool.py index bcbab46a40..71cb204ea2 100644 --- a/sdk/python/pulumi_gcp/container/node_pool.py +++ b/sdk/python/pulumi_gcp/container/node_pool.py @@ -87,8 +87,6 @@ def __init__(__self__, *, the provider-configured project will be used. :param pulumi.Input['NodePoolQueuedProvisioningArgs'] queued_provisioning: Specifies node pool-level settings of queued provisioning. Structure is documented below. - - The `autoscaling` block supports (either total or per zone limits are required): :param pulumi.Input['NodePoolUpgradeSettingsArgs'] upgrade_settings: Specify node upgrade settings to change how GKE upgrades nodes. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. :param pulumi.Input[str] version: The Kubernetes version for the nodes in this pool. Note that if this field @@ -337,8 +335,6 @@ def queued_provisioning(self) -> Optional[pulumi.Input['NodePoolQueuedProvisioni """ Specifies node pool-level settings of queued provisioning. Structure is documented below. - - The `autoscaling` block supports (either total or per zone limits are required): """ return pulumi.get(self, "queued_provisioning") @@ -451,8 +447,6 @@ def __init__(__self__, *, the provider-configured project will be used. :param pulumi.Input['NodePoolQueuedProvisioningArgs'] queued_provisioning: Specifies node pool-level settings of queued provisioning. Structure is documented below. - - The `autoscaling` block supports (either total or per zone limits are required): :param pulumi.Input['NodePoolUpgradeSettingsArgs'] upgrade_settings: Specify node upgrade settings to change how GKE upgrades nodes. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. :param pulumi.Input[str] version: The Kubernetes version for the nodes in this pool. Note that if this field @@ -741,8 +735,6 @@ def queued_provisioning(self) -> Optional[pulumi.Input['NodePoolQueuedProvisioni """ Specifies node pool-level settings of queued provisioning. Structure is documented below. - - The `autoscaling` block supports (either total or per zone limits are required): """ return pulumi.get(self, "queued_provisioning") @@ -938,8 +930,6 @@ def __init__(__self__, the provider-configured project will be used. :param pulumi.Input[Union['NodePoolQueuedProvisioningArgs', 'NodePoolQueuedProvisioningArgsDict']] queued_provisioning: Specifies node pool-level settings of queued provisioning. Structure is documented below. - - The `autoscaling` block supports (either total or per zone limits are required): :param pulumi.Input[Union['NodePoolUpgradeSettingsArgs', 'NodePoolUpgradeSettingsArgsDict']] upgrade_settings: Specify node upgrade settings to change how GKE upgrades nodes. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. :param pulumi.Input[str] version: The Kubernetes version for the nodes in this pool. Note that if this field @@ -1189,8 +1179,6 @@ def get(resource_name: str, the provider-configured project will be used. :param pulumi.Input[Union['NodePoolQueuedProvisioningArgs', 'NodePoolQueuedProvisioningArgsDict']] queued_provisioning: Specifies node pool-level settings of queued provisioning. Structure is documented below. - - The `autoscaling` block supports (either total or per zone limits are required): :param pulumi.Input[Union['NodePoolUpgradeSettingsArgs', 'NodePoolUpgradeSettingsArgsDict']] upgrade_settings: Specify node upgrade settings to change how GKE upgrades nodes. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below. :param pulumi.Input[str] version: The Kubernetes version for the nodes in this pool. Note that if this field @@ -1396,8 +1384,6 @@ def queued_provisioning(self) -> pulumi.Output[Optional['outputs.NodePoolQueuedP """ Specifies node pool-level settings of queued provisioning. Structure is documented below. - - The `autoscaling` block supports (either total or per zone limits are required): """ return pulumi.get(self, "queued_provisioning") diff --git a/sdk/python/pulumi_gcp/container/outputs.py b/sdk/python/pulumi_gcp/container/outputs.py index e921ef92f8..2a890cf3ea 100644 --- a/sdk/python/pulumi_gcp/container/outputs.py +++ b/sdk/python/pulumi_gcp/container/outputs.py @@ -96,6 +96,9 @@ 'ClusterAddonsConfigIstioConfig', 'ClusterAddonsConfigKalmConfig', 'ClusterAddonsConfigNetworkPolicyConfig', + 'ClusterAddonsConfigRayOperatorConfig', + 'ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig', + 'ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig', 'ClusterAddonsConfigStatefulHaConfig', 'ClusterAuthenticatorGroupsConfig', 'ClusterBinaryAuthorization', @@ -285,6 +288,9 @@ 'GetClusterAddonsConfigIstioConfigResult', 'GetClusterAddonsConfigKalmConfigResult', 'GetClusterAddonsConfigNetworkPolicyConfigResult', + 'GetClusterAddonsConfigRayOperatorConfigResult', + 'GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult', + 'GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult', 'GetClusterAddonsConfigStatefulHaConfigResult', 'GetClusterAuthenticatorGroupsConfigResult', 'GetClusterBinaryAuthorizationResult', @@ -3762,6 +3768,8 @@ def __key_warning(key: str): suggest = "kalm_config" elif key == "networkPolicyConfig": suggest = "network_policy_config" + elif key == "rayOperatorConfigs": + suggest = "ray_operator_configs" elif key == "statefulHaConfig": suggest = "stateful_ha_config" @@ -3789,6 +3797,7 @@ def __init__(__self__, *, istio_config: Optional['outputs.ClusterAddonsConfigIstioConfig'] = None, kalm_config: Optional['outputs.ClusterAddonsConfigKalmConfig'] = None, network_policy_config: Optional['outputs.ClusterAddonsConfigNetworkPolicyConfig'] = None, + ray_operator_configs: Optional[Sequence['outputs.ClusterAddonsConfigRayOperatorConfig']] = None, stateful_ha_config: Optional['outputs.ClusterAddonsConfigStatefulHaConfig'] = None): """ :param 'ClusterAddonsConfigCloudrunConfigArgs' cloudrun_config: . Structure is documented below. @@ -3832,11 +3841,24 @@ def __init__(__self__, *, 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. + :param Sequence['ClusterAddonsConfigRayOperatorConfigArgs'] ray_operator_configs: . The status of the [Ray Operator + addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + It is disabled by default. Set `enabled = true` to enable. The minimum + cluster version to enable Ray is 1.30.0-gke.1747000. + + Ray Operator config has optional subfields + `ray_cluster_logging_config.enabled` and + `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + and monitoring respectively. See [Collect and view logs and metrics for Ray + clusters on + GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + for more information. + + + This example `addons_config` disables two addons: :param 'ClusterAddonsConfigStatefulHaConfigArgs' stateful_ha_config: . The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. It is disabled by default for Standard clusters. Set `enabled = true` to enable. - - This example `addons_config` disables two addons: """ if cloudrun_config is not None: pulumi.set(__self__, "cloudrun_config", cloudrun_config) @@ -3862,6 +3884,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kalm_config", kalm_config) if network_policy_config is not None: pulumi.set(__self__, "network_policy_config", network_policy_config) + if ray_operator_configs is not None: + pulumi.set(__self__, "ray_operator_configs", ray_operator_configs) if stateful_ha_config is not None: pulumi.set(__self__, "stateful_ha_config", stateful_ha_config) @@ -3990,6 +4014,28 @@ def network_policy_config(self) -> Optional['outputs.ClusterAddonsConfigNetworkP """ return pulumi.get(self, "network_policy_config") + @property + @pulumi.getter(name="rayOperatorConfigs") + def ray_operator_configs(self) -> Optional[Sequence['outputs.ClusterAddonsConfigRayOperatorConfig']]: + """ + . The status of the [Ray Operator + addon](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/concepts/overview). + It is disabled by default. Set `enabled = true` to enable. The minimum + cluster version to enable Ray is 1.30.0-gke.1747000. + + Ray Operator config has optional subfields + `ray_cluster_logging_config.enabled` and + `ray_cluster_monitoring_config.enabled` which control Ray Cluster logging + and monitoring respectively. See [Collect and view logs and metrics for Ray + clusters on + GKE](https://cloud.google.com/kubernetes-engine/docs/add-on/ray-on-gke/how-to/collect-view-logs-metrics) + for more information. + + + This example `addons_config` disables two addons: + """ + return pulumi.get(self, "ray_operator_configs") + @property @pulumi.getter(name="statefulHaConfig") def stateful_ha_config(self) -> Optional['outputs.ClusterAddonsConfigStatefulHaConfig']: @@ -3997,8 +4043,6 @@ def stateful_ha_config(self) -> Optional['outputs.ClusterAddonsConfigStatefulHaC . The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. It is disabled by default for Standard clusters. Set `enabled = true` to enable. - - This example `addons_config` disables two addons: """ return pulumi.get(self, "stateful_ha_config") @@ -4234,6 +4278,87 @@ def disabled(self) -> bool: return pulumi.get(self, "disabled") +@pulumi.output_type +class ClusterAddonsConfigRayOperatorConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "rayClusterLoggingConfig": + suggest = "ray_cluster_logging_config" + elif key == "rayClusterMonitoringConfig": + suggest = "ray_cluster_monitoring_config" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ClusterAddonsConfigRayOperatorConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ClusterAddonsConfigRayOperatorConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ClusterAddonsConfigRayOperatorConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + enabled: bool, + ray_cluster_logging_config: Optional['outputs.ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig'] = None, + ray_cluster_monitoring_config: Optional['outputs.ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig'] = None): + """ + :param 'ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs' ray_cluster_logging_config: The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + :param 'ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs' ray_cluster_monitoring_config: The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + """ + pulumi.set(__self__, "enabled", enabled) + if ray_cluster_logging_config is not None: + pulumi.set(__self__, "ray_cluster_logging_config", ray_cluster_logging_config) + if ray_cluster_monitoring_config is not None: + pulumi.set(__self__, "ray_cluster_monitoring_config", ray_cluster_monitoring_config) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="rayClusterLoggingConfig") + def ray_cluster_logging_config(self) -> Optional['outputs.ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig']: + """ + The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + """ + return pulumi.get(self, "ray_cluster_logging_config") + + @property + @pulumi.getter(name="rayClusterMonitoringConfig") + def ray_cluster_monitoring_config(self) -> Optional['outputs.ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig']: + """ + The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + """ + return pulumi.get(self, "ray_cluster_monitoring_config") + + +@pulumi.output_type +class ClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfig(dict): + def __init__(__self__, *, + enabled: bool): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class ClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfig(dict): + def __init__(__self__, *, + enabled: bool): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @pulumi.output_type class ClusterAddonsConfigStatefulHaConfig(dict): def __init__(__self__, *, @@ -12855,7 +12980,10 @@ def __init__(__self__, *, :param str node_group: 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. :param Sequence[str] oauth_scopes: The set of Google API scopes to be made available on all of the node VMs. :param bool preemptible: Whether the nodes are created as preemptible VM instances. - :param 'NodePoolNodeConfigReservationAffinityArgs' reservation_affinity: The reservation affinity configuration for the node pool. + :param 'NodePoolNodeConfigReservationAffinityArgs' reservation_affinity: The configuration of the desired reservation which instances could take capacity from. + Structure is documented below. + + The `autoscaling` block supports (either total or per zone limits are required): :param Mapping[str, str] resource_labels: The GCE resource labels (a map of key/value pairs) to be applied to the node pool. :param Mapping[str, Any] resource_manager_tags: A map of resource manager tags. Resource manager tag keys and values have the same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id}, and values are in the format tagValues/456. The field is ignored (both PUT & PATCH) when empty. :param 'NodePoolNodeConfigSandboxConfigArgs' sandbox_config: Sandbox configuration for this node. @@ -13177,7 +13305,10 @@ def preemptible(self) -> Optional[bool]: @pulumi.getter(name="reservationAffinity") def reservation_affinity(self) -> Optional['outputs.NodePoolNodeConfigReservationAffinity']: """ - The reservation affinity configuration for the node pool. + The configuration of the desired reservation which instances could take capacity from. + Structure is documented below. + + The `autoscaling` block supports (either total or per zone limits are required): """ return pulumi.get(self, "reservation_affinity") @@ -14058,9 +14189,15 @@ def __init__(__self__, *, key: Optional[str] = None, values: Optional[Sequence[str]] = None): """ - :param str consume_reservation_type: Corresponds to the type of reservation consumption. - :param str key: The label key of a reservation resource. - :param Sequence[str] values: The label values of the reservation resource. + :param str consume_reservation_type: The type of reservation consumption + Accepted values are: + + * `"UNSPECIFIED"`: Default value. This should not be used. + * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * `"ANY_RESERVATION"`: Consume any reservation available. + * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. + :param str key: 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. + :param Sequence[str] values: 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" """ pulumi.set(__self__, "consume_reservation_type", consume_reservation_type) if key is not None: @@ -14072,7 +14209,13 @@ def __init__(__self__, *, @pulumi.getter(name="consumeReservationType") def consume_reservation_type(self) -> str: """ - Corresponds to the type of reservation consumption. + The type of reservation consumption + Accepted values are: + + * `"UNSPECIFIED"`: Default value. This should not be used. + * `"NO_RESERVATION"`: Do not consume from any reserved capacity. + * `"ANY_RESERVATION"`: Consume any reservation available. + * `"SPECIFIC_RESERVATION"`: Must consume from a specific reservation. Must specify key value fields for specifying the reservations. """ return pulumi.get(self, "consume_reservation_type") @@ -14080,7 +14223,7 @@ def consume_reservation_type(self) -> str: @pulumi.getter def key(self) -> Optional[str]: """ - The label key of a reservation resource. + 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. """ return pulumi.get(self, "key") @@ -14088,7 +14231,7 @@ def key(self) -> Optional[str]: @pulumi.getter def values(self) -> Optional[Sequence[str]]: """ - The label values of the reservation resource. + 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" """ return pulumi.get(self, "values") @@ -14665,6 +14808,7 @@ def __init__(__self__, *, istio_configs: Sequence['outputs.GetClusterAddonsConfigIstioConfigResult'], kalm_configs: Sequence['outputs.GetClusterAddonsConfigKalmConfigResult'], network_policy_configs: Sequence['outputs.GetClusterAddonsConfigNetworkPolicyConfigResult'], + ray_operator_configs: Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigResult'], stateful_ha_configs: Sequence['outputs.GetClusterAddonsConfigStatefulHaConfigResult']): """ :param Sequence['GetClusterAddonsConfigCloudrunConfigArgs'] cloudrun_configs: The status of the CloudRun addon. It is disabled by default. Set disabled = false to enable. @@ -14679,6 +14823,7 @@ def __init__(__self__, *, :param Sequence['GetClusterAddonsConfigIstioConfigArgs'] istio_configs: The status of the Istio addon. :param Sequence['GetClusterAddonsConfigKalmConfigArgs'] kalm_configs: Configuration for the KALM addon, which manages the lifecycle of k8s. It is disabled by default; Set enabled = true to enable. :param Sequence['GetClusterAddonsConfigNetworkPolicyConfigArgs'] network_policy_configs: 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 network_policy block, 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. + :param Sequence['GetClusterAddonsConfigRayOperatorConfigArgs'] ray_operator_configs: 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. :param Sequence['GetClusterAddonsConfigStatefulHaConfigArgs'] stateful_ha_configs: The status of the Stateful HA addon, which provides automatic configurable failover for stateful applications. Defaults to disabled; set enabled = true to enable. """ pulumi.set(__self__, "cloudrun_configs", cloudrun_configs) @@ -14693,6 +14838,7 @@ def __init__(__self__, *, pulumi.set(__self__, "istio_configs", istio_configs) pulumi.set(__self__, "kalm_configs", kalm_configs) pulumi.set(__self__, "network_policy_configs", network_policy_configs) + pulumi.set(__self__, "ray_operator_configs", ray_operator_configs) pulumi.set(__self__, "stateful_ha_configs", stateful_ha_configs) @property @@ -14791,6 +14937,14 @@ def network_policy_configs(self) -> Sequence['outputs.GetClusterAddonsConfigNetw """ return pulumi.get(self, "network_policy_configs") + @property + @pulumi.getter(name="rayOperatorConfigs") + def ray_operator_configs(self) -> Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigResult']: + """ + 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. + """ + return pulumi.get(self, "ray_operator_configs") + @property @pulumi.getter(name="statefulHaConfigs") def stateful_ha_configs(self) -> Sequence['outputs.GetClusterAddonsConfigStatefulHaConfigResult']: @@ -14968,6 +15122,66 @@ def disabled(self) -> bool: return pulumi.get(self, "disabled") +@pulumi.output_type +class GetClusterAddonsConfigRayOperatorConfigResult(dict): + def __init__(__self__, *, + enabled: bool, + ray_cluster_logging_configs: Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult'], + ray_cluster_monitoring_configs: Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult']): + """ + :param Sequence['GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigArgs'] ray_cluster_logging_configs: The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + :param Sequence['GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigArgs'] ray_cluster_monitoring_configs: The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + """ + pulumi.set(__self__, "enabled", enabled) + pulumi.set(__self__, "ray_cluster_logging_configs", ray_cluster_logging_configs) + pulumi.set(__self__, "ray_cluster_monitoring_configs", ray_cluster_monitoring_configs) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @property + @pulumi.getter(name="rayClusterLoggingConfigs") + def ray_cluster_logging_configs(self) -> Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult']: + """ + The status of Ray Logging, which scrapes Ray cluster logs to Cloud Logging. Defaults to disabled; set enabled = true to enable. + """ + return pulumi.get(self, "ray_cluster_logging_configs") + + @property + @pulumi.getter(name="rayClusterMonitoringConfigs") + def ray_cluster_monitoring_configs(self) -> Sequence['outputs.GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult']: + """ + The status of Ray Cluster monitoring, which shows Ray cluster metrics in Cloud Console. Defaults to disabled; set enabled = true to enable. + """ + return pulumi.get(self, "ray_cluster_monitoring_configs") + + +@pulumi.output_type +class GetClusterAddonsConfigRayOperatorConfigRayClusterLoggingConfigResult(dict): + def __init__(__self__, *, + enabled: bool): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class GetClusterAddonsConfigRayOperatorConfigRayClusterMonitoringConfigResult(dict): + def __init__(__self__, *, + enabled: bool): + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + @pulumi.output_type class GetClusterAddonsConfigStatefulHaConfigResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py b/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py index 8fb66cdff2..6687ae2a5a 100644 --- a/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py +++ b/sdk/python/pulumi_gcp/databasemigrationservice/private_connection.py @@ -340,8 +340,7 @@ def __init__(__self__, import pulumi import pulumi_gcp as gcp - default = gcp.compute.get_network(name="my-network") - default_private_connection = gcp.databasemigrationservice.PrivateConnection("default", + default = gcp.databasemigrationservice.PrivateConnection("default", display_name="dbms_pc", location="us-central1", private_connection_id="my-connection", @@ -349,9 +348,12 @@ def __init__(__self__, "key": "value", }, vpc_peering_config={ - "vpc_name": default.id, + "vpc_name": google_compute_network["default"]["id"], "subnet": "10.0.0.0/29", }) + default_network = gcp.compute.Network("default", + name="my-network", + auto_create_subnetworks=False) ``` ## Import @@ -412,8 +414,7 @@ def __init__(__self__, import pulumi import pulumi_gcp as gcp - default = gcp.compute.get_network(name="my-network") - default_private_connection = gcp.databasemigrationservice.PrivateConnection("default", + default = gcp.databasemigrationservice.PrivateConnection("default", display_name="dbms_pc", location="us-central1", private_connection_id="my-connection", @@ -421,9 +422,12 @@ def __init__(__self__, "key": "value", }, vpc_peering_config={ - "vpc_name": default.id, + "vpc_name": google_compute_network["default"]["id"], "subnet": "10.0.0.0/29", }) + default_network = gcp.compute.Network("default", + name="my-network", + auto_create_subnetworks=False) ``` ## Import diff --git a/sdk/python/pulumi_gcp/dataloss/_inputs.py b/sdk/python/pulumi_gcp/dataloss/_inputs.py index 28b8d3fd40..87657ba230 100644 --- a/sdk/python/pulumi_gcp/dataloss/_inputs.py +++ b/sdk/python/pulumi_gcp/dataloss/_inputs.py @@ -485,6 +485,32 @@ 'PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgsDict', 'PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgs', 'PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgsDict', + 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs', + 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgsDict', 'PreventionDiscoveryConfigTargetSecretsTargetArgs', 'PreventionDiscoveryConfigTargetSecretsTargetArgsDict', 'PreventionInspectTemplateInspectConfigArgs', @@ -15988,6 +16014,11 @@ class PreventionDiscoveryConfigTargetArgsDict(TypedDict): Cloud SQL target for Discovery. The first target to match a table will be the one applied. Structure is documented below. """ + cloud_storage_target: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetArgsDict']] + """ + Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + Structure is documented below. + """ secrets_target: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetSecretsTargetArgsDict']] """ 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. @@ -16000,18 +16031,23 @@ class PreventionDiscoveryConfigTargetArgs: def __init__(__self__, *, big_query_target: Optional[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetArgs']] = None, cloud_sql_target: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetArgs']] = None, + cloud_storage_target: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetArgs']] = None, secrets_target: Optional[pulumi.Input['PreventionDiscoveryConfigTargetSecretsTargetArgs']] = None): """ :param pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetArgs'] big_query_target: BigQuery target for Discovery. The first target to match a table will be the one applied. Structure is documented below. :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetArgs'] cloud_sql_target: Cloud SQL target for Discovery. The first target to match a table will be the one applied. Structure is documented below. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetArgs'] cloud_storage_target: Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + Structure is documented below. :param pulumi.Input['PreventionDiscoveryConfigTargetSecretsTargetArgs'] secrets_target: 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. """ if big_query_target is not None: pulumi.set(__self__, "big_query_target", big_query_target) if cloud_sql_target is not None: pulumi.set(__self__, "cloud_sql_target", cloud_sql_target) + if cloud_storage_target is not None: + pulumi.set(__self__, "cloud_storage_target", cloud_storage_target) if secrets_target is not None: pulumi.set(__self__, "secrets_target", secrets_target) @@ -16041,6 +16077,19 @@ def cloud_sql_target(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTa def cloud_sql_target(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetArgs']]): pulumi.set(self, "cloud_sql_target", value) + @property + @pulumi.getter(name="cloudStorageTarget") + def cloud_storage_target(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetArgs']]: + """ + Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_target") + + @cloud_storage_target.setter + def cloud_storage_target(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetArgs']]): + pulumi.set(self, "cloud_storage_target", value) + @property @pulumi.getter(name="secretsTarget") def secrets_target(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetSecretsTargetArgs']]: @@ -16333,7 +16382,7 @@ def types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): class PreventionDiscoveryConfigTargetBigQueryTargetConditionsArgsDict(TypedDict): created_after: NotRequired[pulumi.Input[str]] """ - A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + 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. """ or_conditions: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetConditionsOrConditionsArgsDict']] """ @@ -16361,7 +16410,7 @@ def __init__(__self__, *, type_collection: Optional[pulumi.Input[str]] = None, types: Optional[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetConditionsTypesArgs']] = None): """ - :param pulumi.Input[str] created_after: A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + :param pulumi.Input[str] created_after: 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. :param pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetConditionsOrConditionsArgs'] or_conditions: At least one of the conditions must be true for a table to be scanned. Structure is documented below. :param pulumi.Input[str] type_collection: Restrict discovery to categories of table types. Currently view, materialized view, snapshot and non-biglake external tables are supported. @@ -16382,7 +16431,7 @@ def __init__(__self__, *, @pulumi.getter(name="createdAfter") def created_after(self) -> Optional[pulumi.Input[str]]: """ - A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + 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. """ return pulumi.get(self, "created_after") @@ -16708,7 +16757,7 @@ def include_regexes(self, value: Optional[pulumi.Input['PreventionDiscoveryConfi class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArgsDict(TypedDict): patterns: NotRequired[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArgsDict']]]] """ - A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ elif False: @@ -16719,7 +16768,7 @@ class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesArg def __init__(__self__, *, patterns: Optional[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArgs']]] patterns: A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + :param pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArgs']]] patterns: The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ if patterns is not None: @@ -16729,7 +16778,7 @@ def __init__(__self__, *, @pulumi.getter def patterns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArgs']]]]: """ - A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ return pulumi.get(self, "patterns") @@ -16985,7 +17034,7 @@ def __init__(__self__): class PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgsDict(TypedDict): collection: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgsDict']] """ - A specific set of database resources for this filter to apply to. + A specific set of buckets for this filter to apply to. Structure is documented below. """ database_resource_reference: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReferenceArgsDict']] @@ -16995,7 +17044,7 @@ class PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgsDict(TypedDict): """ others: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersArgsDict']] """ - Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + Match discovery resources not covered by any other filter. """ elif False: PreventionDiscoveryConfigTargetCloudSqlTargetFilterArgsDict: TypeAlias = Mapping[str, Any] @@ -17007,11 +17056,11 @@ def __init__(__self__, *, database_resource_reference: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReferenceArgs']] = None, others: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersArgs']] = None): """ - :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs'] collection: A specific set of database resources for this filter to apply to. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs'] collection: A specific set of buckets for this filter to apply to. Structure is documented below. :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReferenceArgs'] database_resource_reference: The database resource to scan. Targets including this can only include one target (the target with this database resource reference). Structure is documented below. - :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersArgs'] others: Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersArgs'] others: Match discovery resources not covered by any other filter. """ if collection is not None: pulumi.set(__self__, "collection", collection) @@ -17024,7 +17073,7 @@ def __init__(__self__, *, @pulumi.getter def collection(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs']]: """ - A specific set of database resources for this filter to apply to. + A specific set of buckets for this filter to apply to. Structure is documented below. """ return pulumi.get(self, "collection") @@ -17050,7 +17099,7 @@ def database_resource_reference(self, value: Optional[pulumi.Input['PreventionDi @pulumi.getter def others(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersArgs']]: """ - Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + Match discovery resources not covered by any other filter. """ return pulumi.get(self, "others") @@ -17063,7 +17112,7 @@ def others(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCl class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgsDict(TypedDict): include_regexes: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgsDict']] """ - A collection of regular expressions to match a database resource against. + A collection of regular expressions to match a file store against. Structure is documented below. """ elif False: @@ -17074,7 +17123,7 @@ class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs: def __init__(__self__, *, include_regexes: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs']] = None): """ - :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs'] include_regexes: A collection of regular expressions to match a database resource against. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs'] include_regexes: A collection of regular expressions to match a file store against. Structure is documented below. """ if include_regexes is not None: @@ -17084,7 +17133,7 @@ def __init__(__self__, *, @pulumi.getter(name="includeRegexes") def include_regexes(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs']]: """ - A collection of regular expressions to match a database resource against. + A collection of regular expressions to match a file store against. Structure is documented below. """ return pulumi.get(self, "include_regexes") @@ -17098,7 +17147,7 @@ def include_regexes(self, value: Optional[pulumi.Input['PreventionDiscoveryConfi class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgsDict(TypedDict): patterns: NotRequired[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArgsDict']]]] """ - A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ elif False: @@ -17109,7 +17158,7 @@ class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexe def __init__(__self__, *, patterns: Optional[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArgs']]]] = None): """ - :param pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArgs']]] patterns: A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + :param pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArgs']]] patterns: The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ if patterns is not None: @@ -17119,7 +17168,7 @@ def __init__(__self__, *, @pulumi.getter def patterns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArgs']]]]: """ - A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ return pulumi.get(self, "patterns") @@ -17325,7 +17374,7 @@ def __init__(__self__): class PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceArgsDict(TypedDict): refresh_frequency: NotRequired[pulumi.Input[str]] """ - Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. """ schema_modified_cadence: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgsDict']] @@ -17342,7 +17391,7 @@ def __init__(__self__, *, refresh_frequency: Optional[pulumi.Input[str]] = None, schema_modified_cadence: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgs']] = None): """ - :param pulumi.Input[str] refresh_frequency: Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + :param pulumi.Input[str] refresh_frequency: Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. :param pulumi.Input['PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgs'] schema_modified_cadence: Governs when to update data profiles when a schema is modified Structure is documented below. @@ -17356,7 +17405,7 @@ def __init__(__self__, *, @pulumi.getter(name="refreshFrequency") def refresh_frequency(self) -> Optional[pulumi.Input[str]]: """ - Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. """ return pulumi.get(self, "refresh_frequency") @@ -17437,6 +17486,643 @@ def types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "types", value) +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetArgsDict(TypedDict): + filter: pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgsDict'] + """ + The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + Structure is documented below. + """ + conditions: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgsDict']] + """ + In addition to matching the filter, these conditions must be true before a profile is generated. + Structure is documented below. + """ + disabled: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgsDict']] + """ + Disable profiling for buckets that match this filter. + """ + generation_cadence: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgsDict']] + """ + 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. + Structure is documented below. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetArgs: + def __init__(__self__, *, + filter: pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs'], + conditions: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs']] = None, + disabled: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs']] = None, + generation_cadence: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs']] = None): + """ + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs'] filter: The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + Structure is documented below. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs'] conditions: In addition to matching the filter, these conditions must be true before a profile is generated. + Structure is documented below. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs'] disabled: Disable profiling for buckets that match this filter. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs'] generation_cadence: 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. + Structure is documented below. + """ + pulumi.set(__self__, "filter", filter) + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if disabled is not None: + pulumi.set(__self__, "disabled", disabled) + if generation_cadence is not None: + pulumi.set(__self__, "generation_cadence", generation_cadence) + + @property + @pulumi.getter + def filter(self) -> pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs']: + """ + The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + Structure is documented below. + """ + return pulumi.get(self, "filter") + + @filter.setter + def filter(self, value: pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs']): + pulumi.set(self, "filter", value) + + @property + @pulumi.getter + def conditions(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs']]: + """ + In addition to matching the filter, these conditions must be true before a profile is generated. + Structure is documented below. + """ + return pulumi.get(self, "conditions") + + @conditions.setter + def conditions(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs']]): + pulumi.set(self, "conditions", value) + + @property + @pulumi.getter + def disabled(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs']]: + """ + Disable profiling for buckets that match this filter. + """ + return pulumi.get(self, "disabled") + + @disabled.setter + def disabled(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs']]): + pulumi.set(self, "disabled", value) + + @property + @pulumi.getter(name="generationCadence") + def generation_cadence(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs']]: + """ + 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. + Structure is documented below. + """ + return pulumi.get(self, "generation_cadence") + + @generation_cadence.setter + def generation_cadence(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs']]): + pulumi.set(self, "generation_cadence", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgsDict(TypedDict): + cloud_storage_conditions: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgsDict']] + """ + Cloud Storage conditions. + Structure is documented below. + """ + created_after: NotRequired[pulumi.Input[str]] + """ + 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. + """ + min_age: NotRequired[pulumi.Input[str]] + """ + Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs: + def __init__(__self__, *, + cloud_storage_conditions: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs']] = None, + created_after: Optional[pulumi.Input[str]] = None, + min_age: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs'] cloud_storage_conditions: Cloud Storage conditions. + Structure is documented below. + :param pulumi.Input[str] created_after: 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. + :param pulumi.Input[str] min_age: Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + """ + if cloud_storage_conditions is not None: + pulumi.set(__self__, "cloud_storage_conditions", cloud_storage_conditions) + if created_after is not None: + pulumi.set(__self__, "created_after", created_after) + if min_age is not None: + pulumi.set(__self__, "min_age", min_age) + + @property + @pulumi.getter(name="cloudStorageConditions") + def cloud_storage_conditions(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs']]: + """ + Cloud Storage conditions. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_conditions") + + @cloud_storage_conditions.setter + def cloud_storage_conditions(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs']]): + pulumi.set(self, "cloud_storage_conditions", value) + + @property + @pulumi.getter(name="createdAfter") + def created_after(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "created_after") + + @created_after.setter + def created_after(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "created_after", value) + + @property + @pulumi.getter(name="minAge") + def min_age(self) -> Optional[pulumi.Input[str]]: + """ + Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + """ + return pulumi.get(self, "min_age") + + @min_age.setter + def min_age(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "min_age", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgsDict(TypedDict): + included_bucket_attributes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + """ + included_object_attributes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs: + def __init__(__self__, *, + included_bucket_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + included_object_attributes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] included_bucket_attributes: Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] included_object_attributes: 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. + Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + """ + if included_bucket_attributes is not None: + pulumi.set(__self__, "included_bucket_attributes", included_bucket_attributes) + if included_object_attributes is not None: + pulumi.set(__self__, "included_object_attributes", included_object_attributes) + + @property + @pulumi.getter(name="includedBucketAttributes") + def included_bucket_attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + """ + return pulumi.get(self, "included_bucket_attributes") + + @included_bucket_attributes.setter + def included_bucket_attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "included_bucket_attributes", value) + + @property + @pulumi.getter(name="includedObjectAttributes") + def included_object_attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + """ + return pulumi.get(self, "included_object_attributes") + + @included_object_attributes.setter + def included_object_attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "included_object_attributes", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgsDict(TypedDict): + pass +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs: + def __init__(__self__): + pass + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgsDict(TypedDict): + cloud_storage_resource_reference: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgsDict']] + """ + 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. + Structure is documented below. + """ + collection: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgsDict']] + """ + A specific set of buckets for this filter to apply to. + Structure is documented below. + """ + others: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgsDict']] + """ + Match discovery resources not covered by any other filter. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs: + def __init__(__self__, *, + cloud_storage_resource_reference: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs']] = None, + collection: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs']] = None, + others: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs']] = None): + """ + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs'] cloud_storage_resource_reference: 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. + Structure is documented below. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs'] collection: A specific set of buckets for this filter to apply to. + Structure is documented below. + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs'] others: Match discovery resources not covered by any other filter. + """ + if cloud_storage_resource_reference is not None: + pulumi.set(__self__, "cloud_storage_resource_reference", cloud_storage_resource_reference) + if collection is not None: + pulumi.set(__self__, "collection", collection) + if others is not None: + pulumi.set(__self__, "others", others) + + @property + @pulumi.getter(name="cloudStorageResourceReference") + def cloud_storage_resource_reference(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs']]: + """ + 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. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_resource_reference") + + @cloud_storage_resource_reference.setter + def cloud_storage_resource_reference(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs']]): + pulumi.set(self, "cloud_storage_resource_reference", value) + + @property + @pulumi.getter + def collection(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs']]: + """ + A specific set of buckets for this filter to apply to. + Structure is documented below. + """ + return pulumi.get(self, "collection") + + @collection.setter + def collection(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs']]): + pulumi.set(self, "collection", value) + + @property + @pulumi.getter + def others(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs']]: + """ + Match discovery resources not covered by any other filter. + """ + return pulumi.get(self, "others") + + @others.setter + def others(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs']]): + pulumi.set(self, "others", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgsDict(TypedDict): + bucket_name: NotRequired[pulumi.Input[str]] + """ + The bucket to scan. + """ + project_id: NotRequired[pulumi.Input[str]] + """ + If within a project-level config, then this must match the config's project id. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs: + def __init__(__self__, *, + bucket_name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] bucket_name: The bucket to scan. + :param pulumi.Input[str] project_id: If within a project-level config, then this must match the config's project id. + """ + if bucket_name is not None: + pulumi.set(__self__, "bucket_name", bucket_name) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + + @property + @pulumi.getter(name="bucketName") + def bucket_name(self) -> Optional[pulumi.Input[str]]: + """ + The bucket to scan. + """ + return pulumi.get(self, "bucket_name") + + @bucket_name.setter + def bucket_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bucket_name", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + If within a project-level config, then this must match the config's project id. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgsDict(TypedDict): + include_regexes: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgsDict']] + """ + A collection of regular expressions to match a file store against. + Structure is documented below. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs: + def __init__(__self__, *, + include_regexes: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs']] = None): + """ + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs'] include_regexes: A collection of regular expressions to match a file store against. + Structure is documented below. + """ + if include_regexes is not None: + pulumi.set(__self__, "include_regexes", include_regexes) + + @property + @pulumi.getter(name="includeRegexes") + def include_regexes(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs']]: + """ + A collection of regular expressions to match a file store against. + Structure is documented below. + """ + return pulumi.get(self, "include_regexes") + + @include_regexes.setter + def include_regexes(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs']]): + pulumi.set(self, "include_regexes", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgsDict(TypedDict): + patterns: NotRequired[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgsDict']]]] + """ + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + Structure is documented below. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs: + def __init__(__self__, *, + patterns: Optional[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs']]] patterns: The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + Structure is documented below. + """ + if patterns is not None: + pulumi.set(__self__, "patterns", patterns) + + @property + @pulumi.getter + def patterns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs']]]]: + """ + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + Structure is documented below. + """ + return pulumi.get(self, "patterns") + + @patterns.setter + def patterns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs']]]]): + pulumi.set(self, "patterns", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgsDict(TypedDict): + cloud_storage_regex: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgsDict']] + """ + Regex for Cloud Storage. + Structure is documented below. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs: + def __init__(__self__, *, + cloud_storage_regex: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs']] = None): + """ + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs'] cloud_storage_regex: Regex for Cloud Storage. + Structure is documented below. + """ + if cloud_storage_regex is not None: + pulumi.set(__self__, "cloud_storage_regex", cloud_storage_regex) + + @property + @pulumi.getter(name="cloudStorageRegex") + def cloud_storage_regex(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs']]: + """ + Regex for Cloud Storage. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_regex") + + @cloud_storage_regex.setter + def cloud_storage_regex(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs']]): + pulumi.set(self, "cloud_storage_regex", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgsDict(TypedDict): + bucket_name_regex: NotRequired[pulumi.Input[str]] + """ + 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 + """ + project_id_regex: NotRequired[pulumi.Input[str]] + """ + For organizations, if unset, will match all projects. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs: + def __init__(__self__, *, + bucket_name_regex: Optional[pulumi.Input[str]] = None, + project_id_regex: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] bucket_name_regex: 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 + :param pulumi.Input[str] project_id_regex: For organizations, if unset, will match all projects. + """ + if bucket_name_regex is not None: + pulumi.set(__self__, "bucket_name_regex", bucket_name_regex) + if project_id_regex is not None: + pulumi.set(__self__, "project_id_regex", project_id_regex) + + @property + @pulumi.getter(name="bucketNameRegex") + def bucket_name_regex(self) -> Optional[pulumi.Input[str]]: + """ + 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 + """ + return pulumi.get(self, "bucket_name_regex") + + @bucket_name_regex.setter + def bucket_name_regex(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "bucket_name_regex", value) + + @property + @pulumi.getter(name="projectIdRegex") + def project_id_regex(self) -> Optional[pulumi.Input[str]]: + """ + For organizations, if unset, will match all projects. + """ + return pulumi.get(self, "project_id_regex") + + @project_id_regex.setter + def project_id_regex(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id_regex", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgsDict(TypedDict): + pass +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs: + def __init__(__self__): + pass + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgsDict(TypedDict): + inspect_template_modified_cadence: NotRequired[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgsDict']] + """ + 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. + Structure is documented below. + """ + refresh_frequency: NotRequired[pulumi.Input[str]] + """ + Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs: + def __init__(__self__, *, + inspect_template_modified_cadence: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs']] = None, + refresh_frequency: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs'] inspect_template_modified_cadence: 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. + Structure is documented below. + :param pulumi.Input[str] refresh_frequency: Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + if inspect_template_modified_cadence is not None: + pulumi.set(__self__, "inspect_template_modified_cadence", inspect_template_modified_cadence) + if refresh_frequency is not None: + pulumi.set(__self__, "refresh_frequency", refresh_frequency) + + @property + @pulumi.getter(name="inspectTemplateModifiedCadence") + def inspect_template_modified_cadence(self) -> Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs']]: + """ + 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. + Structure is documented below. + """ + return pulumi.get(self, "inspect_template_modified_cadence") + + @inspect_template_modified_cadence.setter + def inspect_template_modified_cadence(self, value: Optional[pulumi.Input['PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs']]): + pulumi.set(self, "inspect_template_modified_cadence", value) + + @property + @pulumi.getter(name="refreshFrequency") + def refresh_frequency(self) -> Optional[pulumi.Input[str]]: + """ + Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + return pulumi.get(self, "refresh_frequency") + + @refresh_frequency.setter + def refresh_frequency(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "refresh_frequency", value) + + +if not MYPY: + class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgsDict(TypedDict): + frequency: NotRequired[pulumi.Input[str]] + """ + How frequently data profiles can be updated when the template is modified. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ +elif False: + PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs: + def __init__(__self__, *, + frequency: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] frequency: How frequently data profiles can be updated when the template is modified. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + if frequency is not None: + pulumi.set(__self__, "frequency", frequency) + + @property + @pulumi.getter + def frequency(self) -> Optional[pulumi.Input[str]]: + """ + How frequently data profiles can be updated when the template is modified. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + return pulumi.get(self, "frequency") + + @frequency.setter + def frequency(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "frequency", value) + + if not MYPY: class PreventionDiscoveryConfigTargetSecretsTargetArgsDict(TypedDict): pass diff --git a/sdk/python/pulumi_gcp/dataloss/outputs.py b/sdk/python/pulumi_gcp/dataloss/outputs.py index 31cf737c75..fb14f74084 100644 --- a/sdk/python/pulumi_gcp/dataloss/outputs.py +++ b/sdk/python/pulumi_gcp/dataloss/outputs.py @@ -251,6 +251,19 @@ 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers', 'PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadence', 'PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence', + 'PreventionDiscoveryConfigTargetCloudStorageTarget', + 'PreventionDiscoveryConfigTargetCloudStorageTargetConditions', + 'PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions', + 'PreventionDiscoveryConfigTargetCloudStorageTargetDisabled', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilter', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex', + 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers', + 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence', + 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence', 'PreventionDiscoveryConfigTargetSecretsTarget', 'PreventionInspectTemplateInspectConfig', 'PreventionInspectTemplateInspectConfigCustomInfoType', @@ -11755,6 +11768,8 @@ def __key_warning(key: str): suggest = "big_query_target" elif key == "cloudSqlTarget": suggest = "cloud_sql_target" + elif key == "cloudStorageTarget": + suggest = "cloud_storage_target" elif key == "secretsTarget": suggest = "secrets_target" @@ -11772,18 +11787,23 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, big_query_target: Optional['outputs.PreventionDiscoveryConfigTargetBigQueryTarget'] = None, cloud_sql_target: Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTarget'] = None, + cloud_storage_target: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTarget'] = None, secrets_target: Optional['outputs.PreventionDiscoveryConfigTargetSecretsTarget'] = None): """ :param 'PreventionDiscoveryConfigTargetBigQueryTargetArgs' big_query_target: BigQuery target for Discovery. The first target to match a table will be the one applied. Structure is documented below. :param 'PreventionDiscoveryConfigTargetCloudSqlTargetArgs' cloud_sql_target: Cloud SQL target for Discovery. The first target to match a table will be the one applied. Structure is documented below. + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetArgs' cloud_storage_target: Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + Structure is documented below. :param 'PreventionDiscoveryConfigTargetSecretsTargetArgs' secrets_target: 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. """ if big_query_target is not None: pulumi.set(__self__, "big_query_target", big_query_target) if cloud_sql_target is not None: pulumi.set(__self__, "cloud_sql_target", cloud_sql_target) + if cloud_storage_target is not None: + pulumi.set(__self__, "cloud_storage_target", cloud_storage_target) if secrets_target is not None: pulumi.set(__self__, "secrets_target", secrets_target) @@ -11805,6 +11825,15 @@ def cloud_sql_target(self) -> Optional['outputs.PreventionDiscoveryConfigTargetC """ return pulumi.get(self, "cloud_sql_target") + @property + @pulumi.getter(name="cloudStorageTarget") + def cloud_storage_target(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTarget']: + """ + Cloud Storage target for Discovery. The first target to match a bucket will be the one applied. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_target") + @property @pulumi.getter(name="secretsTarget") def secrets_target(self) -> Optional['outputs.PreventionDiscoveryConfigTargetSecretsTarget']: @@ -12028,7 +12057,7 @@ def __init__(__self__, *, type_collection: Optional[str] = None, types: Optional['outputs.PreventionDiscoveryConfigTargetBigQueryTargetConditionsTypes'] = None): """ - :param str created_after: A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + :param str created_after: 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. :param 'PreventionDiscoveryConfigTargetBigQueryTargetConditionsOrConditionsArgs' or_conditions: At least one of the conditions must be true for a table to be scanned. Structure is documented below. :param str type_collection: Restrict discovery to categories of table types. Currently view, materialized view, snapshot and non-biglake external tables are supported. @@ -12049,7 +12078,7 @@ def __init__(__self__, *, @pulumi.getter(name="createdAfter") def created_after(self) -> Optional[str]: """ - A timestamp in RFC3339 UTC "Zulu" format with nanosecond resolution and upto nine fractional digits. + 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. """ return pulumi.get(self, "created_after") @@ -12321,7 +12350,7 @@ class PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexes(di def __init__(__self__, *, patterns: Optional[Sequence['outputs.PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern']] = None): """ - :param Sequence['PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArgs'] patterns: A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + :param Sequence['PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPatternArgs'] patterns: The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ if patterns is not None: @@ -12331,7 +12360,7 @@ def __init__(__self__, *, @pulumi.getter def patterns(self) -> Optional[Sequence['outputs.PreventionDiscoveryConfigTargetBigQueryTargetFilterTablesIncludeRegexesPattern']]: """ - A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ return pulumi.get(self, "patterns") @@ -12560,11 +12589,11 @@ def __init__(__self__, *, database_resource_reference: Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReference'] = None, others: Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers'] = None): """ - :param 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs' collection: A specific set of database resources for this filter to apply to. + :param 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionArgs' collection: A specific set of buckets for this filter to apply to. Structure is documented below. :param 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterDatabaseResourceReferenceArgs' database_resource_reference: The database resource to scan. Targets including this can only include one target (the target with this database resource reference). Structure is documented below. - :param 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersArgs' others: Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + :param 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthersArgs' others: Match discovery resources not covered by any other filter. """ if collection is not None: pulumi.set(__self__, "collection", collection) @@ -12577,7 +12606,7 @@ def __init__(__self__, *, @pulumi.getter def collection(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollection']: """ - A specific set of database resources for this filter to apply to. + A specific set of buckets for this filter to apply to. Structure is documented below. """ return pulumi.get(self, "collection") @@ -12595,7 +12624,7 @@ def database_resource_reference(self) -> Optional['outputs.PreventionDiscoveryCo @pulumi.getter def others(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterOthers']: """ - Catch-all. This should always be the last target in the list because anything above it will apply first. Should only appear once in a configuration. If none is specified, a default one will be added automatically. + Match discovery resources not covered by any other filter. """ return pulumi.get(self, "others") @@ -12622,7 +12651,7 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, include_regexes: Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes'] = None): """ - :param 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs' include_regexes: A collection of regular expressions to match a database resource against. + :param 'PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesArgs' include_regexes: A collection of regular expressions to match a file store against. Structure is documented below. """ if include_regexes is not None: @@ -12632,7 +12661,7 @@ def __init__(__self__, *, @pulumi.getter(name="includeRegexes") def include_regexes(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexes']: """ - A collection of regular expressions to match a database resource against. + A collection of regular expressions to match a file store against. Structure is documented below. """ return pulumi.get(self, "include_regexes") @@ -12643,7 +12672,7 @@ class PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexe def __init__(__self__, *, patterns: Optional[Sequence['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern']] = None): """ - :param Sequence['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArgs'] patterns: A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + :param Sequence['PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPatternArgs'] patterns: The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ if patterns is not None: @@ -12653,7 +12682,7 @@ def __init__(__self__, *, @pulumi.getter def patterns(self) -> Optional[Sequence['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetFilterCollectionIncludeRegexesPattern']]: """ - A group of regular expression patterns to match against one or more database resources. Maximum of 100 entries. The sum of all regular expressions' length can't exceed 10 KiB. + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. Structure is documented below. """ return pulumi.get(self, "patterns") @@ -12838,7 +12867,7 @@ def __init__(__self__, *, refresh_frequency: Optional[str] = None, schema_modified_cadence: Optional['outputs.PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadence'] = None): """ - :param str refresh_frequency: Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + :param str refresh_frequency: Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. :param 'PreventionDiscoveryConfigTargetCloudSqlTargetGenerationCadenceSchemaModifiedCadenceArgs' schema_modified_cadence: Governs when to update data profiles when a schema is modified Structure is documented below. @@ -12852,7 +12881,7 @@ def __init__(__self__, *, @pulumi.getter(name="refreshFrequency") def refresh_frequency(self) -> Optional[str]: """ - Data changes (non-schema changes) in Cloud SQL tables can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying tables have changes. Defaults to never. + Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. """ return pulumi.get(self, "refresh_frequency") @@ -12902,6 +12931,551 @@ def types(self) -> Optional[Sequence[str]]: return pulumi.get(self, "types") +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTarget(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "generationCadence": + suggest = "generation_cadence" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTarget. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTarget.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTarget.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + filter: 'outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilter', + conditions: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditions'] = None, + disabled: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetDisabled'] = None, + generation_cadence: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence'] = None): + """ + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterArgs' filter: The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + Structure is documented below. + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetConditionsArgs' conditions: In addition to matching the filter, these conditions must be true before a profile is generated. + Structure is documented below. + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetDisabledArgs' disabled: Disable profiling for buckets that match this filter. + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceArgs' generation_cadence: 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. + Structure is documented below. + """ + pulumi.set(__self__, "filter", filter) + if conditions is not None: + pulumi.set(__self__, "conditions", conditions) + if disabled is not None: + pulumi.set(__self__, "disabled", disabled) + if generation_cadence is not None: + pulumi.set(__self__, "generation_cadence", generation_cadence) + + @property + @pulumi.getter + def filter(self) -> 'outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilter': + """ + The buckets the generation_cadence applies to. The first target with a matching filter will be the one to apply to a bucket. + Structure is documented below. + """ + return pulumi.get(self, "filter") + + @property + @pulumi.getter + def conditions(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditions']: + """ + In addition to matching the filter, these conditions must be true before a profile is generated. + Structure is documented below. + """ + return pulumi.get(self, "conditions") + + @property + @pulumi.getter + def disabled(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetDisabled']: + """ + Disable profiling for buckets that match this filter. + """ + return pulumi.get(self, "disabled") + + @property + @pulumi.getter(name="generationCadence") + def generation_cadence(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence']: + """ + 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. + Structure is documented below. + """ + return pulumi.get(self, "generation_cadence") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetConditions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cloudStorageConditions": + suggest = "cloud_storage_conditions" + elif key == "createdAfter": + suggest = "created_after" + elif key == "minAge": + suggest = "min_age" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetConditions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetConditions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetConditions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cloud_storage_conditions: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions'] = None, + created_after: Optional[str] = None, + min_age: Optional[str] = None): + """ + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditionsArgs' cloud_storage_conditions: Cloud Storage conditions. + Structure is documented below. + :param str created_after: 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. + :param str min_age: Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + """ + if cloud_storage_conditions is not None: + pulumi.set(__self__, "cloud_storage_conditions", cloud_storage_conditions) + if created_after is not None: + pulumi.set(__self__, "created_after", created_after) + if min_age is not None: + pulumi.set(__self__, "min_age", min_age) + + @property + @pulumi.getter(name="cloudStorageConditions") + def cloud_storage_conditions(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions']: + """ + Cloud Storage conditions. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_conditions") + + @property + @pulumi.getter(name="createdAfter") + def created_after(self) -> Optional[str]: + """ + 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. + """ + return pulumi.get(self, "created_after") + + @property + @pulumi.getter(name="minAge") + def min_age(self) -> Optional[str]: + """ + Duration format. Minimum age a file store must have. If set, the value must be 1 hour or greater. + """ + return pulumi.get(self, "min_age") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "includedBucketAttributes": + suggest = "included_bucket_attributes" + elif key == "includedObjectAttributes": + suggest = "included_object_attributes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetConditionsCloudStorageConditions.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + included_bucket_attributes: Optional[Sequence[str]] = None, + included_object_attributes: Optional[Sequence[str]] = None): + """ + :param Sequence[str] included_bucket_attributes: Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + :param Sequence[str] included_object_attributes: 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. + Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + """ + if included_bucket_attributes is not None: + pulumi.set(__self__, "included_bucket_attributes", included_bucket_attributes) + if included_object_attributes is not None: + pulumi.set(__self__, "included_object_attributes", included_object_attributes) + + @property + @pulumi.getter(name="includedBucketAttributes") + def included_bucket_attributes(self) -> Optional[Sequence[str]]: + """ + Only objects with the specified attributes will be scanned. Defaults to [ALL_SUPPORTED_BUCKETS] if unset. + Each value may be one of: `ALL_SUPPORTED_BUCKETS`, `AUTOCLASS_DISABLED`, `AUTOCLASS_ENABLED`. + """ + return pulumi.get(self, "included_bucket_attributes") + + @property + @pulumi.getter(name="includedObjectAttributes") + def included_object_attributes(self) -> Optional[Sequence[str]]: + """ + 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. + Each value may be one of: `ALL_SUPPORTED_OBJECTS`, `STANDARD`, `NEARLINE`, `COLDLINE`, `ARCHIVE`, `REGIONAL`, `MULTI_REGIONAL`, `DURABLE_REDUCED_AVAILABILITY`. + """ + return pulumi.get(self, "included_object_attributes") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetDisabled(dict): + def __init__(__self__): + pass + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilter(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cloudStorageResourceReference": + suggest = "cloud_storage_resource_reference" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetFilter. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilter.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilter.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cloud_storage_resource_reference: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference'] = None, + collection: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection'] = None, + others: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers'] = None): + """ + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReferenceArgs' cloud_storage_resource_reference: 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. + Structure is documented below. + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionArgs' collection: A specific set of buckets for this filter to apply to. + Structure is documented below. + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthersArgs' others: Match discovery resources not covered by any other filter. + """ + if cloud_storage_resource_reference is not None: + pulumi.set(__self__, "cloud_storage_resource_reference", cloud_storage_resource_reference) + if collection is not None: + pulumi.set(__self__, "collection", collection) + if others is not None: + pulumi.set(__self__, "others", others) + + @property + @pulumi.getter(name="cloudStorageResourceReference") + def cloud_storage_resource_reference(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference']: + """ + 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. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_resource_reference") + + @property + @pulumi.getter + def collection(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection']: + """ + A specific set of buckets for this filter to apply to. + Structure is documented below. + """ + return pulumi.get(self, "collection") + + @property + @pulumi.getter + def others(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers']: + """ + Match discovery resources not covered by any other filter. + """ + return pulumi.get(self, "others") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bucketName": + suggest = "bucket_name" + elif key == "projectId": + suggest = "project_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCloudStorageResourceReference.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket_name: Optional[str] = None, + project_id: Optional[str] = None): + """ + :param str bucket_name: The bucket to scan. + :param str project_id: If within a project-level config, then this must match the config's project id. + """ + if bucket_name is not None: + pulumi.set(__self__, "bucket_name", bucket_name) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + + @property + @pulumi.getter(name="bucketName") + def bucket_name(self) -> Optional[str]: + """ + The bucket to scan. + """ + return pulumi.get(self, "bucket_name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[str]: + """ + If within a project-level config, then this must match the config's project id. + """ + return pulumi.get(self, "project_id") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "includeRegexes": + suggest = "include_regexes" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollection.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + include_regexes: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes'] = None): + """ + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesArgs' include_regexes: A collection of regular expressions to match a file store against. + Structure is documented below. + """ + if include_regexes is not None: + pulumi.set(__self__, "include_regexes", include_regexes) + + @property + @pulumi.getter(name="includeRegexes") + def include_regexes(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes']: + """ + A collection of regular expressions to match a file store against. + Structure is documented below. + """ + return pulumi.get(self, "include_regexes") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexes(dict): + def __init__(__self__, *, + patterns: Optional[Sequence['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern']] = None): + """ + :param Sequence['PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternArgs'] patterns: The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + Structure is documented below. + """ + if patterns is not None: + pulumi.set(__self__, "patterns", patterns) + + @property + @pulumi.getter + def patterns(self) -> Optional[Sequence['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern']]: + """ + The group of regular expression patterns to match against one or more file stores. Maximum of 100 entries. The sum of all lengths of regular expressions can't exceed 10 KiB. + Structure is documented below. + """ + return pulumi.get(self, "patterns") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "cloudStorageRegex": + suggest = "cloud_storage_regex" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPattern.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + cloud_storage_regex: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex'] = None): + """ + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegexArgs' cloud_storage_regex: Regex for Cloud Storage. + Structure is documented below. + """ + if cloud_storage_regex is not None: + pulumi.set(__self__, "cloud_storage_regex", cloud_storage_regex) + + @property + @pulumi.getter(name="cloudStorageRegex") + def cloud_storage_regex(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex']: + """ + Regex for Cloud Storage. + Structure is documented below. + """ + return pulumi.get(self, "cloud_storage_regex") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "bucketNameRegex": + suggest = "bucket_name_regex" + elif key == "projectIdRegex": + suggest = "project_id_regex" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetFilterCollectionIncludeRegexesPatternCloudStorageRegex.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + bucket_name_regex: Optional[str] = None, + project_id_regex: Optional[str] = None): + """ + :param str bucket_name_regex: 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 + :param str project_id_regex: For organizations, if unset, will match all projects. + """ + if bucket_name_regex is not None: + pulumi.set(__self__, "bucket_name_regex", bucket_name_regex) + if project_id_regex is not None: + pulumi.set(__self__, "project_id_regex", project_id_regex) + + @property + @pulumi.getter(name="bucketNameRegex") + def bucket_name_regex(self) -> Optional[str]: + """ + 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 + """ + return pulumi.get(self, "bucket_name_regex") + + @property + @pulumi.getter(name="projectIdRegex") + def project_id_regex(self) -> Optional[str]: + """ + For organizations, if unset, will match all projects. + """ + return pulumi.get(self, "project_id_regex") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetFilterOthers(dict): + def __init__(__self__): + pass + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "inspectTemplateModifiedCadence": + suggest = "inspect_template_modified_cadence" + elif key == "refreshFrequency": + suggest = "refresh_frequency" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadence.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + inspect_template_modified_cadence: Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence'] = None, + refresh_frequency: Optional[str] = None): + """ + :param 'PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadenceArgs' inspect_template_modified_cadence: 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. + Structure is documented below. + :param str refresh_frequency: Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + if inspect_template_modified_cadence is not None: + pulumi.set(__self__, "inspect_template_modified_cadence", inspect_template_modified_cadence) + if refresh_frequency is not None: + pulumi.set(__self__, "refresh_frequency", refresh_frequency) + + @property + @pulumi.getter(name="inspectTemplateModifiedCadence") + def inspect_template_modified_cadence(self) -> Optional['outputs.PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence']: + """ + 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. + Structure is documented below. + """ + return pulumi.get(self, "inspect_template_modified_cadence") + + @property + @pulumi.getter(name="refreshFrequency") + def refresh_frequency(self) -> Optional[str]: + """ + Data changes in Cloud Storage can't trigger reprofiling. If you set this field, profiles are refreshed at this frequency regardless of whether the underlying buckets have changes. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + return pulumi.get(self, "refresh_frequency") + + +@pulumi.output_type +class PreventionDiscoveryConfigTargetCloudStorageTargetGenerationCadenceInspectTemplateModifiedCadence(dict): + def __init__(__self__, *, + frequency: Optional[str] = None): + """ + :param str frequency: How frequently data profiles can be updated when the template is modified. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + if frequency is not None: + pulumi.set(__self__, "frequency", frequency) + + @property + @pulumi.getter + def frequency(self) -> Optional[str]: + """ + How frequently data profiles can be updated when the template is modified. Defaults to never. + Possible values are: `UPDATE_FREQUENCY_NEVER`, `UPDATE_FREQUENCY_DAILY`, `UPDATE_FREQUENCY_MONTHLY`. + """ + return pulumi.get(self, "frequency") + + @pulumi.output_type class PreventionDiscoveryConfigTargetSecretsTarget(dict): def __init__(__self__): diff --git a/sdk/python/pulumi_gcp/datastore/data_store_index.py b/sdk/python/pulumi_gcp/datastore/data_store_index.py index d1f5cf820a..074f02c778 100644 --- a/sdk/python/pulumi_gcp/datastore/data_store_index.py +++ b/sdk/python/pulumi_gcp/datastore/data_store_index.py @@ -216,7 +216,9 @@ def __init__(__self__, properties: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DataStoreIndexPropertyArgs', 'DataStoreIndexPropertyArgsDict']]]]] = None, __props__=None): """ - Describes a composite index for Cloud Datastore. + > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. `firestore_index` supports both Firestore in Datastore Mode and Firestore Native indexes and supports both named and the (default) database. + + Describes a composite index for Firestore in Datastore Mode. To get more information about Index, see: @@ -224,11 +226,15 @@ def __init__(__self__, * How-to Guides * [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes) - > **Warning:** This resource creates a Datastore Index on a project that has already - enabled a Datastore-compatible database. If you haven't already enabled - one, you can create a `appengine.Application` resource with - `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"` to do so. Your - Datastore location will be the same as the App Engine location specified. + > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. + Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. + This resource creates a Datastore Index on a project that has already + enabled a Datastore-compatible database. If you haven't already created it, you may + create a `firestore.Database` resource with `location_id` set + to your chosen location, and `type` set to `"DATASTORE_MODE"`. + If you wish to use App Engine, you may instead create a `appengine.Application` resource with + `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"`. + Your Datastore location will be the same as the App Engine location specified. ## Example Usage @@ -305,7 +311,9 @@ def __init__(__self__, args: DataStoreIndexArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Describes a composite index for Cloud Datastore. + > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. `firestore_index` supports both Firestore in Datastore Mode and Firestore Native indexes and supports both named and the (default) database. + + Describes a composite index for Firestore in Datastore Mode. To get more information about Index, see: @@ -313,11 +321,15 @@ def __init__(__self__, * How-to Guides * [Official Documentation](https://cloud.google.com/datastore/docs/concepts/indexes) - > **Warning:** This resource creates a Datastore Index on a project that has already - enabled a Datastore-compatible database. If you haven't already enabled - one, you can create a `appengine.Application` resource with - `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"` to do so. Your - Datastore location will be the same as the App Engine location specified. + > **Warning:** `datastore_index` is deprecated and will be removed in a future major release. + Use `firestore_index` instead; this resource is deprecated because it only supports the (default) database. + This resource creates a Datastore Index on a project that has already + enabled a Datastore-compatible database. If you haven't already created it, you may + create a `firestore.Database` resource with `location_id` set + to your chosen location, and `type` set to `"DATASTORE_MODE"`. + If you wish to use App Engine, you may instead create a `appengine.Application` resource with + `database_type` set to `"CLOUD_DATASTORE_COMPATIBILITY"`. + Your Datastore location will be the same as the App Engine location specified. ## Example Usage diff --git a/sdk/python/pulumi_gcp/datastream/_inputs.py b/sdk/python/pulumi_gcp/datastream/_inputs.py index 8473c2c100..cc18e71418 100644 --- a/sdk/python/pulumi_gcp/datastream/_inputs.py +++ b/sdk/python/pulumi_gcp/datastream/_inputs.py @@ -77,6 +77,10 @@ 'StreamDestinationConfigArgsDict', 'StreamDestinationConfigBigqueryDestinationConfigArgs', 'StreamDestinationConfigBigqueryDestinationConfigArgsDict', + 'StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs', + 'StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgsDict', + 'StreamDestinationConfigBigqueryDestinationConfigMergeArgs', + 'StreamDestinationConfigBigqueryDestinationConfigMergeArgsDict', 'StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs', 'StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgsDict', 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs', @@ -2571,7 +2575,7 @@ class StreamDestinationConfigArgsDict(TypedDict): """ bigquery_destination_config: NotRequired[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgsDict']] """ - A configuration for how data should be loaded to Cloud Storage. + A configuration for how data should be loaded to Google BigQuery. Structure is documented below. """ gcs_destination_config: NotRequired[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgsDict']] @@ -2590,7 +2594,7 @@ def __init__(__self__, *, gcs_destination_config: Optional[pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs']] = None): """ :param pulumi.Input[str] destination_connection_profile: Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs'] bigquery_destination_config: A configuration for how data should be loaded to Cloud Storage. + :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs'] bigquery_destination_config: A configuration for how data should be loaded to Google BigQuery. Structure is documented below. :param pulumi.Input['StreamDestinationConfigGcsDestinationConfigArgs'] gcs_destination_config: A configuration for how data should be loaded to Cloud Storage. Structure is documented below. @@ -2617,7 +2621,7 @@ def destination_connection_profile(self, value: pulumi.Input[str]): @pulumi.getter(name="bigqueryDestinationConfig") def bigquery_destination_config(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigArgs']]: """ - A configuration for how data should be loaded to Cloud Storage. + A configuration for how data should be loaded to Google BigQuery. Structure is documented below. """ return pulumi.get(self, "bigquery_destination_config") @@ -2642,6 +2646,12 @@ def gcs_destination_config(self, value: Optional[pulumi.Input['StreamDestination if not MYPY: class StreamDestinationConfigBigqueryDestinationConfigArgsDict(TypedDict): + append_only: NotRequired[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgsDict']] + """ + AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + events) to a source table will be written to the destination Google BigQuery table, retaining the + historical state of the data. + """ data_freshness: NotRequired[pulumi.Input[str]] """ The guaranteed data freshness (in seconds) when querying tables created by the stream. @@ -2649,6 +2659,12 @@ class StreamDestinationConfigBigqueryDestinationConfigArgsDict(TypedDict): will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. """ + merge: NotRequired[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigMergeArgsDict']] + """ + Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + in the source database. With Merge mode, no historical record of the change events is kept. + """ single_target_dataset: NotRequired[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgsDict']] """ A single target dataset to which all data will be streamed. @@ -2665,26 +2681,52 @@ class StreamDestinationConfigBigqueryDestinationConfigArgsDict(TypedDict): @pulumi.input_type class StreamDestinationConfigBigqueryDestinationConfigArgs: def __init__(__self__, *, + append_only: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs']] = None, data_freshness: Optional[pulumi.Input[str]] = None, + merge: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigMergeArgs']] = None, single_target_dataset: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']] = None, source_hierarchy_datasets: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs']] = None): """ + :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs'] append_only: AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + events) to a source table will be written to the destination Google BigQuery table, retaining the + historical state of the data. :param pulumi.Input[str] data_freshness: The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigMergeArgs'] merge: Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + in the source database. With Merge mode, no historical record of the change events is kept. :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs'] single_target_dataset: A single target dataset to which all data will be streamed. Structure is documented below. :param pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs'] source_hierarchy_datasets: Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. Structure is documented below. """ + if append_only is not None: + pulumi.set(__self__, "append_only", append_only) if data_freshness is not None: pulumi.set(__self__, "data_freshness", data_freshness) + if merge is not None: + pulumi.set(__self__, "merge", merge) if single_target_dataset is not None: pulumi.set(__self__, "single_target_dataset", single_target_dataset) if source_hierarchy_datasets is not None: pulumi.set(__self__, "source_hierarchy_datasets", source_hierarchy_datasets) + @property + @pulumi.getter(name="appendOnly") + def append_only(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs']]: + """ + AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + events) to a source table will be written to the destination Google BigQuery table, retaining the + historical state of the data. + """ + return pulumi.get(self, "append_only") + + @append_only.setter + def append_only(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs']]): + pulumi.set(self, "append_only", value) + @property @pulumi.getter(name="dataFreshness") def data_freshness(self) -> Optional[pulumi.Input[str]]: @@ -2700,6 +2742,20 @@ def data_freshness(self) -> Optional[pulumi.Input[str]]: def data_freshness(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "data_freshness", value) + @property + @pulumi.getter + def merge(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigMergeArgs']]: + """ + Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + in the source database. With Merge mode, no historical record of the change events is kept. + """ + return pulumi.get(self, "merge") + + @merge.setter + def merge(self, value: Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigMergeArgs']]): + pulumi.set(self, "merge", value) + @property @pulumi.getter(name="singleTargetDataset") def single_target_dataset(self) -> Optional[pulumi.Input['StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs']]: @@ -2727,6 +2783,30 @@ def source_hierarchy_datasets(self, value: Optional[pulumi.Input['StreamDestinat pulumi.set(self, "source_hierarchy_datasets", value) +if not MYPY: + class StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgsDict(TypedDict): + pass +elif False: + StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs: + def __init__(__self__): + pass + + +if not MYPY: + class StreamDestinationConfigBigqueryDestinationConfigMergeArgsDict(TypedDict): + pass +elif False: + StreamDestinationConfigBigqueryDestinationConfigMergeArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class StreamDestinationConfigBigqueryDestinationConfigMergeArgs: + def __init__(__self__): + pass + + if not MYPY: class StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgsDict(TypedDict): dataset_id: pulumi.Input[str] diff --git a/sdk/python/pulumi_gcp/datastream/outputs.py b/sdk/python/pulumi_gcp/datastream/outputs.py index a7de4e7bab..26cbce6ae3 100644 --- a/sdk/python/pulumi_gcp/datastream/outputs.py +++ b/sdk/python/pulumi_gcp/datastream/outputs.py @@ -47,6 +47,8 @@ 'StreamBackfillNone', 'StreamDestinationConfig', 'StreamDestinationConfigBigqueryDestinationConfig', + 'StreamDestinationConfigBigqueryDestinationConfigAppendOnly', + 'StreamDestinationConfigBigqueryDestinationConfigMerge', 'StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset', 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets', 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate', @@ -1923,7 +1925,7 @@ def __init__(__self__, *, gcs_destination_config: Optional['outputs.StreamDestinationConfigGcsDestinationConfig'] = None): """ :param str destination_connection_profile: Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name} - :param 'StreamDestinationConfigBigqueryDestinationConfigArgs' bigquery_destination_config: A configuration for how data should be loaded to Cloud Storage. + :param 'StreamDestinationConfigBigqueryDestinationConfigArgs' bigquery_destination_config: A configuration for how data should be loaded to Google BigQuery. Structure is documented below. :param 'StreamDestinationConfigGcsDestinationConfigArgs' gcs_destination_config: A configuration for how data should be loaded to Cloud Storage. Structure is documented below. @@ -1946,7 +1948,7 @@ def destination_connection_profile(self) -> str: @pulumi.getter(name="bigqueryDestinationConfig") def bigquery_destination_config(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfig']: """ - A configuration for how data should be loaded to Cloud Storage. + A configuration for how data should be loaded to Google BigQuery. Structure is documented below. """ return pulumi.get(self, "bigquery_destination_config") @@ -1966,7 +1968,9 @@ class StreamDestinationConfigBigqueryDestinationConfig(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "dataFreshness": + if key == "appendOnly": + suggest = "append_only" + elif key == "dataFreshness": suggest = "data_freshness" elif key == "singleTargetDataset": suggest = "single_target_dataset" @@ -1985,26 +1989,48 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + append_only: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigAppendOnly'] = None, data_freshness: Optional[str] = None, + merge: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigMerge'] = None, single_target_dataset: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset'] = None, source_hierarchy_datasets: Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets'] = None): """ + :param 'StreamDestinationConfigBigqueryDestinationConfigAppendOnlyArgs' append_only: AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + events) to a source table will be written to the destination Google BigQuery table, retaining the + historical state of the data. :param str data_freshness: The guaranteed data freshness (in seconds) when querying tables created by the stream. Editing this field will only affect new tables created in the future, but existing tables will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s. + :param 'StreamDestinationConfigBigqueryDestinationConfigMergeArgs' merge: Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + in the source database. With Merge mode, no historical record of the change events is kept. :param 'StreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetArgs' single_target_dataset: A single target dataset to which all data will be streamed. Structure is documented below. :param 'StreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsArgs' source_hierarchy_datasets: Destination datasets are created so that hierarchy of the destination data objects matches the source hierarchy. Structure is documented below. """ + if append_only is not None: + pulumi.set(__self__, "append_only", append_only) if data_freshness is not None: pulumi.set(__self__, "data_freshness", data_freshness) + if merge is not None: + pulumi.set(__self__, "merge", merge) if single_target_dataset is not None: pulumi.set(__self__, "single_target_dataset", single_target_dataset) if source_hierarchy_datasets is not None: pulumi.set(__self__, "source_hierarchy_datasets", source_hierarchy_datasets) + @property + @pulumi.getter(name="appendOnly") + def append_only(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigAppendOnly']: + """ + AppendOnly mode defines that the stream of changes (INSERT, UPDATE-INSERT, UPDATE-DELETE and DELETE + events) to a source table will be written to the destination Google BigQuery table, retaining the + historical state of the data. + """ + return pulumi.get(self, "append_only") + @property @pulumi.getter(name="dataFreshness") def data_freshness(self) -> Optional[str]: @@ -2016,6 +2042,16 @@ def data_freshness(self) -> Optional[str]: """ return pulumi.get(self, "data_freshness") + @property + @pulumi.getter + def merge(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigMerge']: + """ + Merge mode defines that all changes to a table will be merged at the destination Google BigQuery + table. This is the default write mode. When selected, BigQuery reflects the way the data is stored + in the source database. With Merge mode, no historical record of the change events is kept. + """ + return pulumi.get(self, "merge") + @property @pulumi.getter(name="singleTargetDataset") def single_target_dataset(self) -> Optional['outputs.StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset']: @@ -2035,6 +2071,18 @@ def source_hierarchy_datasets(self) -> Optional['outputs.StreamDestinationConfig return pulumi.get(self, "source_hierarchy_datasets") +@pulumi.output_type +class StreamDestinationConfigBigqueryDestinationConfigAppendOnly(dict): + def __init__(__self__): + pass + + +@pulumi.output_type +class StreamDestinationConfigBigqueryDestinationConfigMerge(dict): + def __init__(__self__): + pass + + @pulumi.output_type class StreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset(dict): @staticmethod diff --git a/sdk/python/pulumi_gcp/datastream/stream.py b/sdk/python/pulumi_gcp/datastream/stream.py index da89221c35..36928118ee 100644 --- a/sdk/python/pulumi_gcp/datastream/stream.py +++ b/sdk/python/pulumi_gcp/datastream/stream.py @@ -1117,6 +1117,91 @@ def __init__(__self__, backfill_none={}, opts = pulumi.ResourceOptions(depends_on=[bigquery_key_user])) ``` + ### Datastream Stream Bigquery Append Only + + ```python + import pulumi + import pulumi_gcp as gcp + import pulumi_random as random + + project = gcp.organizations.get_project() + instance = gcp.sql.DatabaseInstance("instance", + name="my-instance", + database_version="MYSQL_8_0", + region="us-central1", + settings={ + "tier": "db-f1-micro", + "backup_configuration": { + "enabled": True, + "binary_log_enabled": True, + }, + "ip_configuration": { + "authorized_networks": [ + { + "value": "34.71.242.81", + }, + { + "value": "34.72.28.29", + }, + { + "value": "34.67.6.157", + }, + { + "value": "34.67.234.134", + }, + { + "value": "34.72.239.218", + }, + ], + }, + }, + deletion_protection=True) + db = gcp.sql.Database("db", + instance=instance.name, + name="db") + pwd = random.RandomPassword("pwd", + length=16, + special=False) + user = gcp.sql.User("user", + name="user", + instance=instance.name, + host="%", + password=pwd.result) + source_connection_profile = gcp.datastream.ConnectionProfile("source_connection_profile", + display_name="Source connection profile", + location="us-central1", + connection_profile_id="source-profile", + mysql_profile={ + "hostname": instance.public_ip_address, + "username": user.name, + "password": user.password, + }) + destination_connection_profile = gcp.datastream.ConnectionProfile("destination_connection_profile", + display_name="Connection profile", + location="us-central1", + connection_profile_id="destination-profile", + bigquery_profile={}) + default = gcp.datastream.Stream("default", + stream_id="my-stream", + location="us-central1", + display_name="my stream", + source_config={ + "source_connection_profile": source_connection_profile.id, + "mysql_source_config": {}, + }, + destination_config={ + "destination_connection_profile": destination_connection_profile.id, + "bigquery_destination_config": { + "source_hierarchy_datasets": { + "dataset_template": { + "location": "us-central1", + }, + }, + "append_only": {}, + }, + }, + backfill_none={}) + ``` ## Import @@ -1778,6 +1863,91 @@ def __init__(__self__, backfill_none={}, opts = pulumi.ResourceOptions(depends_on=[bigquery_key_user])) ``` + ### Datastream Stream Bigquery Append Only + + ```python + import pulumi + import pulumi_gcp as gcp + import pulumi_random as random + + project = gcp.organizations.get_project() + instance = gcp.sql.DatabaseInstance("instance", + name="my-instance", + database_version="MYSQL_8_0", + region="us-central1", + settings={ + "tier": "db-f1-micro", + "backup_configuration": { + "enabled": True, + "binary_log_enabled": True, + }, + "ip_configuration": { + "authorized_networks": [ + { + "value": "34.71.242.81", + }, + { + "value": "34.72.28.29", + }, + { + "value": "34.67.6.157", + }, + { + "value": "34.67.234.134", + }, + { + "value": "34.72.239.218", + }, + ], + }, + }, + deletion_protection=True) + db = gcp.sql.Database("db", + instance=instance.name, + name="db") + pwd = random.RandomPassword("pwd", + length=16, + special=False) + user = gcp.sql.User("user", + name="user", + instance=instance.name, + host="%", + password=pwd.result) + source_connection_profile = gcp.datastream.ConnectionProfile("source_connection_profile", + display_name="Source connection profile", + location="us-central1", + connection_profile_id="source-profile", + mysql_profile={ + "hostname": instance.public_ip_address, + "username": user.name, + "password": user.password, + }) + destination_connection_profile = gcp.datastream.ConnectionProfile("destination_connection_profile", + display_name="Connection profile", + location="us-central1", + connection_profile_id="destination-profile", + bigquery_profile={}) + default = gcp.datastream.Stream("default", + stream_id="my-stream", + location="us-central1", + display_name="my stream", + source_config={ + "source_connection_profile": source_connection_profile.id, + "mysql_source_config": {}, + }, + destination_config={ + "destination_connection_profile": destination_connection_profile.id, + "bigquery_destination_config": { + "source_hierarchy_datasets": { + "dataset_template": { + "location": "us-central1", + }, + }, + "append_only": {}, + }, + }, + backfill_none={}) + ``` ## Import diff --git a/sdk/python/pulumi_gcp/firebase/database_instance.py b/sdk/python/pulumi_gcp/firebase/database_instance.py index ab644d357f..7d7acedfcb 100644 --- a/sdk/python/pulumi_gcp/firebase/database_instance.py +++ b/sdk/python/pulumi_gcp/firebase/database_instance.py @@ -145,8 +145,8 @@ def __init__(__self__, *, - - - - :param pulumi.Input[str] name: The fully-qualified resource name of the Firebase Realtime Database, in the - format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + :param pulumi.Input[str] name: The fully-qualified resource name of the Firebase Realtime Database, in + the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). :param pulumi.Input[str] project: The ID of the project in which the resource belongs. @@ -223,8 +223,8 @@ def instance_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - The fully-qualified resource name of the Firebase Realtime Database, in the - format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + The fully-qualified resource name of the Firebase Realtime Database, in + the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). """ @@ -564,8 +564,8 @@ def get(resource_name: str, - - - - :param pulumi.Input[str] name: The fully-qualified resource name of the Firebase Realtime Database, in the - format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + :param pulumi.Input[str] name: The fully-qualified resource name of the Firebase Realtime Database, in + the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). :param pulumi.Input[str] project: The ID of the project in which the resource belongs. @@ -627,8 +627,8 @@ def instance_id(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - The fully-qualified resource name of the Firebase Realtime Database, in the - format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID + The fully-qualified resource name of the Firebase Realtime Database, in + the format: projects/PROJECT_NUMBER/locations/REGION_IDENTIFIER/instances/INSTANCE_ID PROJECT_NUMBER: The Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) Learn more about using project identifiers in Google's [AIP 2510 standard](https://google.aip.dev/cloud/2510). """ diff --git a/sdk/python/pulumi_gcp/firebase/hosting_site.py b/sdk/python/pulumi_gcp/firebase/hosting_site.py index c908712569..eaf5ab5ccb 100644 --- a/sdk/python/pulumi_gcp/firebase/hosting_site.py +++ b/sdk/python/pulumi_gcp/firebase/hosting_site.py @@ -93,8 +93,8 @@ def __init__(__self__, *, :param pulumi.Input[str] app_id: Optional. The [ID of a Web App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id) associated with the Hosting site. :param pulumi.Input[str] default_url: The default URL for the site in the form of https://{name}.web.app - :param pulumi.Input[str] name: Output only. The fully-qualified resource name of the Hosting site, in the - format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + :param pulumi.Input[str] name: Output only. The fully-qualified resource name of the Hosting site, in + the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -146,8 +146,8 @@ def default_url(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def name(self) -> Optional[pulumi.Input[str]]: """ - Output only. The fully-qualified resource name of the Hosting site, in the - format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + Output only. The fully-qualified resource name of the Hosting site, in + the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -386,8 +386,8 @@ def get(resource_name: str, :param pulumi.Input[str] app_id: Optional. The [ID of a Web App](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects.webApps#WebApp.FIELDS.app_id) associated with the Hosting site. :param pulumi.Input[str] default_url: The default URL for the site in the form of https://{name}.web.app - :param pulumi.Input[str] name: Output only. The fully-qualified resource name of the Hosting site, in the - format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + :param pulumi.Input[str] name: Output only. The fully-qualified resource name of the Hosting site, in + the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). @@ -431,8 +431,8 @@ def default_url(self) -> pulumi.Output[str]: @pulumi.getter def name(self) -> pulumi.Output[str]: """ - Output only. The fully-qualified resource name of the Hosting site, in the - format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the + Output only. The fully-qualified resource name of the Hosting site, in + the format: projects/PROJECT_IDENTIFIER/sites/SITE_ID PROJECT_IDENTIFIER: the Firebase project's [`ProjectNumber`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_number) ***(recommended)*** or its [`ProjectId`](https://firebase.google.com/docs/reference/firebase-management/rest/v1beta1/projects#FirebaseProject.FIELDS.project_id). diff --git a/sdk/python/pulumi_gcp/firestore/index.py b/sdk/python/pulumi_gcp/firestore/index.py index 7b26af28d0..7b1ce84175 100644 --- a/sdk/python/pulumi_gcp/firestore/index.py +++ b/sdk/python/pulumi_gcp/firestore/index.py @@ -276,8 +276,9 @@ def __init__(__self__, __props__=None): """ Cloud Firestore indexes enable simple and complex queries against documents in a database. - This resource manages composite indexes and not single - field indexes. + Both Firestore Native and Datastore Mode indexes are supported. + This resource manages composite indexes and not single field indexes. + To manage single field indexes, use the `firestore.Field` resource instead. To get more information about Index, see: @@ -289,9 +290,8 @@ def __init__(__self__, a Firestore database. If you haven't already created it, you may create a `firestore.Database` resource and `location_id` set to your chosen location. If you wish to use App Engine, you may - instead create a `appengine.Application` resource with - `database_type` set to `"CLOUD_FIRESTORE"`. Your Firestore location - will be the same as the App Engine location specified. + instead create a `appengine.Application` resource. + Your Firestore location will be the same as the App Engine location specified. ## Example Usage @@ -424,8 +424,9 @@ def __init__(__self__, opts: Optional[pulumi.ResourceOptions] = None): """ Cloud Firestore indexes enable simple and complex queries against documents in a database. - This resource manages composite indexes and not single - field indexes. + Both Firestore Native and Datastore Mode indexes are supported. + This resource manages composite indexes and not single field indexes. + To manage single field indexes, use the `firestore.Field` resource instead. To get more information about Index, see: @@ -437,9 +438,8 @@ def __init__(__self__, a Firestore database. If you haven't already created it, you may create a `firestore.Database` resource and `location_id` set to your chosen location. If you wish to use App Engine, you may - instead create a `appengine.Application` resource with - `database_type` set to `"CLOUD_FIRESTORE"`. Your Firestore location - will be the same as the App Engine location specified. + instead create a `appengine.Application` resource. + Your Firestore location will be the same as the App Engine location specified. ## Example Usage diff --git a/sdk/python/pulumi_gcp/gkeonprem/_inputs.py b/sdk/python/pulumi_gcp/gkeonprem/_inputs.py index 9c9f45589e..8c0ebb0513 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/_inputs.py +++ b/sdk/python/pulumi_gcp/gkeonprem/_inputs.py @@ -458,9 +458,9 @@ class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigA version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgsDict']]]] """ @@ -494,9 +494,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[Sequence[pulumi.Input['BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs']]] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param pulumi.Input[str] operating_system: Specifies the nodes operating system (default: LINUX). @@ -523,9 +523,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -583,9 +583,9 @@ class BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigN version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_ip: NotRequired[pulumi.Input[str]] """ @@ -608,9 +608,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[str] node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -630,9 +630,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -1142,14 +1142,14 @@ class BareMetalAdminClusterProxyArgsDict(TypedDict): uri: pulumi.Input[str] """ Specifies the address of your proxy server. - Examples: http://domain + For Example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. """ no_proxies: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. """ elif False: BareMetalAdminClusterProxyArgsDict: TypeAlias = Mapping[str, Any] @@ -1161,11 +1161,11 @@ def __init__(__self__, *, no_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[str] uri: Specifies the address of your proxy server. - Examples: http://domain + For Example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. :param pulumi.Input[Sequence[pulumi.Input[str]]] no_proxies: A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. """ pulumi.set(__self__, "uri", uri) if no_proxies is not None: @@ -1176,9 +1176,9 @@ def __init__(__self__, *, def uri(self) -> pulumi.Input[str]: """ Specifies the address of your proxy server. - Examples: http://domain + For Example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. """ return pulumi.get(self, "uri") @@ -1191,7 +1191,7 @@ def uri(self, value: pulumi.Input[str]): def no_proxies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. """ return pulumi.get(self, "no_proxies") @@ -2196,9 +2196,9 @@ class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigArgsDi version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgsDict']]]] """ @@ -2232,9 +2232,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[Sequence[pulumi.Input['BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs']]] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param pulumi.Input[str] operating_system: Specifies the nodes operating system (default: LINUX). @@ -2261,9 +2261,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -2321,9 +2321,9 @@ class BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeCo version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_ip: NotRequired[pulumi.Input[str]] """ @@ -2346,9 +2346,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[str] node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -2368,9 +2368,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -2987,9 +2987,9 @@ class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolC version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgsDict']]]] """ @@ -3026,9 +3026,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[Sequence[pulumi.Input['BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs']]] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param pulumi.Input[str] operating_system: Specifies the nodes operating system (default: LINUX). @@ -3070,9 +3070,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -3241,9 +3241,9 @@ class BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolC version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_ip: NotRequired[pulumi.Input[str]] """ @@ -3266,9 +3266,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[str] node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -3288,9 +3288,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -3620,9 +3620,9 @@ class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoo version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgsDict']]]] """ @@ -3656,9 +3656,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[Sequence[pulumi.Input['BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs']]] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param pulumi.Input[str] operating_system: Specifies the nodes operating system (default: LINUX). @@ -3685,9 +3685,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -3745,9 +3745,9 @@ class BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoo version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_ip: NotRequired[pulumi.Input[str]] """ @@ -3770,9 +3770,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[str] node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -3792,9 +3792,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -4374,14 +4374,14 @@ class BareMetalClusterProxyArgsDict(TypedDict): uri: pulumi.Input[str] """ Specifies the address of your proxy server. - Examples: http://domain + For example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. """ no_proxies: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] """ A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example ["127.0.0.1", "example.com", ".corp", "localhost"]. """ elif False: BareMetalClusterProxyArgsDict: TypeAlias = Mapping[str, Any] @@ -4393,11 +4393,11 @@ def __init__(__self__, *, no_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[str] uri: Specifies the address of your proxy server. - Examples: http://domain + For example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. :param pulumi.Input[Sequence[pulumi.Input[str]]] no_proxies: A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example ["127.0.0.1", "example.com", ".corp", "localhost"]. """ pulumi.set(__self__, "uri", uri) if no_proxies is not None: @@ -4408,9 +4408,9 @@ def __init__(__self__, *, def uri(self) -> pulumi.Input[str]: """ Specifies the address of your proxy server. - Examples: http://domain + For example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. """ return pulumi.get(self, "uri") @@ -4423,7 +4423,7 @@ def uri(self, value: pulumi.Input[str]): def no_proxies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example ["127.0.0.1", "example.com", ".corp", "localhost"]. """ return pulumi.get(self, "no_proxies") @@ -5257,9 +5257,9 @@ class BareMetalNodePoolNodePoolConfigArgsDict(TypedDict): version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ operating_system: NotRequired[pulumi.Input[str]] """ @@ -5290,9 +5290,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[str] operating_system: Specifies the nodes operating system (default: LINUX). :param pulumi.Input[Sequence[pulumi.Input['BareMetalNodePoolNodePoolConfigTaintArgs']]] taints: The initial taints assigned to nodes of this node pool. Structure is documented below. @@ -5329,9 +5329,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -5376,9 +5376,9 @@ class BareMetalNodePoolNodePoolConfigNodeConfigArgsDict(TypedDict): version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ node_ip: NotRequired[pulumi.Input[str]] """ @@ -5401,9 +5401,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param pulumi.Input[str] node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -5423,9 +5423,9 @@ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") diff --git a/sdk/python/pulumi_gcp/gkeonprem/outputs.py b/sdk/python/pulumi_gcp/gkeonprem/outputs.py index 0e3c8416a3..0d7422187b 100644 --- a/sdk/python/pulumi_gcp/gkeonprem/outputs.py +++ b/sdk/python/pulumi_gcp/gkeonprem/outputs.py @@ -336,9 +336,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param Sequence['BareMetalAdminClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs'] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param str operating_system: Specifies the nodes operating system (default: LINUX). @@ -365,9 +365,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -428,9 +428,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param str node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -450,9 +450,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -919,11 +919,11 @@ def __init__(__self__, *, no_proxies: Optional[Sequence[str]] = None): """ :param str uri: Specifies the address of your proxy server. - Examples: http://domain + For Example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. :param Sequence[str] no_proxies: A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. """ pulumi.set(__self__, "uri", uri) if no_proxies is not None: @@ -934,9 +934,9 @@ def __init__(__self__, *, def uri(self) -> str: """ Specifies the address of your proxy server. - Examples: http://domain + For Example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. """ return pulumi.get(self, "uri") @@ -945,7 +945,7 @@ def uri(self) -> str: def no_proxies(self) -> Optional[Sequence[str]]: """ A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example: ["127.0.0.1", "example.com", ".corp", "localhost"]. """ return pulumi.get(self, "no_proxies") @@ -1767,9 +1767,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param Sequence['BareMetalClusterControlPlaneControlPlaneNodePoolConfigNodePoolConfigNodeConfigArgs'] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param str operating_system: Specifies the nodes operating system (default: LINUX). @@ -1796,9 +1796,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -1859,9 +1859,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param str node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -1881,9 +1881,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -2385,9 +2385,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param Sequence['BareMetalClusterLoadBalancerBgpLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs'] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param str operating_system: Specifies the nodes operating system (default: LINUX). @@ -2425,9 +2425,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -2578,9 +2578,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param str node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -2600,9 +2600,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -2882,9 +2882,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param Sequence['BareMetalClusterLoadBalancerMetalLbConfigLoadBalancerNodePoolConfigNodePoolConfigNodeConfigArgs'] node_configs: The list of machine addresses in the Bare Metal Node Pool. Structure is documented below. :param str operating_system: Specifies the nodes operating system (default: LINUX). @@ -2911,9 +2911,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -2974,9 +2974,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param str node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -2996,9 +2996,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -3514,11 +3514,11 @@ def __init__(__self__, *, no_proxies: Optional[Sequence[str]] = None): """ :param str uri: Specifies the address of your proxy server. - Examples: http://domain + For example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. :param Sequence[str] no_proxies: A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example ["127.0.0.1", "example.com", ".corp", "localhost"]. """ pulumi.set(__self__, "uri", uri) if no_proxies is not None: @@ -3529,9 +3529,9 @@ def __init__(__self__, *, def uri(self) -> str: """ Specifies the address of your proxy server. - Examples: http://domain + For example: http://domain WARNING: Do not provide credentials in the format - http://(username:password@)domain these will be rejected by the server. + of http://(username:password@)domain these will be rejected by the server. """ return pulumi.get(self, "uri") @@ -3540,7 +3540,7 @@ def uri(self) -> str: def no_proxies(self) -> Optional[Sequence[str]]: """ A list of IPs, hostnames, and domains that should skip the proxy. - Examples: ["127.0.0.1", "example.com", ".corp", "localhost"]. + For example ["127.0.0.1", "example.com", ".corp", "localhost"]. """ return pulumi.get(self, "no_proxies") @@ -4190,9 +4190,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param str operating_system: Specifies the nodes operating system (default: LINUX). :param Sequence['BareMetalNodePoolNodePoolConfigTaintArgs'] taints: The initial taints assigned to nodes of this node pool. Structure is documented below. @@ -4225,9 +4225,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") @@ -4279,9 +4279,9 @@ def __init__(__self__, *, version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. :param str node_ip: The default IPv4 address for SSH access and Kubernetes node. Example: 192.168.0.1 """ @@ -4301,9 +4301,9 @@ def labels(self) -> Optional[Mapping[str, str]]: version -- it's best to assume the behavior is undefined and conflicts should be avoided. For more information, including usage and the valid values, see: - http://kubernetes.io/v1.1/docs/user-guide/labels.html + - http://kubernetes.io/v1.1/docs/user-guide/labels.html An object containing a list of "key": value pairs. - Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. + For example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. """ return pulumi.get(self, "labels") diff --git a/sdk/python/pulumi_gcp/iap/client.py b/sdk/python/pulumi_gcp/iap/client.py index 2ff8edd1a7..079a9e27f1 100644 --- a/sdk/python/pulumi_gcp/iap/client.py +++ b/sdk/python/pulumi_gcp/iap/client.py @@ -79,7 +79,7 @@ def __init__(__self__, *, - - - - :param pulumi.Input[str] client_id: The OAuth2 ID of the client. + :param pulumi.Input[str] client_id: Output only. Unique identifier of the OAuth client. :param pulumi.Input[str] display_name: Human-friendly name given to the OAuth client. :param pulumi.Input[str] secret: Output only. Client secret of the OAuth client. **Note**: This property is sensitive and will not be displayed in the plan. @@ -114,7 +114,7 @@ def brand(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="clientId") def client_id(self) -> Optional[pulumi.Input[str]]: """ - The OAuth2 ID of the client. + Output only. Unique identifier of the OAuth client. """ return pulumi.get(self, "client_id") @@ -345,7 +345,7 @@ def get(resource_name: str, - - - - :param pulumi.Input[str] client_id: The OAuth2 ID of the client. + :param pulumi.Input[str] client_id: Output only. Unique identifier of the OAuth client. :param pulumi.Input[str] display_name: Human-friendly name given to the OAuth client. :param pulumi.Input[str] secret: Output only. Client secret of the OAuth client. **Note**: This property is sensitive and will not be displayed in the plan. @@ -377,7 +377,7 @@ def brand(self) -> pulumi.Output[str]: @pulumi.getter(name="clientId") def client_id(self) -> pulumi.Output[str]: """ - The OAuth2 ID of the client. + Output only. Unique identifier of the OAuth client. """ return pulumi.get(self, "client_id") diff --git a/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py b/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py index 132fd36c30..a9d76ef2c8 100644 --- a/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py +++ b/sdk/python/pulumi_gcp/integrationconnectors/_inputs.py @@ -453,8 +453,8 @@ class ConnectionAuthConfigAdditionalVariableEncryptionKeyValueArgsDict(TypedDict """ kms_key_name: NotRequired[pulumi.Input[str]] """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ elif False: @@ -468,8 +468,8 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. - :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ pulumi.set(__self__, "type", type) @@ -493,8 +493,8 @@ def type(self, value: pulumi.Input[str]): @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[pulumi.Input[str]]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -1341,8 +1341,8 @@ class ConnectionConfigVariableEncryptionKeyValueArgsDict(TypedDict): """ kms_key_name: NotRequired[pulumi.Input[str]] """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ elif False: @@ -1356,8 +1356,8 @@ def __init__(__self__, *, """ :param pulumi.Input[str] type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. - :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ pulumi.set(__self__, "type", type) @@ -1381,8 +1381,8 @@ def type(self, value: pulumi.Input[str]): @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[pulumi.Input[str]]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -1825,8 +1825,8 @@ def string_value(self, value: Optional[pulumi.Input[str]]): class ConnectionEventingConfigAdditionalVariableEncryptionKeyValueArgsDict(TypedDict): kms_key_name: NotRequired[pulumi.Input[str]] """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ type: NotRequired[pulumi.Input[str]] @@ -1843,8 +1843,8 @@ def __init__(__self__, *, kms_key_name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. :param pulumi.Input[str] type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. @@ -1858,8 +1858,8 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[pulumi.Input[str]]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -2153,8 +2153,8 @@ def string_value(self, value: Optional[pulumi.Input[str]]): class ConnectionEventingConfigAuthConfigAdditionalVariableEncryptionKeyValueArgsDict(TypedDict): kms_key_name: NotRequired[pulumi.Input[str]] """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ type: NotRequired[pulumi.Input[str]] @@ -2171,8 +2171,8 @@ def __init__(__self__, *, kms_key_name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. :param pulumi.Input[str] type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. @@ -2186,8 +2186,8 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[pulumi.Input[str]]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -3083,8 +3083,8 @@ def string_value(self, value: Optional[pulumi.Input[str]]): class ConnectionSslConfigAdditionalVariableEncryptionKeyValueArgsDict(TypedDict): kms_key_name: NotRequired[pulumi.Input[str]] """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ type: NotRequired[pulumi.Input[str]] @@ -3101,8 +3101,8 @@ def __init__(__self__, *, kms_key_name: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param pulumi.Input[str] kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. :param pulumi.Input[str] type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. @@ -3116,8 +3116,8 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[pulumi.Input[str]]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") diff --git a/sdk/python/pulumi_gcp/integrationconnectors/outputs.py b/sdk/python/pulumi_gcp/integrationconnectors/outputs.py index 1efea8da3f..cc2d92558a 100644 --- a/sdk/python/pulumi_gcp/integrationconnectors/outputs.py +++ b/sdk/python/pulumi_gcp/integrationconnectors/outputs.py @@ -345,8 +345,8 @@ def __init__(__self__, *, """ :param str type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. - :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ pulumi.set(__self__, "type", type) @@ -366,8 +366,8 @@ def type(self) -> str: @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[str]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -1117,8 +1117,8 @@ def __init__(__self__, *, """ :param str type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. - :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ pulumi.set(__self__, "type", type) @@ -1138,8 +1138,8 @@ def type(self) -> str: @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[str]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -1523,8 +1523,8 @@ def __init__(__self__, *, kms_key_name: Optional[str] = None, type: Optional[str] = None): """ - :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. :param str type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. @@ -1538,8 +1538,8 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[str]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -1801,8 +1801,8 @@ def __init__(__self__, *, kms_key_name: Optional[str] = None, type: Optional[str] = None): """ - :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. :param str type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. @@ -1816,8 +1816,8 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[str]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") @@ -2520,8 +2520,8 @@ def __init__(__self__, *, kms_key_name: Optional[str] = None, type: Optional[str] = None): """ - :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + :param str kms_key_name: The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. :param str type: Type of Encryption Key Possible values are: `GOOGLE_MANAGED`, `CUSTOMER_MANAGED`. @@ -2535,8 +2535,8 @@ def __init__(__self__, *, @pulumi.getter(name="kmsKeyName") def kms_key_name(self) -> Optional[str]: """ - The [KMS key name] with which the content of the Operation is encrypted. The expected - format: projects/*/locations/*/keyRings/*/cryptoKeys/*. + The [KMS key name] with which the content of the Operation is encrypted. The + expected format: projects/*/locations/*/keyRings/*/cryptoKeys/*. Will be empty string if google managed. """ return pulumi.get(self, "kms_key_name") diff --git a/sdk/python/pulumi_gcp/netapp/volume.py b/sdk/python/pulumi_gcp/netapp/volume.py index e151fdbac9..95327b1e33 100644 --- a/sdk/python/pulumi_gcp/netapp/volume.py +++ b/sdk/python/pulumi_gcp/netapp/volume.py @@ -1714,7 +1714,7 @@ def share_name(self) -> pulumi.Output[str]: @property @pulumi.getter(name="smbSettings") - def smb_settings(self) -> pulumi.Output[Optional[Sequence[str]]]: + def smb_settings(self) -> pulumi.Output[Sequence[str]]: """ Settings for volumes with SMB access. Each value may be one of: `ENCRYPT_DATA`, `BROWSABLE`, `CHANGE_NOTIFY`, `NON_BROWSABLE`, `OPLOCKS`, `SHOW_SNAPSHOT`, `SHOW_PREVIOUS_VERSIONS`, `ACCESS_BASED_ENUMERATION`, `CONTINUOUSLY_AVAILABLE`. diff --git a/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py b/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py index 0e51ce3f6b..e5b686c1a4 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/_inputs.py @@ -782,6 +782,7 @@ class SpokeLinkedRouterApplianceInstancesArgsDict(TypedDict): instances: pulumi.Input[Sequence[pulumi.Input['SpokeLinkedRouterApplianceInstancesInstanceArgsDict']]] """ The list of router appliance instances + Structure is documented below. """ site_to_site_data_transfer: pulumi.Input[bool] """ @@ -797,6 +798,7 @@ def __init__(__self__, *, site_to_site_data_transfer: pulumi.Input[bool]): """ :param pulumi.Input[Sequence[pulumi.Input['SpokeLinkedRouterApplianceInstancesInstanceArgs']]] instances: The list of router appliance instances + Structure is documented below. :param pulumi.Input[bool] site_to_site_data_transfer: A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations. """ pulumi.set(__self__, "instances", instances) @@ -807,6 +809,7 @@ def __init__(__self__, *, def instances(self) -> pulumi.Input[Sequence[pulumi.Input['SpokeLinkedRouterApplianceInstancesInstanceArgs']]]: """ The list of router appliance instances + Structure is documented below. """ return pulumi.get(self, "instances") @@ -836,8 +839,6 @@ class SpokeLinkedRouterApplianceInstancesInstanceArgsDict(TypedDict): virtual_machine: NotRequired[pulumi.Input[str]] """ The URI of the virtual machine resource - - - - - """ elif False: SpokeLinkedRouterApplianceInstancesInstanceArgsDict: TypeAlias = Mapping[str, Any] @@ -850,8 +851,6 @@ def __init__(__self__, *, """ :param pulumi.Input[str] ip_address: The IP address on the VM to use for peering. :param pulumi.Input[str] virtual_machine: The URI of the virtual machine resource - - - - - """ if ip_address is not None: pulumi.set(__self__, "ip_address", ip_address) @@ -875,8 +874,6 @@ def ip_address(self, value: Optional[pulumi.Input[str]]): def virtual_machine(self) -> Optional[pulumi.Input[str]]: """ The URI of the virtual machine resource - - - - - """ return pulumi.get(self, "virtual_machine") diff --git a/sdk/python/pulumi_gcp/networkconnectivity/hub.py b/sdk/python/pulumi_gcp/networkconnectivity/hub.py index 01214e1ecf..1e90dce57f 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/hub.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/hub.py @@ -29,15 +29,14 @@ def __init__(__self__, *, The set of arguments for constructing a Hub resource. :param pulumi.Input[str] description: An optional description of the hub. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` - - - - - :param pulumi.Input[str] project: The project for the resource + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ if description is not None: pulumi.set(__self__, "description", description) @@ -65,7 +64,6 @@ def description(self, value: Optional[pulumi.Input[str]]): def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. """ @@ -82,7 +80,6 @@ def name(self) -> Optional[pulumi.Input[str]]: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` - - - - """ return pulumi.get(self, "name") @@ -95,7 +92,8 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: """ - The project for the resource + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ return pulumi.get(self, "project") @@ -109,11 +107,11 @@ class _HubState: def __init__(__self__, *, create_time: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, - effective_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, - pulumi_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, routing_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input['HubRoutingVpcArgs']]]] = None, state: Optional[pulumi.Input[str]] = None, unique_id: Optional[pulumi.Input[str]] = None, @@ -122,20 +120,21 @@ def __init__(__self__, *, Input properties used for looking up and filtering Hub resources. :param pulumi.Input[str] create_time: Output only. The time the hub was created. :param pulumi.Input[str] description: An optional description of the hub. - :param pulumi.Input[Mapping[str, Any]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` - - - - - :param pulumi.Input[str] project: The project for the resource - :param pulumi.Input[Mapping[str, Any]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. :param pulumi.Input[Sequence[pulumi.Input['HubRoutingVpcArgs']]] routing_vpcs: The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. - :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + Structure is documented below. + :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub. :param pulumi.Input[str] unique_id: Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id. :param pulumi.Input[str] update_time: Output only. The time the hub was last updated. """ @@ -188,14 +187,14 @@ def description(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="effectiveLabels") - def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. """ return pulumi.get(self, "effective_labels") @effective_labels.setter - def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): + def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "effective_labels", value) @property @@ -203,7 +202,6 @@ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. """ @@ -220,7 +218,6 @@ def name(self) -> Optional[pulumi.Input[str]]: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` - - - - """ return pulumi.get(self, "name") @@ -233,7 +230,8 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: """ - The project for the resource + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ return pulumi.get(self, "project") @@ -243,14 +241,15 @@ def project(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="pulumiLabels") - def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - The combination of labels configured directly on the resource and default labels configured on the provider. + The combination of labels configured directly on the resource + and default labels configured on the provider. """ return pulumi.get(self, "pulumi_labels") @pulumi_labels.setter - def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): + def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "pulumi_labels", value) @property @@ -258,6 +257,7 @@ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): def routing_vpcs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['HubRoutingVpcArgs']]]]: """ The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + Structure is documented below. """ return pulumi.get(self, "routing_vpcs") @@ -269,7 +269,7 @@ def routing_vpcs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['HubRo @pulumi.getter def state(self) -> Optional[pulumi.Input[str]]: """ - Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + Output only. The current lifecycle state of this hub. """ return pulumi.get(self, "state") @@ -315,18 +315,23 @@ def __init__(__self__, """ The NetworkConnectivity Hub resource + To get more information about Hub, see: + + * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs) + * How-to Guides + * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + ## Example Usage - ### Basic_hub - A basic test of a networkconnectivity hub + ### Network Connectivity Hub Basic + ```python import pulumi import pulumi_gcp as gcp primary = gcp.networkconnectivity.Hub("primary", - name="hub", + name="basic", description="A sample hub", - project="my-project-name", labels={ "label-one": "value-one", }) @@ -360,15 +365,14 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: An optional description of the hub. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` - - - - - :param pulumi.Input[str] project: The project for the resource + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ ... @overload @@ -379,18 +383,23 @@ def __init__(__self__, """ The NetworkConnectivity Hub resource + To get more information about Hub, see: + + * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.global.hubs) + * How-to Guides + * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + ## Example Usage - ### Basic_hub - A basic test of a networkconnectivity hub + ### Network Connectivity Hub Basic + ```python import pulumi import pulumi_gcp as gcp primary = gcp.networkconnectivity.Hub("primary", - name="hub", + name="basic", description="A sample hub", - project="my-project-name", labels={ "label-one": "value-one", }) @@ -473,11 +482,11 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, create_time: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, - effective_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, - pulumi_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, routing_vpcs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['HubRoutingVpcArgs', 'HubRoutingVpcArgsDict']]]]] = None, state: Optional[pulumi.Input[str]] = None, unique_id: Optional[pulumi.Input[str]] = None, @@ -491,20 +500,21 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] create_time: Output only. The time the hub was created. :param pulumi.Input[str] description: An optional description of the hub. - :param pulumi.Input[Mapping[str, Any]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. :param pulumi.Input[str] name: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` - - - - - :param pulumi.Input[str] project: The project for the resource - :param pulumi.Input[Mapping[str, Any]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. :param pulumi.Input[Sequence[pulumi.Input[Union['HubRoutingVpcArgs', 'HubRoutingVpcArgsDict']]]] routing_vpcs: The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. - :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + Structure is documented below. + :param pulumi.Input[str] state: Output only. The current lifecycle state of this hub. :param pulumi.Input[str] unique_id: Output only. The Google-generated UUID for the hub. This value is unique across all hub resources. If a hub is deleted and another with the same name is created, the new hub is assigned a different unique_id. :param pulumi.Input[str] update_time: Output only. The time the hub was last updated. """ @@ -543,7 +553,7 @@ def description(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="effectiveLabels") - def effective_labels(self) -> pulumi.Output[Mapping[str, Any]]: + def effective_labels(self) -> pulumi.Output[Mapping[str, str]]: """ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. """ @@ -554,7 +564,6 @@ def effective_labels(self) -> pulumi.Output[Mapping[str, Any]]: def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). - **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effective_labels` for all of the labels present on the resource. """ @@ -567,7 +576,6 @@ def name(self) -> pulumi.Output[str]: Immutable. The name of the hub. Hub names must be unique. They use the following form: `projects/{project_number}/locations/global/hubs/{hub_id}` - - - - """ return pulumi.get(self, "name") @@ -576,15 +584,17 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter def project(self) -> pulumi.Output[str]: """ - The project for the resource + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ return pulumi.get(self, "project") @property @pulumi.getter(name="pulumiLabels") - def pulumi_labels(self) -> pulumi.Output[Mapping[str, Any]]: + def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]: """ - The combination of labels configured directly on the resource and default labels configured on the provider. + The combination of labels configured directly on the resource + and default labels configured on the provider. """ return pulumi.get(self, "pulumi_labels") @@ -593,6 +603,7 @@ def pulumi_labels(self) -> pulumi.Output[Mapping[str, Any]]: def routing_vpcs(self) -> pulumi.Output[Sequence['outputs.HubRoutingVpc']]: """ The VPC network associated with this hub's spokes. All of the VPN tunnels, VLAN attachments, and router appliance instances referenced by this hub's spokes must belong to this VPC network. This field is read-only. Network Connectivity Center automatically populates it based on the set of spokes attached to the hub. + Structure is documented below. """ return pulumi.get(self, "routing_vpcs") @@ -600,7 +611,7 @@ def routing_vpcs(self) -> pulumi.Output[Sequence['outputs.HubRoutingVpc']]: @pulumi.getter def state(self) -> pulumi.Output[str]: """ - Output only. The current lifecycle state of this hub. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + Output only. The current lifecycle state of this hub. """ return pulumi.get(self, "state") diff --git a/sdk/python/pulumi_gcp/networkconnectivity/outputs.py b/sdk/python/pulumi_gcp/networkconnectivity/outputs.py index 9e248d75d7..f358a2dec0 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/outputs.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/outputs.py @@ -578,6 +578,7 @@ def __init__(__self__, *, site_to_site_data_transfer: bool): """ :param Sequence['SpokeLinkedRouterApplianceInstancesInstanceArgs'] instances: The list of router appliance instances + Structure is documented below. :param bool site_to_site_data_transfer: A value that controls whether site-to-site data transfer is enabled for these resources. Note that data transfer is available only in supported locations. """ pulumi.set(__self__, "instances", instances) @@ -588,6 +589,7 @@ def __init__(__self__, *, def instances(self) -> Sequence['outputs.SpokeLinkedRouterApplianceInstancesInstance']: """ The list of router appliance instances + Structure is documented below. """ return pulumi.get(self, "instances") @@ -627,8 +629,6 @@ def __init__(__self__, *, """ :param str ip_address: The IP address on the VM to use for peering. :param str virtual_machine: The URI of the virtual machine resource - - - - - """ if ip_address is not None: pulumi.set(__self__, "ip_address", ip_address) @@ -648,8 +648,6 @@ def ip_address(self) -> Optional[str]: def virtual_machine(self) -> Optional[str]: """ The URI of the virtual machine resource - - - - - """ return pulumi.get(self, "virtual_machine") diff --git a/sdk/python/pulumi_gcp/networkconnectivity/spoke.py b/sdk/python/pulumi_gcp/networkconnectivity/spoke.py index b78b788a83..10e0980597 100644 --- a/sdk/python/pulumi_gcp/networkconnectivity/spoke.py +++ b/sdk/python/pulumi_gcp/networkconnectivity/spoke.py @@ -35,19 +35,24 @@ def __init__(__self__, *, The set of arguments for constructing a Spoke resource. :param pulumi.Input[str] hub: Immutable. The URI of the hub that this spoke is attached to. :param pulumi.Input[str] location: The location for the resource + + + - - - :param pulumi.Input[str] description: An optional description of the spoke. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for - labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - `effective_labels` for all of the labels present on the resource. - :param pulumi.Input['SpokeLinkedInterconnectAttachmentsArgs'] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - advertising the same prefixes. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input['SpokeLinkedInterconnectAttachmentsArgs'] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + Structure is documented below. :param pulumi.Input['SpokeLinkedRouterApplianceInstancesArgs'] linked_router_appliance_instances: The URIs of linked Router appliance resources + Structure is documented below. :param pulumi.Input['SpokeLinkedVpcNetworkArgs'] linked_vpc_network: VPC network that is associated with the spoke. + Structure is documented below. :param pulumi.Input['SpokeLinkedVpnTunnelsArgs'] linked_vpn_tunnels: The URIs of linked VPN tunnel resources + Structure is documented below. :param pulumi.Input[str] name: Immutable. The name of the spoke. Spoke names must be unique. - :param pulumi.Input[str] project: The project for the resource + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ pulumi.set(__self__, "hub", hub) pulumi.set(__self__, "location", location) @@ -85,6 +90,9 @@ def hub(self, value: pulumi.Input[str]): def location(self) -> pulumi.Input[str]: """ The location for the resource + + + - - - """ return pulumi.get(self, "location") @@ -108,10 +116,9 @@ def description(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - Optional labels in key:value format. For more information about labels, see [Requirements for - labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - `effective_labels` for all of the labels present on the resource. + Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. """ return pulumi.get(self, "labels") @@ -123,9 +130,8 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]) @pulumi.getter(name="linkedInterconnectAttachments") def linked_interconnect_attachments(self) -> Optional[pulumi.Input['SpokeLinkedInterconnectAttachmentsArgs']]: """ - A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - advertising the same prefixes. + A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + Structure is documented below. """ return pulumi.get(self, "linked_interconnect_attachments") @@ -138,6 +144,7 @@ def linked_interconnect_attachments(self, value: Optional[pulumi.Input['SpokeLin def linked_router_appliance_instances(self) -> Optional[pulumi.Input['SpokeLinkedRouterApplianceInstancesArgs']]: """ The URIs of linked Router appliance resources + Structure is documented below. """ return pulumi.get(self, "linked_router_appliance_instances") @@ -150,6 +157,7 @@ def linked_router_appliance_instances(self, value: Optional[pulumi.Input['SpokeL def linked_vpc_network(self) -> Optional[pulumi.Input['SpokeLinkedVpcNetworkArgs']]: """ VPC network that is associated with the spoke. + Structure is documented below. """ return pulumi.get(self, "linked_vpc_network") @@ -162,6 +170,7 @@ def linked_vpc_network(self, value: Optional[pulumi.Input['SpokeLinkedVpcNetwork def linked_vpn_tunnels(self) -> Optional[pulumi.Input['SpokeLinkedVpnTunnelsArgs']]: """ The URIs of linked VPN tunnel resources + Structure is documented below. """ return pulumi.get(self, "linked_vpn_tunnels") @@ -185,7 +194,8 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: """ - The project for the resource + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ return pulumi.get(self, "project") @@ -199,7 +209,7 @@ class _SpokeState: def __init__(__self__, *, create_time: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, - effective_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, hub: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, linked_interconnect_attachments: Optional[pulumi.Input['SpokeLinkedInterconnectAttachmentsArgs']] = None, @@ -209,7 +219,7 @@ def __init__(__self__, *, location: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, - pulumi_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, state: Optional[pulumi.Input[str]] = None, unique_id: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None): @@ -217,23 +227,29 @@ def __init__(__self__, *, Input properties used for looking up and filtering Spoke resources. :param pulumi.Input[str] create_time: Output only. The time the spoke was created. :param pulumi.Input[str] description: An optional description of the spoke. - :param pulumi.Input[Mapping[str, Any]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[str] hub: Immutable. The URI of the hub that this spoke is attached to. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for - labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - `effective_labels` for all of the labels present on the resource. - :param pulumi.Input['SpokeLinkedInterconnectAttachmentsArgs'] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - advertising the same prefixes. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input['SpokeLinkedInterconnectAttachmentsArgs'] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + Structure is documented below. :param pulumi.Input['SpokeLinkedRouterApplianceInstancesArgs'] linked_router_appliance_instances: The URIs of linked Router appliance resources + Structure is documented below. :param pulumi.Input['SpokeLinkedVpcNetworkArgs'] linked_vpc_network: VPC network that is associated with the spoke. + Structure is documented below. :param pulumi.Input['SpokeLinkedVpnTunnelsArgs'] linked_vpn_tunnels: The URIs of linked VPN tunnel resources + Structure is documented below. :param pulumi.Input[str] location: The location for the resource + + + - - - :param pulumi.Input[str] name: Immutable. The name of the spoke. Spoke names must be unique. - :param pulumi.Input[str] project: The project for the resource - :param pulumi.Input[Mapping[str, Any]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. - :param pulumi.Input[str] state: Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[str] state: Output only. The current lifecycle state of this spoke. :param pulumi.Input[str] unique_id: Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id. :param pulumi.Input[str] update_time: Output only. The time the spoke was last updated. """ @@ -296,14 +312,14 @@ def description(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="effectiveLabels") - def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. """ return pulumi.get(self, "effective_labels") @effective_labels.setter - def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): + def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "effective_labels", value) @property @@ -322,10 +338,9 @@ def hub(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - Optional labels in key:value format. For more information about labels, see [Requirements for - labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - `effective_labels` for all of the labels present on the resource. + Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. """ return pulumi.get(self, "labels") @@ -337,9 +352,8 @@ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]) @pulumi.getter(name="linkedInterconnectAttachments") def linked_interconnect_attachments(self) -> Optional[pulumi.Input['SpokeLinkedInterconnectAttachmentsArgs']]: """ - A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - advertising the same prefixes. + A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + Structure is documented below. """ return pulumi.get(self, "linked_interconnect_attachments") @@ -352,6 +366,7 @@ def linked_interconnect_attachments(self, value: Optional[pulumi.Input['SpokeLin def linked_router_appliance_instances(self) -> Optional[pulumi.Input['SpokeLinkedRouterApplianceInstancesArgs']]: """ The URIs of linked Router appliance resources + Structure is documented below. """ return pulumi.get(self, "linked_router_appliance_instances") @@ -364,6 +379,7 @@ def linked_router_appliance_instances(self, value: Optional[pulumi.Input['SpokeL def linked_vpc_network(self) -> Optional[pulumi.Input['SpokeLinkedVpcNetworkArgs']]: """ VPC network that is associated with the spoke. + Structure is documented below. """ return pulumi.get(self, "linked_vpc_network") @@ -376,6 +392,7 @@ def linked_vpc_network(self, value: Optional[pulumi.Input['SpokeLinkedVpcNetwork def linked_vpn_tunnels(self) -> Optional[pulumi.Input['SpokeLinkedVpnTunnelsArgs']]: """ The URIs of linked VPN tunnel resources + Structure is documented below. """ return pulumi.get(self, "linked_vpn_tunnels") @@ -388,6 +405,9 @@ def linked_vpn_tunnels(self, value: Optional[pulumi.Input['SpokeLinkedVpnTunnels def location(self) -> Optional[pulumi.Input[str]]: """ The location for the resource + + + - - - """ return pulumi.get(self, "location") @@ -411,7 +431,8 @@ def name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: """ - The project for the resource + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ return pulumi.get(self, "project") @@ -421,21 +442,22 @@ def project(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="pulumiLabels") - def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, Any]]]: + def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: """ - The combination of labels configured directly on the resource and default labels configured on the provider. + The combination of labels configured directly on the resource + and default labels configured on the provider. """ return pulumi.get(self, "pulumi_labels") @pulumi_labels.setter - def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, Any]]]): + def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "pulumi_labels", value) @property @pulumi.getter def state(self) -> Optional[pulumi.Input[str]]: """ - Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + Output only. The current lifecycle state of this spoke. """ return pulumi.get(self, "state") @@ -487,26 +509,33 @@ def __init__(__self__, """ The NetworkConnectivity Spoke resource + To get more information about Spoke, see: + + * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes) + * How-to Guides + * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + ## Example Usage - ### Linked_vpc_network + ### Network Connectivity Spoke Linked Vpc Network Basic + ```python import pulumi import pulumi_gcp as gcp network = gcp.compute.Network("network", - name="network", + name="net", auto_create_subnetworks=False) basic_hub = gcp.networkconnectivity.Hub("basic_hub", - name="hub", + name="hub1", description="A sample hub", labels={ "label-two": "value-one", }) primary = gcp.networkconnectivity.Spoke("primary", - name="name", + name="spoke1", location="global", - description="A sample spoke with a linked routher appliance instance", + description="A sample spoke with a linked router appliance instance", labels={ "label-one": "value-one", }, @@ -519,24 +548,25 @@ def __init__(__self__, "uri": network.self_link, }) ``` - ### Router_appliance + ### Network Connectivity Spoke Router Appliance Basic + ```python import pulumi import pulumi_gcp as gcp network = gcp.compute.Network("network", - name="network", + name="tf-test-network_2067", auto_create_subnetworks=False) subnetwork = gcp.compute.Subnetwork("subnetwork", - name="subnet", + name="tf-test-subnet_40785", ip_cidr_range="10.0.0.0/28", - region="us-west1", + region="us-central1", network=network.self_link) instance = gcp.compute.Instance("instance", - name="instance", + name="tf-test-instance_79169", machine_type="e2-medium", can_ip_forward=True, - zone="us-west1-a", + zone="us-central1-a", boot_disk={ "initialize_params": { "image": "projects/debian-cloud/global/images/debian-10-buster-v20210817", @@ -550,14 +580,14 @@ def __init__(__self__, }], }]) basic_hub = gcp.networkconnectivity.Hub("basic_hub", - name="hub", + name="tf-test-hub_56529", description="A sample hub", labels={ "label-two": "value-one", }) primary = gcp.networkconnectivity.Spoke("primary", - name="name", - location="us-west1", + name="tf-test-name_75413", + location="us-central1", description="A sample spoke with a linked routher appliance instance", labels={ "label-one": "value-one", @@ -600,19 +630,24 @@ def __init__(__self__, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: An optional description of the spoke. :param pulumi.Input[str] hub: Immutable. The URI of the hub that this spoke is attached to. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for - labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - `effective_labels` for all of the labels present on the resource. - :param pulumi.Input[Union['SpokeLinkedInterconnectAttachmentsArgs', 'SpokeLinkedInterconnectAttachmentsArgsDict']] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - advertising the same prefixes. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[Union['SpokeLinkedInterconnectAttachmentsArgs', 'SpokeLinkedInterconnectAttachmentsArgsDict']] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + Structure is documented below. :param pulumi.Input[Union['SpokeLinkedRouterApplianceInstancesArgs', 'SpokeLinkedRouterApplianceInstancesArgsDict']] linked_router_appliance_instances: The URIs of linked Router appliance resources + Structure is documented below. :param pulumi.Input[Union['SpokeLinkedVpcNetworkArgs', 'SpokeLinkedVpcNetworkArgsDict']] linked_vpc_network: VPC network that is associated with the spoke. + Structure is documented below. :param pulumi.Input[Union['SpokeLinkedVpnTunnelsArgs', 'SpokeLinkedVpnTunnelsArgsDict']] linked_vpn_tunnels: The URIs of linked VPN tunnel resources + Structure is documented below. :param pulumi.Input[str] location: The location for the resource + + + - - - :param pulumi.Input[str] name: Immutable. The name of the spoke. Spoke names must be unique. - :param pulumi.Input[str] project: The project for the resource + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ ... @overload @@ -623,26 +658,33 @@ def __init__(__self__, """ The NetworkConnectivity Spoke resource + To get more information about Spoke, see: + + * [API documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest/v1beta/projects.locations.spokes) + * How-to Guides + * [Official Documentation](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/overview) + ## Example Usage - ### Linked_vpc_network + ### Network Connectivity Spoke Linked Vpc Network Basic + ```python import pulumi import pulumi_gcp as gcp network = gcp.compute.Network("network", - name="network", + name="net", auto_create_subnetworks=False) basic_hub = gcp.networkconnectivity.Hub("basic_hub", - name="hub", + name="hub1", description="A sample hub", labels={ "label-two": "value-one", }) primary = gcp.networkconnectivity.Spoke("primary", - name="name", + name="spoke1", location="global", - description="A sample spoke with a linked routher appliance instance", + description="A sample spoke with a linked router appliance instance", labels={ "label-one": "value-one", }, @@ -655,24 +697,25 @@ def __init__(__self__, "uri": network.self_link, }) ``` - ### Router_appliance + ### Network Connectivity Spoke Router Appliance Basic + ```python import pulumi import pulumi_gcp as gcp network = gcp.compute.Network("network", - name="network", + name="tf-test-network_2067", auto_create_subnetworks=False) subnetwork = gcp.compute.Subnetwork("subnetwork", - name="subnet", + name="tf-test-subnet_40785", ip_cidr_range="10.0.0.0/28", - region="us-west1", + region="us-central1", network=network.self_link) instance = gcp.compute.Instance("instance", - name="instance", + name="tf-test-instance_79169", machine_type="e2-medium", can_ip_forward=True, - zone="us-west1-a", + zone="us-central1-a", boot_disk={ "initialize_params": { "image": "projects/debian-cloud/global/images/debian-10-buster-v20210817", @@ -686,14 +729,14 @@ def __init__(__self__, }], }]) basic_hub = gcp.networkconnectivity.Hub("basic_hub", - name="hub", + name="tf-test-hub_56529", description="A sample hub", labels={ "label-two": "value-one", }) primary = gcp.networkconnectivity.Spoke("primary", - name="name", - location="us-west1", + name="tf-test-name_75413", + location="us-central1", description="A sample spoke with a linked routher appliance instance", labels={ "label-one": "value-one", @@ -800,7 +843,7 @@ def get(resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, create_time: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, - effective_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, hub: Optional[pulumi.Input[str]] = None, labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, linked_interconnect_attachments: Optional[pulumi.Input[Union['SpokeLinkedInterconnectAttachmentsArgs', 'SpokeLinkedInterconnectAttachmentsArgsDict']]] = None, @@ -810,7 +853,7 @@ def get(resource_name: str, location: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, - pulumi_labels: Optional[pulumi.Input[Mapping[str, Any]]] = None, + pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, state: Optional[pulumi.Input[str]] = None, unique_id: Optional[pulumi.Input[str]] = None, update_time: Optional[pulumi.Input[str]] = None) -> 'Spoke': @@ -823,23 +866,29 @@ def get(resource_name: str, :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] create_time: Output only. The time the spoke was created. :param pulumi.Input[str] description: An optional description of the spoke. - :param pulumi.Input[Mapping[str, Any]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. :param pulumi.Input[str] hub: Immutable. The URI of the hub that this spoke is attached to. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for - labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - `effective_labels` for all of the labels present on the resource. - :param pulumi.Input[Union['SpokeLinkedInterconnectAttachmentsArgs', 'SpokeLinkedInterconnectAttachmentsArgsDict']] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - advertising the same prefixes. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. + :param pulumi.Input[Union['SpokeLinkedInterconnectAttachmentsArgs', 'SpokeLinkedInterconnectAttachmentsArgsDict']] linked_interconnect_attachments: A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + Structure is documented below. :param pulumi.Input[Union['SpokeLinkedRouterApplianceInstancesArgs', 'SpokeLinkedRouterApplianceInstancesArgsDict']] linked_router_appliance_instances: The URIs of linked Router appliance resources + Structure is documented below. :param pulumi.Input[Union['SpokeLinkedVpcNetworkArgs', 'SpokeLinkedVpcNetworkArgsDict']] linked_vpc_network: VPC network that is associated with the spoke. + Structure is documented below. :param pulumi.Input[Union['SpokeLinkedVpnTunnelsArgs', 'SpokeLinkedVpnTunnelsArgsDict']] linked_vpn_tunnels: The URIs of linked VPN tunnel resources + Structure is documented below. :param pulumi.Input[str] location: The location for the resource + + + - - - :param pulumi.Input[str] name: Immutable. The name of the spoke. Spoke names must be unique. - :param pulumi.Input[str] project: The project for the resource - :param pulumi.Input[Mapping[str, Any]] pulumi_labels: The combination of labels configured directly on the resource and default labels configured on the provider. - :param pulumi.Input[str] state: Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + :param pulumi.Input[str] project: The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource + and default labels configured on the provider. + :param pulumi.Input[str] state: Output only. The current lifecycle state of this spoke. :param pulumi.Input[str] unique_id: Output only. The Google-generated UUID for the spoke. This value is unique across all spoke resources. If a spoke is deleted and another with the same name is created, the new spoke is assigned a different unique_id. :param pulumi.Input[str] update_time: Output only. The time the spoke was last updated. """ @@ -883,7 +932,7 @@ def description(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="effectiveLabels") - def effective_labels(self) -> pulumi.Output[Mapping[str, Any]]: + def effective_labels(self) -> pulumi.Output[Mapping[str, str]]: """ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. """ @@ -901,10 +950,9 @@ def hub(self) -> pulumi.Output[str]: @pulumi.getter def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - Optional labels in key:value format. For more information about labels, see [Requirements for - labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). **Note**: This field is - non-authoritative, and will only manage the labels present in your configuration. Please refer to the field - `effective_labels` for all of the labels present on the resource. + Optional labels in key:value format. For more information about labels, see [Requirements for labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. + Please refer to the field `effective_labels` for all of the labels present on the resource. """ return pulumi.get(self, "labels") @@ -912,9 +960,8 @@ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]: @pulumi.getter(name="linkedInterconnectAttachments") def linked_interconnect_attachments(self) -> pulumi.Output[Optional['outputs.SpokeLinkedInterconnectAttachments']]: """ - A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same - prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of - advertising the same prefixes. + A collection of VLAN attachment resources. These resources should be redundant attachments that all advertise the same prefixes to Google Cloud. Alternatively, in active/passive configurations, all attachments should be capable of advertising the same prefixes. + Structure is documented below. """ return pulumi.get(self, "linked_interconnect_attachments") @@ -923,6 +970,7 @@ def linked_interconnect_attachments(self) -> pulumi.Output[Optional['outputs.Spo def linked_router_appliance_instances(self) -> pulumi.Output[Optional['outputs.SpokeLinkedRouterApplianceInstances']]: """ The URIs of linked Router appliance resources + Structure is documented below. """ return pulumi.get(self, "linked_router_appliance_instances") @@ -931,6 +979,7 @@ def linked_router_appliance_instances(self) -> pulumi.Output[Optional['outputs.S def linked_vpc_network(self) -> pulumi.Output[Optional['outputs.SpokeLinkedVpcNetwork']]: """ VPC network that is associated with the spoke. + Structure is documented below. """ return pulumi.get(self, "linked_vpc_network") @@ -939,6 +988,7 @@ def linked_vpc_network(self) -> pulumi.Output[Optional['outputs.SpokeLinkedVpcNe def linked_vpn_tunnels(self) -> pulumi.Output[Optional['outputs.SpokeLinkedVpnTunnels']]: """ The URIs of linked VPN tunnel resources + Structure is documented below. """ return pulumi.get(self, "linked_vpn_tunnels") @@ -947,6 +997,9 @@ def linked_vpn_tunnels(self) -> pulumi.Output[Optional['outputs.SpokeLinkedVpnTu def location(self) -> pulumi.Output[str]: """ The location for the resource + + + - - - """ return pulumi.get(self, "location") @@ -962,15 +1015,17 @@ def name(self) -> pulumi.Output[str]: @pulumi.getter def project(self) -> pulumi.Output[str]: """ - The project for the resource + The ID of the project in which the resource belongs. + If it is not provided, the provider project is used. """ return pulumi.get(self, "project") @property @pulumi.getter(name="pulumiLabels") - def pulumi_labels(self) -> pulumi.Output[Mapping[str, Any]]: + def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]: """ - The combination of labels configured directly on the resource and default labels configured on the provider. + The combination of labels configured directly on the resource + and default labels configured on the provider. """ return pulumi.get(self, "pulumi_labels") @@ -978,7 +1033,7 @@ def pulumi_labels(self) -> pulumi.Output[Mapping[str, Any]]: @pulumi.getter def state(self) -> pulumi.Output[str]: """ - Output only. The current lifecycle state of this spoke. Possible values: STATE_UNSPECIFIED, CREATING, ACTIVE, DELETING + Output only. The current lifecycle state of this spoke. """ return pulumi.get(self, "state") diff --git a/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py b/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py index b6a0149f9f..47f1ec1290 100644 --- a/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py +++ b/sdk/python/pulumi_gcp/networksecurity/tls_inspection_policy.py @@ -579,7 +579,7 @@ def __init__(__self__, default_ca_pool_iam_member = gcp.certificateauthority.CaPoolIamMember("default", ca_pool=default.id, role="roles/privateca.certificateManager", - member=ns_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=ns_sa.member) default_trust_config = gcp.certificatemanager.TrustConfig("default", name="my-trust-config", description="sample trust config description", @@ -828,7 +828,7 @@ def __init__(__self__, default_ca_pool_iam_member = gcp.certificateauthority.CaPoolIamMember("default", ca_pool=default.id, role="roles/privateca.certificateManager", - member=ns_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=ns_sa.member) default_trust_config = gcp.certificatemanager.TrustConfig("default", name="my-trust-config", description="sample trust config description", diff --git a/sdk/python/pulumi_gcp/orgpolicy/policy.py b/sdk/python/pulumi_gcp/orgpolicy/policy.py index 7ce82c83ed..7a5716f8cc 100644 --- a/sdk/python/pulumi_gcp/orgpolicy/policy.py +++ b/sdk/python/pulumi_gcp/orgpolicy/policy.py @@ -288,7 +288,7 @@ def __init__(__self__, { "condition": { "description": "A sample condition for the policy", - "expression": "resource.matchLabels('labelKeys/123', 'labelValues/345')", + "expression": "resource.matchTagId('tagKeys/123', 'tagValues/345')", "location": "sample-location.log", "title": "sample-condition", }, @@ -310,7 +310,7 @@ def __init__(__self__, import pulumi_gcp as gcp constraint = gcp.orgpolicy.CustomConstraint("constraint", - name="custom.disableGkeAutoUpgrade_40785", + name="custom.disableGkeAutoUpgrade_37559", parent="organizations/123456789", display_name="Disable GKE auto upgrade", description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.", @@ -446,7 +446,7 @@ def __init__(__self__, { "condition": { "description": "A sample condition for the policy", - "expression": "resource.matchLabels('labelKeys/123', 'labelValues/345')", + "expression": "resource.matchTagId('tagKeys/123', 'tagValues/345')", "location": "sample-location.log", "title": "sample-condition", }, @@ -468,7 +468,7 @@ def __init__(__self__, import pulumi_gcp as gcp constraint = gcp.orgpolicy.CustomConstraint("constraint", - name="custom.disableGkeAutoUpgrade_40785", + name="custom.disableGkeAutoUpgrade_37559", parent="organizations/123456789", display_name="Disable GKE auto upgrade", description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.", diff --git a/sdk/python/pulumi_gcp/projects/get_project_service.py b/sdk/python/pulumi_gcp/projects/get_project_service.py index 9487593277..6cda03a527 100644 --- a/sdk/python/pulumi_gcp/projects/get_project_service.py +++ b/sdk/python/pulumi_gcp/projects/get_project_service.py @@ -26,7 +26,10 @@ class GetProjectServiceResult: """ A collection of values returned by getProjectService. """ - def __init__(__self__, disable_dependent_services=None, disable_on_destroy=None, id=None, project=None, service=None): + def __init__(__self__, check_if_service_has_usage_on_destroy=None, disable_dependent_services=None, disable_on_destroy=None, id=None, project=None, service=None): + if check_if_service_has_usage_on_destroy and not isinstance(check_if_service_has_usage_on_destroy, bool): + raise TypeError("Expected argument 'check_if_service_has_usage_on_destroy' to be a bool") + pulumi.set(__self__, "check_if_service_has_usage_on_destroy", check_if_service_has_usage_on_destroy) if disable_dependent_services and not isinstance(disable_dependent_services, bool): raise TypeError("Expected argument 'disable_dependent_services' to be a bool") pulumi.set(__self__, "disable_dependent_services", disable_dependent_services) @@ -43,6 +46,11 @@ def __init__(__self__, disable_dependent_services=None, disable_on_destroy=None, raise TypeError("Expected argument 'service' to be a str") pulumi.set(__self__, "service", service) + @property + @pulumi.getter(name="checkIfServiceHasUsageOnDestroy") + def check_if_service_has_usage_on_destroy(self) -> bool: + return pulumi.get(self, "check_if_service_has_usage_on_destroy") + @property @pulumi.getter(name="disableDependentServices") def disable_dependent_services(self) -> bool: @@ -78,6 +86,7 @@ def __await__(self): if False: yield self return GetProjectServiceResult( + check_if_service_has_usage_on_destroy=self.check_if_service_has_usage_on_destroy, disable_dependent_services=self.disable_dependent_services, disable_on_destroy=self.disable_on_destroy, id=self.id, @@ -126,6 +135,7 @@ def get_project_service(project: Optional[str] = None, __ret__ = pulumi.runtime.invoke('gcp:projects/getProjectService:getProjectService', __args__, opts=opts, typ=GetProjectServiceResult).value return AwaitableGetProjectServiceResult( + check_if_service_has_usage_on_destroy=pulumi.get(__ret__, 'check_if_service_has_usage_on_destroy'), disable_dependent_services=pulumi.get(__ret__, 'disable_dependent_services'), disable_on_destroy=pulumi.get(__ret__, 'disable_on_destroy'), id=pulumi.get(__ret__, 'id'), diff --git a/sdk/python/pulumi_gcp/projects/service.py b/sdk/python/pulumi_gcp/projects/service.py index 33235fbecc..eb1db7dc29 100644 --- a/sdk/python/pulumi_gcp/projects/service.py +++ b/sdk/python/pulumi_gcp/projects/service.py @@ -20,12 +20,17 @@ class ServiceArgs: def __init__(__self__, *, service: pulumi.Input[str], + check_if_service_has_usage_on_destroy: Optional[pulumi.Input[bool]] = None, disable_dependent_services: Optional[pulumi.Input[bool]] = None, disable_on_destroy: Optional[pulumi.Input[bool]] = None, project: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Service resource. :param pulumi.Input[str] service: The service to enable. + :param pulumi.Input[bool] check_if_service_has_usage_on_destroy: Beta + If `true`, the usage of the service to be disabled will be checked and an error + will be returned if the service to be disabled has usage in last 30 days. + Defaults to `false`. :param pulumi.Input[bool] disable_dependent_services: If `true`, services that are enabled and which depend on this service should also be disabled when this service is destroyed. If `false` or unset, an error will be generated if any enabled @@ -34,6 +39,8 @@ def __init__(__self__, *, is used. """ pulumi.set(__self__, "service", service) + if check_if_service_has_usage_on_destroy is not None: + pulumi.set(__self__, "check_if_service_has_usage_on_destroy", check_if_service_has_usage_on_destroy) if disable_dependent_services is not None: pulumi.set(__self__, "disable_dependent_services", disable_dependent_services) if disable_on_destroy is not None: @@ -53,6 +60,21 @@ def service(self) -> pulumi.Input[str]: def service(self, value: pulumi.Input[str]): pulumi.set(self, "service", value) + @property + @pulumi.getter(name="checkIfServiceHasUsageOnDestroy") + def check_if_service_has_usage_on_destroy(self) -> Optional[pulumi.Input[bool]]: + """ + Beta + If `true`, the usage of the service to be disabled will be checked and an error + will be returned if the service to be disabled has usage in last 30 days. + Defaults to `false`. + """ + return pulumi.get(self, "check_if_service_has_usage_on_destroy") + + @check_if_service_has_usage_on_destroy.setter + def check_if_service_has_usage_on_destroy(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "check_if_service_has_usage_on_destroy", value) + @property @pulumi.getter(name="disableDependentServices") def disable_dependent_services(self) -> Optional[pulumi.Input[bool]]: @@ -94,12 +116,17 @@ def project(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class _ServiceState: def __init__(__self__, *, + check_if_service_has_usage_on_destroy: Optional[pulumi.Input[bool]] = None, disable_dependent_services: Optional[pulumi.Input[bool]] = None, disable_on_destroy: Optional[pulumi.Input[bool]] = None, project: Optional[pulumi.Input[str]] = None, service: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Service resources. + :param pulumi.Input[bool] check_if_service_has_usage_on_destroy: Beta + If `true`, the usage of the service to be disabled will be checked and an error + will be returned if the service to be disabled has usage in last 30 days. + Defaults to `false`. :param pulumi.Input[bool] disable_dependent_services: If `true`, services that are enabled and which depend on this service should also be disabled when this service is destroyed. If `false` or unset, an error will be generated if any enabled @@ -108,6 +135,8 @@ def __init__(__self__, *, is used. :param pulumi.Input[str] service: The service to enable. """ + if check_if_service_has_usage_on_destroy is not None: + pulumi.set(__self__, "check_if_service_has_usage_on_destroy", check_if_service_has_usage_on_destroy) if disable_dependent_services is not None: pulumi.set(__self__, "disable_dependent_services", disable_dependent_services) if disable_on_destroy is not None: @@ -117,6 +146,21 @@ def __init__(__self__, *, if service is not None: pulumi.set(__self__, "service", service) + @property + @pulumi.getter(name="checkIfServiceHasUsageOnDestroy") + def check_if_service_has_usage_on_destroy(self) -> Optional[pulumi.Input[bool]]: + """ + Beta + If `true`, the usage of the service to be disabled will be checked and an error + will be returned if the service to be disabled has usage in last 30 days. + Defaults to `false`. + """ + return pulumi.get(self, "check_if_service_has_usage_on_destroy") + + @check_if_service_has_usage_on_destroy.setter + def check_if_service_has_usage_on_destroy(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "check_if_service_has_usage_on_destroy", value) + @property @pulumi.getter(name="disableDependentServices") def disable_dependent_services(self) -> Optional[pulumi.Input[bool]]: @@ -172,6 +216,7 @@ class Service(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + check_if_service_has_usage_on_destroy: Optional[pulumi.Input[bool]] = None, disable_dependent_services: Optional[pulumi.Input[bool]] = None, disable_on_destroy: Optional[pulumi.Input[bool]] = None, project: Optional[pulumi.Input[str]] = None, @@ -214,6 +259,10 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] check_if_service_has_usage_on_destroy: Beta + If `true`, the usage of the service to be disabled will be checked and an error + will be returned if the service to be disabled has usage in last 30 days. + Defaults to `false`. :param pulumi.Input[bool] disable_dependent_services: If `true`, services that are enabled and which depend on this service should also be disabled when this service is destroyed. If `false` or unset, an error will be generated if any enabled @@ -278,6 +327,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + check_if_service_has_usage_on_destroy: Optional[pulumi.Input[bool]] = None, disable_dependent_services: Optional[pulumi.Input[bool]] = None, disable_on_destroy: Optional[pulumi.Input[bool]] = None, project: Optional[pulumi.Input[str]] = None, @@ -291,6 +341,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ServiceArgs.__new__(ServiceArgs) + __props__.__dict__["check_if_service_has_usage_on_destroy"] = check_if_service_has_usage_on_destroy __props__.__dict__["disable_dependent_services"] = disable_dependent_services __props__.__dict__["disable_on_destroy"] = disable_on_destroy __props__.__dict__["project"] = project @@ -307,6 +358,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + check_if_service_has_usage_on_destroy: Optional[pulumi.Input[bool]] = None, disable_dependent_services: Optional[pulumi.Input[bool]] = None, disable_on_destroy: Optional[pulumi.Input[bool]] = None, project: Optional[pulumi.Input[str]] = None, @@ -318,6 +370,10 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] check_if_service_has_usage_on_destroy: Beta + If `true`, the usage of the service to be disabled will be checked and an error + will be returned if the service to be disabled has usage in last 30 days. + Defaults to `false`. :param pulumi.Input[bool] disable_dependent_services: If `true`, services that are enabled and which depend on this service should also be disabled when this service is destroyed. If `false` or unset, an error will be generated if any enabled @@ -330,12 +386,24 @@ def get(resource_name: str, __props__ = _ServiceState.__new__(_ServiceState) + __props__.__dict__["check_if_service_has_usage_on_destroy"] = check_if_service_has_usage_on_destroy __props__.__dict__["disable_dependent_services"] = disable_dependent_services __props__.__dict__["disable_on_destroy"] = disable_on_destroy __props__.__dict__["project"] = project __props__.__dict__["service"] = service return Service(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="checkIfServiceHasUsageOnDestroy") + def check_if_service_has_usage_on_destroy(self) -> pulumi.Output[Optional[bool]]: + """ + Beta + If `true`, the usage of the service to be disabled will be checked and an error + will be returned if the service to be disabled has usage in last 30 days. + Defaults to `false`. + """ + return pulumi.get(self, "check_if_service_has_usage_on_destroy") + @property @pulumi.getter(name="disableDependentServices") def disable_dependent_services(self) -> pulumi.Output[Optional[bool]]: diff --git a/sdk/python/pulumi_gcp/projects/service_identity.py b/sdk/python/pulumi_gcp/projects/service_identity.py index 7fc06ff305..13045de8ed 100644 --- a/sdk/python/pulumi_gcp/projects/service_identity.py +++ b/sdk/python/pulumi_gcp/projects/service_identity.py @@ -65,11 +65,13 @@ def project(self, value: Optional[pulumi.Input[str]]): class _ServiceIdentityState: def __init__(__self__, *, email: Optional[pulumi.Input[str]] = None, + member: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, service: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering ServiceIdentity resources. :param pulumi.Input[str] email: The email address of the Google managed service account. + :param pulumi.Input[str] member: The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] service: The service to generate identity for. @@ -78,6 +80,8 @@ def __init__(__self__, *, """ if email is not None: pulumi.set(__self__, "email", email) + if member is not None: + pulumi.set(__self__, "member", member) if project is not None: pulumi.set(__self__, "project", project) if service is not None: @@ -95,6 +99,18 @@ def email(self) -> Optional[pulumi.Input[str]]: def email(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "email", value) + @property + @pulumi.getter + def member(self) -> Optional[pulumi.Input[str]]: + """ + The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + """ + return pulumi.get(self, "member") + + @member.setter + def member(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "member", value) + @property @pulumi.getter def project(self) -> Optional[pulumi.Input[str]]: @@ -160,7 +176,7 @@ def __init__(__self__, hc_sa_bq_jobuser = gcp.projects.IAMMember("hc_sa_bq_jobuser", project=project.project_id, role="roles/bigquery.jobUser", - member=hc_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=hc_sa.member) ``` ## Import @@ -210,7 +226,7 @@ def __init__(__self__, hc_sa_bq_jobuser = gcp.projects.IAMMember("hc_sa_bq_jobuser", project=project.project_id, role="roles/bigquery.jobUser", - member=hc_sa.email.apply(lambda email: f"serviceAccount:{email}")) + member=hc_sa.member) ``` ## Import @@ -248,6 +264,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'service'") __props__.__dict__["service"] = service __props__.__dict__["email"] = None + __props__.__dict__["member"] = None super(ServiceIdentity, __self__).__init__( 'gcp:projects/serviceIdentity:ServiceIdentity', resource_name, @@ -259,6 +276,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, email: Optional[pulumi.Input[str]] = None, + member: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, service: Optional[pulumi.Input[str]] = None) -> 'ServiceIdentity': """ @@ -269,6 +287,7 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] email: The email address of the Google managed service account. + :param pulumi.Input[str] member: The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. :param pulumi.Input[str] project: The ID of the project in which the resource belongs. If it is not provided, the provider project is used. :param pulumi.Input[str] service: The service to generate identity for. @@ -280,6 +299,7 @@ def get(resource_name: str, __props__ = _ServiceIdentityState.__new__(_ServiceIdentityState) __props__.__dict__["email"] = email + __props__.__dict__["member"] = member __props__.__dict__["project"] = project __props__.__dict__["service"] = service return ServiceIdentity(resource_name, opts=opts, __props__=__props__) @@ -292,6 +312,14 @@ def email(self) -> pulumi.Output[str]: """ return pulumi.get(self, "email") + @property + @pulumi.getter + def member(self) -> pulumi.Output[str]: + """ + The Identity of the Google managed service account in the form 'serviceAccount:{email}'. This value is often used to refer to the service account in order to grant IAM permissions. + """ + return pulumi.get(self, "member") + @property @pulumi.getter def project(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/pubsub/subscription.py b/sdk/python/pulumi_gcp/pubsub/subscription.py index cc50133908..bc346e526c 100644 --- a/sdk/python/pulumi_gcp/pubsub/subscription.py +++ b/sdk/python/pulumi_gcp/pubsub/subscription.py @@ -1104,7 +1104,7 @@ def __init__(__self__, cloud_storage_config={ "bucket": example.name, "filename_prefix": "pre-", - "filename_suffix": "-_79169", + "filename_suffix": "-_91980", "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ", "max_bytes": 1000, "max_duration": "300s", @@ -1136,7 +1136,7 @@ def __init__(__self__, cloud_storage_config={ "bucket": example.name, "filename_prefix": "pre-", - "filename_suffix": "-_56529", + "filename_suffix": "-_37118", "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ", "max_bytes": 1000, "max_duration": "300s", @@ -1173,7 +1173,7 @@ def __init__(__self__, cloud_storage_config={ "bucket": example.name, "filename_prefix": "pre-", - "filename_suffix": "-_75413", + "filename_suffix": "-_80332", "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ", "max_bytes": 1000, "max_duration": "300s", @@ -1532,7 +1532,7 @@ def __init__(__self__, cloud_storage_config={ "bucket": example.name, "filename_prefix": "pre-", - "filename_suffix": "-_79169", + "filename_suffix": "-_91980", "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ", "max_bytes": 1000, "max_duration": "300s", @@ -1564,7 +1564,7 @@ def __init__(__self__, cloud_storage_config={ "bucket": example.name, "filename_prefix": "pre-", - "filename_suffix": "-_56529", + "filename_suffix": "-_37118", "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ", "max_bytes": 1000, "max_duration": "300s", @@ -1601,7 +1601,7 @@ def __init__(__self__, cloud_storage_config={ "bucket": example.name, "filename_prefix": "pre-", - "filename_suffix": "-_75413", + "filename_suffix": "-_80332", "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ", "max_bytes": 1000, "max_duration": "300s", diff --git a/sdk/python/pulumi_gcp/securesourcemanager/instance.py b/sdk/python/pulumi_gcp/securesourcemanager/instance.py index 75ad848990..8436d1f6d1 100644 --- a/sdk/python/pulumi_gcp/securesourcemanager/instance.py +++ b/sdk/python/pulumi_gcp/securesourcemanager/instance.py @@ -500,7 +500,7 @@ def __init__(__self__, role="roles/privateca.certificateRequester", members=[f"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com"]) # ca pool IAM permissions can take time to propagate - wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s, + wait120_seconds = time.index.Sleep("wait_120_seconds", create_duration=120s, opts = pulumi.ResourceOptions(depends_on=[ca_pool_binding])) default = gcp.securesourcemanager.Instance("default", instance_id="my-instance", @@ -511,9 +511,271 @@ def __init__(__self__, }, opts = pulumi.ResourceOptions(depends_on=[ root_ca, - wait60_seconds, + wait120_seconds, ])) ``` + ### Secure Source Manager Instance Private Psc Backend + + ```python + import pulumi + import pulumi_gcp as gcp + import pulumi_time as time + + project = gcp.organizations.get_project() + ca_pool = gcp.certificateauthority.CaPool("ca_pool", + name="ca-pool", + location="us-central1", + tier="ENTERPRISE", + publishing_options={ + "publish_ca_cert": True, + "publish_crl": True, + }) + root_ca = gcp.certificateauthority.Authority("root_ca", + pool=ca_pool.name, + certificate_authority_id="root-ca", + location="us-central1", + config={ + "subject_config": { + "subject": { + "organization": "google", + "common_name": "my-certificate-authority", + }, + }, + "x509_config": { + "ca_options": { + "is_ca": True, + }, + "key_usage": { + "base_key_usage": { + "cert_sign": True, + "crl_sign": True, + }, + "extended_key_usage": { + "server_auth": True, + }, + }, + }, + }, + key_spec={ + "algorithm": "RSA_PKCS1_4096_SHA256", + }, + deletion_protection=False, + ignore_active_certificates_on_deletion=True, + skip_grace_period=True) + ca_pool_binding = gcp.certificateauthority.CaPoolIamBinding("ca_pool_binding", + ca_pool=ca_pool.id, + role="roles/privateca.certificateRequester", + members=[f"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com"]) + # ca pool IAM permissions can take time to propagate + wait120_seconds = time.index.Sleep("wait_120_seconds", create_duration=120s, + opts = pulumi.ResourceOptions(depends_on=[ca_pool_binding])) + # See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + default = gcp.securesourcemanager.Instance("default", + instance_id="my-instance", + location="us-central1", + private_config={ + "is_private": True, + "ca_pool": ca_pool.id, + }, + opts = pulumi.ResourceOptions(depends_on=[ + root_ca, + wait120_seconds, + ])) + # Connect SSM private instance with L4 proxy ILB. + network = gcp.compute.Network("network", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnet", + region="us-central1", + network=network.id, + ip_cidr_range="10.0.1.0/24", + private_ip_google_access=True) + psc_neg = gcp.compute.RegionNetworkEndpointGroup("psc_neg", + name="my-neg", + region="us-central1", + network_endpoint_type="PRIVATE_SERVICE_CONNECT", + psc_target_service=default.private_config.http_service_attachment, + network=network.id, + subnetwork=subnet.id) + backend_service = gcp.compute.RegionBackendService("backend_service", + name="my-backend-service", + region="us-central1", + protocol="TCP", + load_balancing_scheme="INTERNAL_MANAGED", + backends=[{ + "group": psc_neg.id, + "balancing_mode": "UTILIZATION", + "capacity_scaler": 1, + }]) + proxy_subnet = gcp.compute.Subnetwork("proxy_subnet", + name="my-proxy-subnet", + region="us-central1", + network=network.id, + ip_cidr_range="10.0.2.0/24", + purpose="REGIONAL_MANAGED_PROXY", + role="ACTIVE") + target_proxy = gcp.compute.RegionTargetTcpProxy("target_proxy", + name="my-target-proxy", + region="us-central1", + backend_service=backend_service.id) + fw_rule_target_proxy = gcp.compute.ForwardingRule("fw_rule_target_proxy", + name="fw-rule-target-proxy", + region="us-central1", + load_balancing_scheme="INTERNAL_MANAGED", + ip_protocol="TCP", + port_range="443", + target=target_proxy.id, + network=network.id, + subnetwork=subnet.id, + network_tier="PREMIUM", + opts = pulumi.ResourceOptions(depends_on=[proxy_subnet])) + private_zone = gcp.dns.ManagedZone("private_zone", + name="my-dns-zone", + dns_name="p.sourcemanager.dev.", + visibility="private", + private_visibility_config={ + "networks": [{ + "network_url": network.id, + }], + }) + ssm_instance_html_record = gcp.dns.RecordSet("ssm_instance_html_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].html}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_target_proxy.ip_address]) + ssm_instance_api_record = gcp.dns.RecordSet("ssm_instance_api_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].api}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_target_proxy.ip_address]) + ssm_instance_git_record = gcp.dns.RecordSet("ssm_instance_git_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].git_http}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_target_proxy.ip_address]) + ``` + ### Secure Source Manager Instance Private Psc Endpoint + + ```python + import pulumi + import pulumi_gcp as gcp + import pulumi_time as time + + project = gcp.organizations.get_project() + ca_pool = gcp.certificateauthority.CaPool("ca_pool", + name="ca-pool", + location="us-central1", + tier="ENTERPRISE", + publishing_options={ + "publish_ca_cert": True, + "publish_crl": True, + }) + root_ca = gcp.certificateauthority.Authority("root_ca", + pool=ca_pool.name, + certificate_authority_id="root-ca", + location="us-central1", + config={ + "subject_config": { + "subject": { + "organization": "google", + "common_name": "my-certificate-authority", + }, + }, + "x509_config": { + "ca_options": { + "is_ca": True, + }, + "key_usage": { + "base_key_usage": { + "cert_sign": True, + "crl_sign": True, + }, + "extended_key_usage": { + "server_auth": True, + }, + }, + }, + }, + key_spec={ + "algorithm": "RSA_PKCS1_4096_SHA256", + }, + deletion_protection=False, + ignore_active_certificates_on_deletion=True, + skip_grace_period=True) + ca_pool_binding = gcp.certificateauthority.CaPoolIamBinding("ca_pool_binding", + ca_pool=ca_pool.id, + role="roles/privateca.certificateRequester", + members=[f"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com"]) + # ca pool IAM permissions can take time to propagate + wait120_seconds = time.index.Sleep("wait_120_seconds", create_duration=120s, + opts = pulumi.ResourceOptions(depends_on=[ca_pool_binding])) + # See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + default = gcp.securesourcemanager.Instance("default", + instance_id="my-instance", + location="us-central1", + private_config={ + "is_private": True, + "ca_pool": ca_pool.id, + }, + opts = pulumi.ResourceOptions(depends_on=[ + root_ca, + wait120_seconds, + ])) + # Connect SSM private instance with endpoint. + network = gcp.compute.Network("network", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnet", + region="us-central1", + network=network.id, + ip_cidr_range="10.0.60.0/24", + private_ip_google_access=True) + address = gcp.compute.Address("address", + name="my-address", + region="us-central1", + address="10.0.60.100", + address_type="INTERNAL", + subnetwork=subnet.id) + fw_rule_service_attachment = gcp.compute.ForwardingRule("fw_rule_service_attachment", + name="fw-rule-service-attachment", + region="us-central1", + load_balancing_scheme="", + ip_address=address.id, + network=network.id, + target=default.private_config.http_service_attachment) + private_zone = gcp.dns.ManagedZone("private_zone", + name="my-dns-zone", + dns_name="p.sourcemanager.dev.", + visibility="private", + private_visibility_config={ + "networks": [{ + "network_url": network.id, + }], + }) + ssm_instance_html_record = gcp.dns.RecordSet("ssm_instance_html_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].html}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_service_attachment.ip_address]) + ssm_instance_api_record = gcp.dns.RecordSet("ssm_instance_api_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].api}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_service_attachment.ip_address]) + ssm_instance_git_record = gcp.dns.RecordSet("ssm_instance_git_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].git_http}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_service_attachment.ip_address]) + ``` ## Import @@ -668,7 +930,7 @@ def __init__(__self__, role="roles/privateca.certificateRequester", members=[f"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com"]) # ca pool IAM permissions can take time to propagate - wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s, + wait120_seconds = time.index.Sleep("wait_120_seconds", create_duration=120s, opts = pulumi.ResourceOptions(depends_on=[ca_pool_binding])) default = gcp.securesourcemanager.Instance("default", instance_id="my-instance", @@ -679,9 +941,271 @@ def __init__(__self__, }, opts = pulumi.ResourceOptions(depends_on=[ root_ca, - wait60_seconds, + wait120_seconds, ])) ``` + ### Secure Source Manager Instance Private Psc Backend + + ```python + import pulumi + import pulumi_gcp as gcp + import pulumi_time as time + + project = gcp.organizations.get_project() + ca_pool = gcp.certificateauthority.CaPool("ca_pool", + name="ca-pool", + location="us-central1", + tier="ENTERPRISE", + publishing_options={ + "publish_ca_cert": True, + "publish_crl": True, + }) + root_ca = gcp.certificateauthority.Authority("root_ca", + pool=ca_pool.name, + certificate_authority_id="root-ca", + location="us-central1", + config={ + "subject_config": { + "subject": { + "organization": "google", + "common_name": "my-certificate-authority", + }, + }, + "x509_config": { + "ca_options": { + "is_ca": True, + }, + "key_usage": { + "base_key_usage": { + "cert_sign": True, + "crl_sign": True, + }, + "extended_key_usage": { + "server_auth": True, + }, + }, + }, + }, + key_spec={ + "algorithm": "RSA_PKCS1_4096_SHA256", + }, + deletion_protection=False, + ignore_active_certificates_on_deletion=True, + skip_grace_period=True) + ca_pool_binding = gcp.certificateauthority.CaPoolIamBinding("ca_pool_binding", + ca_pool=ca_pool.id, + role="roles/privateca.certificateRequester", + members=[f"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com"]) + # ca pool IAM permissions can take time to propagate + wait120_seconds = time.index.Sleep("wait_120_seconds", create_duration=120s, + opts = pulumi.ResourceOptions(depends_on=[ca_pool_binding])) + # See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + default = gcp.securesourcemanager.Instance("default", + instance_id="my-instance", + location="us-central1", + private_config={ + "is_private": True, + "ca_pool": ca_pool.id, + }, + opts = pulumi.ResourceOptions(depends_on=[ + root_ca, + wait120_seconds, + ])) + # Connect SSM private instance with L4 proxy ILB. + network = gcp.compute.Network("network", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnet", + region="us-central1", + network=network.id, + ip_cidr_range="10.0.1.0/24", + private_ip_google_access=True) + psc_neg = gcp.compute.RegionNetworkEndpointGroup("psc_neg", + name="my-neg", + region="us-central1", + network_endpoint_type="PRIVATE_SERVICE_CONNECT", + psc_target_service=default.private_config.http_service_attachment, + network=network.id, + subnetwork=subnet.id) + backend_service = gcp.compute.RegionBackendService("backend_service", + name="my-backend-service", + region="us-central1", + protocol="TCP", + load_balancing_scheme="INTERNAL_MANAGED", + backends=[{ + "group": psc_neg.id, + "balancing_mode": "UTILIZATION", + "capacity_scaler": 1, + }]) + proxy_subnet = gcp.compute.Subnetwork("proxy_subnet", + name="my-proxy-subnet", + region="us-central1", + network=network.id, + ip_cidr_range="10.0.2.0/24", + purpose="REGIONAL_MANAGED_PROXY", + role="ACTIVE") + target_proxy = gcp.compute.RegionTargetTcpProxy("target_proxy", + name="my-target-proxy", + region="us-central1", + backend_service=backend_service.id) + fw_rule_target_proxy = gcp.compute.ForwardingRule("fw_rule_target_proxy", + name="fw-rule-target-proxy", + region="us-central1", + load_balancing_scheme="INTERNAL_MANAGED", + ip_protocol="TCP", + port_range="443", + target=target_proxy.id, + network=network.id, + subnetwork=subnet.id, + network_tier="PREMIUM", + opts = pulumi.ResourceOptions(depends_on=[proxy_subnet])) + private_zone = gcp.dns.ManagedZone("private_zone", + name="my-dns-zone", + dns_name="p.sourcemanager.dev.", + visibility="private", + private_visibility_config={ + "networks": [{ + "network_url": network.id, + }], + }) + ssm_instance_html_record = gcp.dns.RecordSet("ssm_instance_html_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].html}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_target_proxy.ip_address]) + ssm_instance_api_record = gcp.dns.RecordSet("ssm_instance_api_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].api}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_target_proxy.ip_address]) + ssm_instance_git_record = gcp.dns.RecordSet("ssm_instance_git_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].git_http}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_target_proxy.ip_address]) + ``` + ### Secure Source Manager Instance Private Psc Endpoint + + ```python + import pulumi + import pulumi_gcp as gcp + import pulumi_time as time + + project = gcp.organizations.get_project() + ca_pool = gcp.certificateauthority.CaPool("ca_pool", + name="ca-pool", + location="us-central1", + tier="ENTERPRISE", + publishing_options={ + "publish_ca_cert": True, + "publish_crl": True, + }) + root_ca = gcp.certificateauthority.Authority("root_ca", + pool=ca_pool.name, + certificate_authority_id="root-ca", + location="us-central1", + config={ + "subject_config": { + "subject": { + "organization": "google", + "common_name": "my-certificate-authority", + }, + }, + "x509_config": { + "ca_options": { + "is_ca": True, + }, + "key_usage": { + "base_key_usage": { + "cert_sign": True, + "crl_sign": True, + }, + "extended_key_usage": { + "server_auth": True, + }, + }, + }, + }, + key_spec={ + "algorithm": "RSA_PKCS1_4096_SHA256", + }, + deletion_protection=False, + ignore_active_certificates_on_deletion=True, + skip_grace_period=True) + ca_pool_binding = gcp.certificateauthority.CaPoolIamBinding("ca_pool_binding", + ca_pool=ca_pool.id, + role="roles/privateca.certificateRequester", + members=[f"serviceAccount:service-{project.number}@gcp-sa-sourcemanager.iam.gserviceaccount.com"]) + # ca pool IAM permissions can take time to propagate + wait120_seconds = time.index.Sleep("wait_120_seconds", create_duration=120s, + opts = pulumi.ResourceOptions(depends_on=[ca_pool_binding])) + # See https://cloud.google.com/secure-source-manager/docs/create-private-service-connect-instance#root-ca-api + default = gcp.securesourcemanager.Instance("default", + instance_id="my-instance", + location="us-central1", + private_config={ + "is_private": True, + "ca_pool": ca_pool.id, + }, + opts = pulumi.ResourceOptions(depends_on=[ + root_ca, + wait120_seconds, + ])) + # Connect SSM private instance with endpoint. + network = gcp.compute.Network("network", + name="my-network", + auto_create_subnetworks=False) + subnet = gcp.compute.Subnetwork("subnet", + name="my-subnet", + region="us-central1", + network=network.id, + ip_cidr_range="10.0.60.0/24", + private_ip_google_access=True) + address = gcp.compute.Address("address", + name="my-address", + region="us-central1", + address="10.0.60.100", + address_type="INTERNAL", + subnetwork=subnet.id) + fw_rule_service_attachment = gcp.compute.ForwardingRule("fw_rule_service_attachment", + name="fw-rule-service-attachment", + region="us-central1", + load_balancing_scheme="", + ip_address=address.id, + network=network.id, + target=default.private_config.http_service_attachment) + private_zone = gcp.dns.ManagedZone("private_zone", + name="my-dns-zone", + dns_name="p.sourcemanager.dev.", + visibility="private", + private_visibility_config={ + "networks": [{ + "network_url": network.id, + }], + }) + ssm_instance_html_record = gcp.dns.RecordSet("ssm_instance_html_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].html}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_service_attachment.ip_address]) + ssm_instance_api_record = gcp.dns.RecordSet("ssm_instance_api_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].api}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_service_attachment.ip_address]) + ssm_instance_git_record = gcp.dns.RecordSet("ssm_instance_git_record", + name=default.host_configs.apply(lambda host_configs: f"{host_configs[0].git_http}."), + type="A", + ttl=300, + managed_zone=private_zone.name, + rrdatas=[fw_rule_service_attachment.ip_address]) + ``` ## Import diff --git a/sdk/python/pulumi_gcp/securitycenter/__init__.py b/sdk/python/pulumi_gcp/securitycenter/__init__.py index fd6ac6894e..54bb62275d 100644 --- a/sdk/python/pulumi_gcp/securitycenter/__init__.py +++ b/sdk/python/pulumi_gcp/securitycenter/__init__.py @@ -24,6 +24,7 @@ from .source_iam_binding import * from .source_iam_member import * from .source_iam_policy import * +from .v2_organization_mute_config import * from .v2_organization_notification_config import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_gcp/securitycenter/v2_organization_mute_config.py b/sdk/python/pulumi_gcp/securitycenter/v2_organization_mute_config.py new file mode 100644 index 0000000000..cc9b36ff02 --- /dev/null +++ b/sdk/python/pulumi_gcp/securitycenter/v2_organization_mute_config.py @@ -0,0 +1,673 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['V2OrganizationMuteConfigArgs', 'V2OrganizationMuteConfig'] + +@pulumi.input_type +class V2OrganizationMuteConfigArgs: + def __init__(__self__, *, + filter: pulumi.Input[str], + mute_config_id: pulumi.Input[str], + organization: pulumi.Input[str], + type: pulumi.Input[str], + description: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a V2OrganizationMuteConfig resource. + :param pulumi.Input[str] filter: An expression that defines the filter to apply across create/update + events of findings. While creating a filter string, be mindful of + the scope in which the mute configuration is being created. E.g., + If a filter contains project = X but is created under the + project = Y scope, it might not match any findings. + :param pulumi.Input[str] mute_config_id: Unique identifier provided by the client within the parent scope. + + + - - - + :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Mute + Config lives in. + :param pulumi.Input[str] type: The type of the mute config. + :param pulumi.Input[str] description: A description of the mute config. + :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default. + """ + pulumi.set(__self__, "filter", filter) + pulumi.set(__self__, "mute_config_id", mute_config_id) + pulumi.set(__self__, "organization", organization) + pulumi.set(__self__, "type", type) + if description is not None: + pulumi.set(__self__, "description", description) + if location is not None: + pulumi.set(__self__, "location", location) + + @property + @pulumi.getter + def filter(self) -> pulumi.Input[str]: + """ + An expression that defines the filter to apply across create/update + events of findings. While creating a filter string, be mindful of + the scope in which the mute configuration is being created. E.g., + If a filter contains project = X but is created under the + project = Y scope, it might not match any findings. + """ + return pulumi.get(self, "filter") + + @filter.setter + def filter(self, value: pulumi.Input[str]): + pulumi.set(self, "filter", value) + + @property + @pulumi.getter(name="muteConfigId") + def mute_config_id(self) -> pulumi.Input[str]: + """ + Unique identifier provided by the client within the parent scope. + + + - - - + """ + return pulumi.get(self, "mute_config_id") + + @mute_config_id.setter + def mute_config_id(self, value: pulumi.Input[str]): + pulumi.set(self, "mute_config_id", value) + + @property + @pulumi.getter + def organization(self) -> pulumi.Input[str]: + """ + The organization whose Cloud Security Command Center the Mute + Config lives in. + """ + return pulumi.get(self, "organization") + + @organization.setter + def organization(self, value: pulumi.Input[str]): + pulumi.set(self, "organization", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The type of the mute config. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + A description of the mute config. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + location Id is provided by organization. If not provided, Use global as default. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + +@pulumi.input_type +class _V2OrganizationMuteConfigState: + def __init__(__self__, *, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + most_recent_editor: Optional[pulumi.Input[str]] = None, + mute_config_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering V2OrganizationMuteConfig resources. + :param pulumi.Input[str] create_time: The time at which the mute config was created. This field is set by + the server and will be ignored if provided on config creation. + :param pulumi.Input[str] description: A description of the mute config. + :param pulumi.Input[str] filter: An expression that defines the filter to apply across create/update + events of findings. While creating a filter string, be mindful of + the scope in which the mute configuration is being created. E.g., + If a filter contains project = X but is created under the + project = Y scope, it might not match any findings. + :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default. + :param pulumi.Input[str] most_recent_editor: Email address of the user who last edited the mute config. This + field is set by the server and will be ignored if provided on + config creation or update. + :param pulumi.Input[str] mute_config_id: Unique identifier provided by the client within the parent scope. + + + - - - + :param pulumi.Input[str] name: Name of the mute config. Its format is + organizations/{organization}/locations/global/muteConfigs/{configId}, + folders/{folder}/locations/global/muteConfigs/{configId}, + or projects/{project}/locations/global/muteConfigs/{configId} + :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Mute + Config lives in. + :param pulumi.Input[str] type: The type of the mute config. + :param pulumi.Input[str] update_time: Output only. The most recent time at which the mute config was + updated. This field is set by the server and will be ignored if + provided on config creation or update. + """ + if create_time is not None: + pulumi.set(__self__, "create_time", create_time) + if description is not None: + pulumi.set(__self__, "description", description) + if filter is not None: + pulumi.set(__self__, "filter", filter) + if location is not None: + pulumi.set(__self__, "location", location) + if most_recent_editor is not None: + pulumi.set(__self__, "most_recent_editor", most_recent_editor) + if mute_config_id is not None: + pulumi.set(__self__, "mute_config_id", mute_config_id) + if name is not None: + pulumi.set(__self__, "name", name) + if organization is not None: + pulumi.set(__self__, "organization", organization) + if type is not None: + pulumi.set(__self__, "type", type) + if update_time is not None: + pulumi.set(__self__, "update_time", update_time) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> Optional[pulumi.Input[str]]: + """ + The time at which the mute config was created. This field is set by + the server and will be ignored if provided on config creation. + """ + return pulumi.get(self, "create_time") + + @create_time.setter + def create_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_time", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + A description of the mute config. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def filter(self) -> Optional[pulumi.Input[str]]: + """ + An expression that defines the filter to apply across create/update + events of findings. While creating a filter string, be mindful of + the scope in which the mute configuration is being created. E.g., + If a filter contains project = X but is created under the + project = Y scope, it might not match any findings. + """ + return pulumi.get(self, "filter") + + @filter.setter + def filter(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "filter", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + location Id is provided by organization. If not provided, Use global as default. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="mostRecentEditor") + def most_recent_editor(self) -> Optional[pulumi.Input[str]]: + """ + Email address of the user who last edited the mute config. This + field is set by the server and will be ignored if provided on + config creation or update. + """ + return pulumi.get(self, "most_recent_editor") + + @most_recent_editor.setter + def most_recent_editor(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "most_recent_editor", value) + + @property + @pulumi.getter(name="muteConfigId") + def mute_config_id(self) -> Optional[pulumi.Input[str]]: + """ + Unique identifier provided by the client within the parent scope. + + + - - - + """ + return pulumi.get(self, "mute_config_id") + + @mute_config_id.setter + def mute_config_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mute_config_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the mute config. Its format is + organizations/{organization}/locations/global/muteConfigs/{configId}, + folders/{folder}/locations/global/muteConfigs/{configId}, + or projects/{project}/locations/global/muteConfigs/{configId} + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def organization(self) -> Optional[pulumi.Input[str]]: + """ + The organization whose Cloud Security Command Center the Mute + Config lives in. + """ + return pulumi.get(self, "organization") + + @organization.setter + def organization(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "organization", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: + """ + The type of the mute config. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> Optional[pulumi.Input[str]]: + """ + Output only. The most recent time at which the mute config was + updated. This field is set by the server and will be ignored if + provided on config creation or update. + """ + return pulumi.get(self, "update_time") + + @update_time.setter + def update_time(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "update_time", value) + + +class V2OrganizationMuteConfig(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + mute_config_id: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Mute Findings is a volume management feature in Security Command Center + that lets you manually or programmatically hide irrelevant findings, + and create filters to automatically silence existing and future + findings based on criteria you specify. + + To get more information about OrganizationMuteConfig, see: + + * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.muteConfigs) + + ## Example Usage + + ### Scc V2 Organization Mute Config Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + default = gcp.securitycenter.V2OrganizationMuteConfig("default", + mute_config_id="my-config", + organization="123456789", + location="global", + description="My custom Cloud Security Command Center Finding Organization mute Configuration", + filter="severity = \\"HIGH\\"", + type="STATIC") + ``` + + ## Import + + OrganizationMuteConfig can be imported using any of these accepted formats: + + * `organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}` + + * `{{organization}}/{{location}}/{{mute_config_id}}` + + When using the `pulumi import` command, OrganizationMuteConfig can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}} + ``` + + ```sh + $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default {{organization}}/{{location}}/{{mute_config_id}} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] description: A description of the mute config. + :param pulumi.Input[str] filter: An expression that defines the filter to apply across create/update + events of findings. While creating a filter string, be mindful of + the scope in which the mute configuration is being created. E.g., + If a filter contains project = X but is created under the + project = Y scope, it might not match any findings. + :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default. + :param pulumi.Input[str] mute_config_id: Unique identifier provided by the client within the parent scope. + + + - - - + :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Mute + Config lives in. + :param pulumi.Input[str] type: The type of the mute config. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: V2OrganizationMuteConfigArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Mute Findings is a volume management feature in Security Command Center + that lets you manually or programmatically hide irrelevant findings, + and create filters to automatically silence existing and future + findings based on criteria you specify. + + To get more information about OrganizationMuteConfig, see: + + * [API documentation](https://cloud.google.com/security-command-center/docs/reference/rest/v2/organizations.muteConfigs) + + ## Example Usage + + ### Scc V2 Organization Mute Config Basic + + ```python + import pulumi + import pulumi_gcp as gcp + + default = gcp.securitycenter.V2OrganizationMuteConfig("default", + mute_config_id="my-config", + organization="123456789", + location="global", + description="My custom Cloud Security Command Center Finding Organization mute Configuration", + filter="severity = \\"HIGH\\"", + type="STATIC") + ``` + + ## Import + + OrganizationMuteConfig can be imported using any of these accepted formats: + + * `organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}}` + + * `{{organization}}/{{location}}/{{mute_config_id}}` + + When using the `pulumi import` command, OrganizationMuteConfig can be imported using one of the formats above. For example: + + ```sh + $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default organizations/{{organization}}/locations/{{location}}/muteConfigs/{{mute_config_id}} + ``` + + ```sh + $ pulumi import gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig default {{organization}}/{{location}}/{{mute_config_id}} + ``` + + :param str resource_name: The name of the resource. + :param V2OrganizationMuteConfigArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(V2OrganizationMuteConfigArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + description: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + mute_config_id: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = V2OrganizationMuteConfigArgs.__new__(V2OrganizationMuteConfigArgs) + + __props__.__dict__["description"] = description + if filter is None and not opts.urn: + raise TypeError("Missing required property 'filter'") + __props__.__dict__["filter"] = filter + __props__.__dict__["location"] = location + if mute_config_id is None and not opts.urn: + raise TypeError("Missing required property 'mute_config_id'") + __props__.__dict__["mute_config_id"] = mute_config_id + if organization is None and not opts.urn: + raise TypeError("Missing required property 'organization'") + __props__.__dict__["organization"] = organization + if type is None and not opts.urn: + raise TypeError("Missing required property 'type'") + __props__.__dict__["type"] = type + __props__.__dict__["create_time"] = None + __props__.__dict__["most_recent_editor"] = None + __props__.__dict__["name"] = None + __props__.__dict__["update_time"] = None + super(V2OrganizationMuteConfig, __self__).__init__( + 'gcp:securitycenter/v2OrganizationMuteConfig:V2OrganizationMuteConfig', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + create_time: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + filter: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + most_recent_editor: Optional[pulumi.Input[str]] = None, + mute_config_id: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + organization: Optional[pulumi.Input[str]] = None, + type: Optional[pulumi.Input[str]] = None, + update_time: Optional[pulumi.Input[str]] = None) -> 'V2OrganizationMuteConfig': + """ + Get an existing V2OrganizationMuteConfig resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] create_time: The time at which the mute config was created. This field is set by + the server and will be ignored if provided on config creation. + :param pulumi.Input[str] description: A description of the mute config. + :param pulumi.Input[str] filter: An expression that defines the filter to apply across create/update + events of findings. While creating a filter string, be mindful of + the scope in which the mute configuration is being created. E.g., + If a filter contains project = X but is created under the + project = Y scope, it might not match any findings. + :param pulumi.Input[str] location: location Id is provided by organization. If not provided, Use global as default. + :param pulumi.Input[str] most_recent_editor: Email address of the user who last edited the mute config. This + field is set by the server and will be ignored if provided on + config creation or update. + :param pulumi.Input[str] mute_config_id: Unique identifier provided by the client within the parent scope. + + + - - - + :param pulumi.Input[str] name: Name of the mute config. Its format is + organizations/{organization}/locations/global/muteConfigs/{configId}, + folders/{folder}/locations/global/muteConfigs/{configId}, + or projects/{project}/locations/global/muteConfigs/{configId} + :param pulumi.Input[str] organization: The organization whose Cloud Security Command Center the Mute + Config lives in. + :param pulumi.Input[str] type: The type of the mute config. + :param pulumi.Input[str] update_time: Output only. The most recent time at which the mute config was + updated. This field is set by the server and will be ignored if + provided on config creation or update. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _V2OrganizationMuteConfigState.__new__(_V2OrganizationMuteConfigState) + + __props__.__dict__["create_time"] = create_time + __props__.__dict__["description"] = description + __props__.__dict__["filter"] = filter + __props__.__dict__["location"] = location + __props__.__dict__["most_recent_editor"] = most_recent_editor + __props__.__dict__["mute_config_id"] = mute_config_id + __props__.__dict__["name"] = name + __props__.__dict__["organization"] = organization + __props__.__dict__["type"] = type + __props__.__dict__["update_time"] = update_time + return V2OrganizationMuteConfig(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="createTime") + def create_time(self) -> pulumi.Output[str]: + """ + The time at which the mute config was created. This field is set by + the server and will be ignored if provided on config creation. + """ + return pulumi.get(self, "create_time") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[Optional[str]]: + """ + A description of the mute config. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def filter(self) -> pulumi.Output[str]: + """ + An expression that defines the filter to apply across create/update + events of findings. While creating a filter string, be mindful of + the scope in which the mute configuration is being created. E.g., + If a filter contains project = X but is created under the + project = Y scope, it might not match any findings. + """ + return pulumi.get(self, "filter") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[Optional[str]]: + """ + location Id is provided by organization. If not provided, Use global as default. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter(name="mostRecentEditor") + def most_recent_editor(self) -> pulumi.Output[str]: + """ + Email address of the user who last edited the mute config. This + field is set by the server and will be ignored if provided on + config creation or update. + """ + return pulumi.get(self, "most_recent_editor") + + @property + @pulumi.getter(name="muteConfigId") + def mute_config_id(self) -> pulumi.Output[str]: + """ + Unique identifier provided by the client within the parent scope. + + + - - - + """ + return pulumi.get(self, "mute_config_id") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the mute config. Its format is + organizations/{organization}/locations/global/muteConfigs/{configId}, + folders/{folder}/locations/global/muteConfigs/{configId}, + or projects/{project}/locations/global/muteConfigs/{configId} + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def organization(self) -> pulumi.Output[str]: + """ + The organization whose Cloud Security Command Center the Mute + Config lives in. + """ + return pulumi.get(self, "organization") + + @property + @pulumi.getter + def type(self) -> pulumi.Output[str]: + """ + The type of the mute config. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="updateTime") + def update_time(self) -> pulumi.Output[str]: + """ + Output only. The most recent time at which the mute config was + updated. This field is set by the server and will be ignored if + provided on config creation or update. + """ + return pulumi.get(self, "update_time") + diff --git a/sdk/python/pulumi_gcp/sql/database_instance.py b/sdk/python/pulumi_gcp/sql/database_instance.py index 5e620163de..f8d10d2d0c 100644 --- a/sdk/python/pulumi_gcp/sql/database_instance.py +++ b/sdk/python/pulumi_gcp/sql/database_instance.py @@ -859,7 +859,7 @@ def __init__(__self__, "tier": "db-f1-micro", "ip_configuration": { "ipv4_enabled": False, - "private_network": private_network.id, + "private_network": private_network.self_link, "enable_private_path_for_google_cloud_services": True, }, }, @@ -1053,7 +1053,7 @@ def __init__(__self__, "tier": "db-f1-micro", "ip_configuration": { "ipv4_enabled": False, - "private_network": private_network.id, + "private_network": private_network.self_link, "enable_private_path_for_google_cloud_services": True, }, }, diff --git a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py index 03c9fc51fd..28a306830c 100644 --- a/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py +++ b/sdk/python/pulumi_gcp/vertex/ai_feature_online_store_featureview.py @@ -608,8 +608,8 @@ def __init__(__self__, test_project = gcp.organizations.get_project() project = gcp.organizations.Project("project", - project_id="tf-test_55138", - name="tf-test_37559", + project_id="tf-test_13293", + name="tf-test_40289", org_id="123456789", billing_account="000000-0000000-0000000-000000") wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s, @@ -1032,8 +1032,8 @@ def __init__(__self__, test_project = gcp.organizations.get_project() project = gcp.organizations.Project("project", - project_id="tf-test_55138", - name="tf-test_37559", + project_id="tf-test_13293", + name="tf-test_40289", org_id="123456789", billing_account="000000-0000000-0000000-000000") wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s, diff --git a/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py b/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py index 03c6179131..87fcccf455 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py +++ b/sdk/python/pulumi_gcp/vmwareengine/get_private_cloud.py @@ -27,7 +27,10 @@ class GetPrivateCloudResult: """ A collection of values returned by getPrivateCloud. """ - def __init__(__self__, description=None, hcxes=None, id=None, location=None, management_clusters=None, name=None, network_configs=None, nsxes=None, project=None, state=None, type=None, uid=None, vcenters=None): + def __init__(__self__, deletion_delay_hours=None, description=None, hcxes=None, id=None, location=None, management_clusters=None, name=None, network_configs=None, nsxes=None, project=None, send_deletion_delay_hours_if_zero=None, state=None, type=None, uid=None, vcenters=None): + if deletion_delay_hours and not isinstance(deletion_delay_hours, int): + raise TypeError("Expected argument 'deletion_delay_hours' to be a int") + pulumi.set(__self__, "deletion_delay_hours", deletion_delay_hours) if description and not isinstance(description, str): raise TypeError("Expected argument 'description' to be a str") pulumi.set(__self__, "description", description) @@ -55,6 +58,9 @@ def __init__(__self__, description=None, hcxes=None, id=None, location=None, man if project and not isinstance(project, str): raise TypeError("Expected argument 'project' to be a str") pulumi.set(__self__, "project", project) + if send_deletion_delay_hours_if_zero and not isinstance(send_deletion_delay_hours_if_zero, bool): + raise TypeError("Expected argument 'send_deletion_delay_hours_if_zero' to be a bool") + pulumi.set(__self__, "send_deletion_delay_hours_if_zero", send_deletion_delay_hours_if_zero) if state and not isinstance(state, str): raise TypeError("Expected argument 'state' to be a str") pulumi.set(__self__, "state", state) @@ -68,6 +74,11 @@ def __init__(__self__, description=None, hcxes=None, id=None, location=None, man raise TypeError("Expected argument 'vcenters' to be a list") pulumi.set(__self__, "vcenters", vcenters) + @property + @pulumi.getter(name="deletionDelayHours") + def deletion_delay_hours(self) -> int: + return pulumi.get(self, "deletion_delay_hours") + @property @pulumi.getter def description(self) -> str: @@ -116,6 +127,11 @@ def nsxes(self) -> Sequence['outputs.GetPrivateCloudNsxResult']: def project(self) -> Optional[str]: return pulumi.get(self, "project") + @property + @pulumi.getter(name="sendDeletionDelayHoursIfZero") + def send_deletion_delay_hours_if_zero(self) -> bool: + return pulumi.get(self, "send_deletion_delay_hours_if_zero") + @property @pulumi.getter def state(self) -> str: @@ -143,6 +159,7 @@ def __await__(self): if False: yield self return GetPrivateCloudResult( + deletion_delay_hours=self.deletion_delay_hours, description=self.description, hcxes=self.hcxes, id=self.id, @@ -152,6 +169,7 @@ def __await__(self): network_configs=self.network_configs, nsxes=self.nsxes, project=self.project, + send_deletion_delay_hours_if_zero=self.send_deletion_delay_hours_if_zero, state=self.state, type=self.type, uid=self.uid, @@ -194,6 +212,7 @@ def get_private_cloud(location: Optional[str] = None, __ret__ = pulumi.runtime.invoke('gcp:vmwareengine/getPrivateCloud:getPrivateCloud', __args__, opts=opts, typ=GetPrivateCloudResult).value return AwaitableGetPrivateCloudResult( + deletion_delay_hours=pulumi.get(__ret__, 'deletion_delay_hours'), description=pulumi.get(__ret__, 'description'), hcxes=pulumi.get(__ret__, 'hcxes'), id=pulumi.get(__ret__, 'id'), @@ -203,6 +222,7 @@ def get_private_cloud(location: Optional[str] = None, network_configs=pulumi.get(__ret__, 'network_configs'), nsxes=pulumi.get(__ret__, 'nsxes'), project=pulumi.get(__ret__, 'project'), + send_deletion_delay_hours_if_zero=pulumi.get(__ret__, 'send_deletion_delay_hours_if_zero'), state=pulumi.get(__ret__, 'state'), type=pulumi.get(__ret__, 'type'), uid=pulumi.get(__ret__, 'uid'), diff --git a/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py b/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py index fdbdc70393..8fd4a3df8e 100644 --- a/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py +++ b/sdk/python/pulumi_gcp/vmwareengine/private_cloud.py @@ -24,9 +24,11 @@ def __init__(__self__, *, location: pulumi.Input[str], management_cluster: pulumi.Input['PrivateCloudManagementClusterArgs'], network_config: pulumi.Input['PrivateCloudNetworkConfigArgs'], + deletion_delay_hours: Optional[pulumi.Input[int]] = None, description: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, project: Optional[pulumi.Input[str]] = None, + send_deletion_delay_hours_if_zero: Optional[pulumi.Input[bool]] = None, type: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a PrivateCloud resource. @@ -35,19 +37,28 @@ def __init__(__self__, *, Structure is documented below. :param pulumi.Input['PrivateCloudNetworkConfigArgs'] network_config: Network configuration in the consumer project with which the peering has to be done. Structure is documented below. + :param pulumi.Input[int] deletion_delay_hours: The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + starts the deletion request immediately. If no value is set, a default value is set at the API Level. :param pulumi.Input[str] description: User-provided description for this private cloud. :param pulumi.Input[str] name: The ID of the PrivateCloud. + :param pulumi.Input[bool] send_deletion_delay_hours_if_zero: While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + deletion_delay_hours. :param pulumi.Input[str] type: Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] """ pulumi.set(__self__, "location", location) pulumi.set(__self__, "management_cluster", management_cluster) pulumi.set(__self__, "network_config", network_config) + if deletion_delay_hours is not None: + pulumi.set(__self__, "deletion_delay_hours", deletion_delay_hours) if description is not None: pulumi.set(__self__, "description", description) if name is not None: pulumi.set(__self__, "name", name) if project is not None: pulumi.set(__self__, "project", project) + if send_deletion_delay_hours_if_zero is not None: + pulumi.set(__self__, "send_deletion_delay_hours_if_zero", send_deletion_delay_hours_if_zero) if type is not None: pulumi.set(__self__, "type", type) @@ -89,6 +100,19 @@ def network_config(self) -> pulumi.Input['PrivateCloudNetworkConfigArgs']: def network_config(self, value: pulumi.Input['PrivateCloudNetworkConfigArgs']): pulumi.set(self, "network_config", value) + @property + @pulumi.getter(name="deletionDelayHours") + def deletion_delay_hours(self) -> Optional[pulumi.Input[int]]: + """ + The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + starts the deletion request immediately. If no value is set, a default value is set at the API Level. + """ + return pulumi.get(self, "deletion_delay_hours") + + @deletion_delay_hours.setter + def deletion_delay_hours(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "deletion_delay_hours", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -122,6 +146,20 @@ def project(self) -> Optional[pulumi.Input[str]]: def project(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "project", value) + @property + @pulumi.getter(name="sendDeletionDelayHoursIfZero") + def send_deletion_delay_hours_if_zero(self) -> Optional[pulumi.Input[bool]]: + """ + While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + deletion_delay_hours. + """ + return pulumi.get(self, "send_deletion_delay_hours_if_zero") + + @send_deletion_delay_hours_if_zero.setter + def send_deletion_delay_hours_if_zero(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "send_deletion_delay_hours_if_zero", value) + @property @pulumi.getter def type(self) -> Optional[pulumi.Input[str]]: @@ -138,6 +176,7 @@ def type(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class _PrivateCloudState: def __init__(__self__, *, + deletion_delay_hours: Optional[pulumi.Input[int]] = None, description: Optional[pulumi.Input[str]] = None, hcxes: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateCloudHcxArgs']]]] = None, location: Optional[pulumi.Input[str]] = None, @@ -146,12 +185,15 @@ def __init__(__self__, *, network_config: Optional[pulumi.Input['PrivateCloudNetworkConfigArgs']] = None, nsxes: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateCloudNsxArgs']]]] = None, project: Optional[pulumi.Input[str]] = None, + send_deletion_delay_hours_if_zero: Optional[pulumi.Input[bool]] = None, state: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, uid: Optional[pulumi.Input[str]] = None, vcenters: Optional[pulumi.Input[Sequence[pulumi.Input['PrivateCloudVcenterArgs']]]] = None): """ Input properties used for looking up and filtering PrivateCloud resources. + :param pulumi.Input[int] deletion_delay_hours: The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + starts the deletion request immediately. If no value is set, a default value is set at the API Level. :param pulumi.Input[str] description: User-provided description for this private cloud. :param pulumi.Input[Sequence[pulumi.Input['PrivateCloudHcxArgs']]] hcxes: Details about a HCX Cloud Manager appliance. Structure is documented below. @@ -163,6 +205,9 @@ def __init__(__self__, *, Structure is documented below. :param pulumi.Input[Sequence[pulumi.Input['PrivateCloudNsxArgs']]] nsxes: Details about a NSX Manager appliance. Structure is documented below. + :param pulumi.Input[bool] send_deletion_delay_hours_if_zero: While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + deletion_delay_hours. :param pulumi.Input[str] state: State of the appliance. Possible values are: `ACTIVE`, `CREATING`. :param pulumi.Input[str] type: Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] @@ -170,6 +215,8 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['PrivateCloudVcenterArgs']]] vcenters: Details about a vCenter Server management appliance. Structure is documented below. """ + if deletion_delay_hours is not None: + pulumi.set(__self__, "deletion_delay_hours", deletion_delay_hours) if description is not None: pulumi.set(__self__, "description", description) if hcxes is not None: @@ -186,6 +233,8 @@ def __init__(__self__, *, pulumi.set(__self__, "nsxes", nsxes) if project is not None: pulumi.set(__self__, "project", project) + if send_deletion_delay_hours_if_zero is not None: + pulumi.set(__self__, "send_deletion_delay_hours_if_zero", send_deletion_delay_hours_if_zero) if state is not None: pulumi.set(__self__, "state", state) if type is not None: @@ -195,6 +244,19 @@ def __init__(__self__, *, if vcenters is not None: pulumi.set(__self__, "vcenters", vcenters) + @property + @pulumi.getter(name="deletionDelayHours") + def deletion_delay_hours(self) -> Optional[pulumi.Input[int]]: + """ + The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + starts the deletion request immediately. If no value is set, a default value is set at the API Level. + """ + return pulumi.get(self, "deletion_delay_hours") + + @deletion_delay_hours.setter + def deletion_delay_hours(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "deletion_delay_hours", value) + @property @pulumi.getter def description(self) -> Optional[pulumi.Input[str]]: @@ -292,6 +354,20 @@ def project(self) -> Optional[pulumi.Input[str]]: def project(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "project", value) + @property + @pulumi.getter(name="sendDeletionDelayHoursIfZero") + def send_deletion_delay_hours_if_zero(self) -> Optional[pulumi.Input[bool]]: + """ + While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + deletion_delay_hours. + """ + return pulumi.get(self, "send_deletion_delay_hours_if_zero") + + @send_deletion_delay_hours_if_zero.setter + def send_deletion_delay_hours_if_zero(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "send_deletion_delay_hours_if_zero", value) + @property @pulumi.getter def state(self) -> Optional[pulumi.Input[str]]: @@ -348,12 +424,14 @@ class PrivateCloud(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + deletion_delay_hours: Optional[pulumi.Input[int]] = None, description: Optional[pulumi.Input[str]] = None, location: Optional[pulumi.Input[str]] = None, management_cluster: Optional[pulumi.Input[Union['PrivateCloudManagementClusterArgs', 'PrivateCloudManagementClusterArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, network_config: Optional[pulumi.Input[Union['PrivateCloudNetworkConfigArgs', 'PrivateCloudNetworkConfigArgsDict']]] = None, project: Optional[pulumi.Input[str]] = None, + send_deletion_delay_hours_if_zero: Optional[pulumi.Input[bool]] = None, type: Optional[pulumi.Input[str]] = None, __props__=None): """ @@ -419,7 +497,9 @@ def __init__(__self__, "node_count": 1, "custom_core_count": 32, }], - }) + }, + deletion_delay_hours=0, + send_deletion_delay_hours_if_zero=True) ``` ## Import @@ -448,6 +528,8 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[int] deletion_delay_hours: The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + starts the deletion request immediately. If no value is set, a default value is set at the API Level. :param pulumi.Input[str] description: User-provided description for this private cloud. :param pulumi.Input[str] location: The location where the PrivateCloud should reside. :param pulumi.Input[Union['PrivateCloudManagementClusterArgs', 'PrivateCloudManagementClusterArgsDict']] management_cluster: The management cluster for this private cloud. This used for creating and managing the default cluster. @@ -455,6 +537,9 @@ def __init__(__self__, :param pulumi.Input[str] name: The ID of the PrivateCloud. :param pulumi.Input[Union['PrivateCloudNetworkConfigArgs', 'PrivateCloudNetworkConfigArgsDict']] network_config: Network configuration in the consumer project with which the peering has to be done. Structure is documented below. + :param pulumi.Input[bool] send_deletion_delay_hours_if_zero: While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + deletion_delay_hours. :param pulumi.Input[str] type: Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] """ ... @@ -526,7 +611,9 @@ def __init__(__self__, "node_count": 1, "custom_core_count": 32, }], - }) + }, + deletion_delay_hours=0, + send_deletion_delay_hours_if_zero=True) ``` ## Import @@ -568,12 +655,14 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + deletion_delay_hours: Optional[pulumi.Input[int]] = None, description: Optional[pulumi.Input[str]] = None, location: Optional[pulumi.Input[str]] = None, management_cluster: Optional[pulumi.Input[Union['PrivateCloudManagementClusterArgs', 'PrivateCloudManagementClusterArgsDict']]] = None, name: Optional[pulumi.Input[str]] = None, network_config: Optional[pulumi.Input[Union['PrivateCloudNetworkConfigArgs', 'PrivateCloudNetworkConfigArgsDict']]] = None, project: Optional[pulumi.Input[str]] = None, + send_deletion_delay_hours_if_zero: Optional[pulumi.Input[bool]] = None, type: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -584,6 +673,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = PrivateCloudArgs.__new__(PrivateCloudArgs) + __props__.__dict__["deletion_delay_hours"] = deletion_delay_hours __props__.__dict__["description"] = description if location is None and not opts.urn: raise TypeError("Missing required property 'location'") @@ -596,6 +686,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'network_config'") __props__.__dict__["network_config"] = network_config __props__.__dict__["project"] = project + __props__.__dict__["send_deletion_delay_hours_if_zero"] = send_deletion_delay_hours_if_zero __props__.__dict__["type"] = type __props__.__dict__["hcxes"] = None __props__.__dict__["nsxes"] = None @@ -612,6 +703,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + deletion_delay_hours: Optional[pulumi.Input[int]] = None, description: Optional[pulumi.Input[str]] = None, hcxes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateCloudHcxArgs', 'PrivateCloudHcxArgsDict']]]]] = None, location: Optional[pulumi.Input[str]] = None, @@ -620,6 +712,7 @@ def get(resource_name: str, network_config: Optional[pulumi.Input[Union['PrivateCloudNetworkConfigArgs', 'PrivateCloudNetworkConfigArgsDict']]] = None, nsxes: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PrivateCloudNsxArgs', 'PrivateCloudNsxArgsDict']]]]] = None, project: Optional[pulumi.Input[str]] = None, + send_deletion_delay_hours_if_zero: Optional[pulumi.Input[bool]] = None, state: Optional[pulumi.Input[str]] = None, type: Optional[pulumi.Input[str]] = None, uid: Optional[pulumi.Input[str]] = None, @@ -631,6 +724,8 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[int] deletion_delay_hours: The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + starts the deletion request immediately. If no value is set, a default value is set at the API Level. :param pulumi.Input[str] description: User-provided description for this private cloud. :param pulumi.Input[Sequence[pulumi.Input[Union['PrivateCloudHcxArgs', 'PrivateCloudHcxArgsDict']]]] hcxes: Details about a HCX Cloud Manager appliance. Structure is documented below. @@ -642,6 +737,9 @@ def get(resource_name: str, Structure is documented below. :param pulumi.Input[Sequence[pulumi.Input[Union['PrivateCloudNsxArgs', 'PrivateCloudNsxArgsDict']]]] nsxes: Details about a NSX Manager appliance. Structure is documented below. + :param pulumi.Input[bool] send_deletion_delay_hours_if_zero: While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + deletion_delay_hours. :param pulumi.Input[str] state: State of the appliance. Possible values are: `ACTIVE`, `CREATING`. :param pulumi.Input[str] type: Initial type of the private cloud. Possible values: ["STANDARD", "TIME_LIMITED", "STRETCHED"] @@ -653,6 +751,7 @@ def get(resource_name: str, __props__ = _PrivateCloudState.__new__(_PrivateCloudState) + __props__.__dict__["deletion_delay_hours"] = deletion_delay_hours __props__.__dict__["description"] = description __props__.__dict__["hcxes"] = hcxes __props__.__dict__["location"] = location @@ -661,12 +760,22 @@ def get(resource_name: str, __props__.__dict__["network_config"] = network_config __props__.__dict__["nsxes"] = nsxes __props__.__dict__["project"] = project + __props__.__dict__["send_deletion_delay_hours_if_zero"] = send_deletion_delay_hours_if_zero __props__.__dict__["state"] = state __props__.__dict__["type"] = type __props__.__dict__["uid"] = uid __props__.__dict__["vcenters"] = vcenters return PrivateCloud(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="deletionDelayHours") + def deletion_delay_hours(self) -> pulumi.Output[Optional[int]]: + """ + The number of hours to delay this request. You can set this value to an hour between 0 to 8, where setting it to 0 + starts the deletion request immediately. If no value is set, a default value is set at the API Level. + """ + return pulumi.get(self, "deletion_delay_hours") + @property @pulumi.getter def description(self) -> pulumi.Output[Optional[str]]: @@ -732,6 +841,16 @@ def nsxes(self) -> pulumi.Output[Sequence['outputs.PrivateCloudNsx']]: def project(self) -> pulumi.Output[str]: return pulumi.get(self, "project") + @property + @pulumi.getter(name="sendDeletionDelayHoursIfZero") + def send_deletion_delay_hours_if_zero(self) -> pulumi.Output[Optional[bool]]: + """ + While set true, deletion_delay_hours value will be sent in the request even for zero value of the field. This field is + only useful for setting 0 value to the deletion_delay_hours field. It can be used both alone and together with + deletion_delay_hours. + """ + return pulumi.get(self, "send_deletion_delay_hours_if_zero") + @property @pulumi.getter def state(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_gcp/workbench/_inputs.py b/sdk/python/pulumi_gcp/workbench/_inputs.py index ee4af1fbe4..662a10de05 100644 --- a/sdk/python/pulumi_gcp/workbench/_inputs.py +++ b/sdk/python/pulumi_gcp/workbench/_inputs.py @@ -27,6 +27,8 @@ 'InstanceGceSetupDataDisksArgsDict', 'InstanceGceSetupNetworkInterfaceArgs', 'InstanceGceSetupNetworkInterfaceArgsDict', + 'InstanceGceSetupNetworkInterfaceAccessConfigArgs', + 'InstanceGceSetupNetworkInterfaceAccessConfigArgsDict', 'InstanceGceSetupServiceAccountArgs', 'InstanceGceSetupServiceAccountArgsDict', 'InstanceGceSetupShieldedInstanceConfigArgs', @@ -699,6 +701,14 @@ def kms_key(self, value: Optional[pulumi.Input[str]]): if not MYPY: class InstanceGceSetupNetworkInterfaceArgsDict(TypedDict): + access_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupNetworkInterfaceAccessConfigArgsDict']]]] + """ + Optional. An array of configurations for this interface. Currently, only one access + config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + instance will have an external internet access through an ephemeral + external IP address. + Structure is documented below. + """ network: NotRequired[pulumi.Input[str]] """ Optional. The name of the VPC that this VM instance is in. @@ -719,16 +729,24 @@ class InstanceGceSetupNetworkInterfaceArgsDict(TypedDict): @pulumi.input_type class InstanceGceSetupNetworkInterfaceArgs: def __init__(__self__, *, + access_configs: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupNetworkInterfaceAccessConfigArgs']]]] = None, network: Optional[pulumi.Input[str]] = None, nic_type: Optional[pulumi.Input[str]] = None, subnet: Optional[pulumi.Input[str]] = None): """ + :param pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupNetworkInterfaceAccessConfigArgs']]] access_configs: Optional. An array of configurations for this interface. Currently, only one access + config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + instance will have an external internet access through an ephemeral + external IP address. + Structure is documented below. :param pulumi.Input[str] network: Optional. The name of the VPC that this VM instance is in. :param pulumi.Input[str] nic_type: Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. Possible values are: `VIRTIO_NET`, `GVNIC`. :param pulumi.Input[str] subnet: Optional. The name of the subnet that this VM instance is in. """ + if access_configs is not None: + pulumi.set(__self__, "access_configs", access_configs) if network is not None: pulumi.set(__self__, "network", network) if nic_type is not None: @@ -736,6 +754,22 @@ def __init__(__self__, *, if subnet is not None: pulumi.set(__self__, "subnet", subnet) + @property + @pulumi.getter(name="accessConfigs") + def access_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupNetworkInterfaceAccessConfigArgs']]]]: + """ + Optional. An array of configurations for this interface. Currently, only one access + config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + instance will have an external internet access through an ephemeral + external IP address. + Structure is documented below. + """ + return pulumi.get(self, "access_configs") + + @access_configs.setter + def access_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGceSetupNetworkInterfaceAccessConfigArgs']]]]): + pulumi.set(self, "access_configs", value) + @property @pulumi.getter def network(self) -> Optional[pulumi.Input[str]]: @@ -775,6 +809,49 @@ def subnet(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "subnet", value) +if not MYPY: + class InstanceGceSetupNetworkInterfaceAccessConfigArgsDict(TypedDict): + external_ip: pulumi.Input[str] + """ + An external IP address associated with this instance. Specify an unused + static external IP address available to the project or leave this field + undefined to use an IP from a shared ephemeral IP address pool. If you + specify a static external IP address, it must live in the same region as + the zone of the instance. + """ +elif False: + InstanceGceSetupNetworkInterfaceAccessConfigArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class InstanceGceSetupNetworkInterfaceAccessConfigArgs: + def __init__(__self__, *, + external_ip: pulumi.Input[str]): + """ + :param pulumi.Input[str] external_ip: An external IP address associated with this instance. Specify an unused + static external IP address available to the project or leave this field + undefined to use an IP from a shared ephemeral IP address pool. If you + specify a static external IP address, it must live in the same region as + the zone of the instance. + """ + pulumi.set(__self__, "external_ip", external_ip) + + @property + @pulumi.getter(name="externalIp") + def external_ip(self) -> pulumi.Input[str]: + """ + An external IP address associated with this instance. Specify an unused + static external IP address available to the project or leave this field + undefined to use an IP from a shared ephemeral IP address pool. If you + specify a static external IP address, it must live in the same region as + the zone of the instance. + """ + return pulumi.get(self, "external_ip") + + @external_ip.setter + def external_ip(self, value: pulumi.Input[str]): + pulumi.set(self, "external_ip", value) + + if not MYPY: class InstanceGceSetupServiceAccountArgsDict(TypedDict): email: NotRequired[pulumi.Input[str]] diff --git a/sdk/python/pulumi_gcp/workbench/instance.py b/sdk/python/pulumi_gcp/workbench/instance.py index 50682a3d19..f8fa14b63d 100644 --- a/sdk/python/pulumi_gcp/workbench/instance.py +++ b/sdk/python/pulumi_gcp/workbench/instance.py @@ -629,7 +629,6 @@ def __init__(__self__, "terraform": "true", }, }, - instance_owners=["my@service-account.com"], labels={ "k": "val", }, @@ -649,6 +648,11 @@ def __init__(__self__, network=my_network.id, region="us-central1", ip_cidr_range="10.0.1.0/24") + static = gcp.compute.Address("static", name="wbi-test-default") + act_as_permission = gcp.serviceaccount.IAMBinding("act_as_permission", + service_account_id="projects/my-project-name/serviceAccounts/my@service-account.com", + role="roles/iam.serviceAccountUser", + members=["user:example@example.com"]) instance = gcp.workbench.Instance("instance", name="workbench-instance", location="us-central1-a", @@ -683,6 +687,9 @@ def __init__(__self__, "network": my_network.id, "subnet": my_subnetwork.id, "nic_type": "GVNIC", + "access_configs": [{ + "external_ip": static.address, + }], }], "metadata": { "terraform": "true", @@ -694,7 +701,7 @@ def __init__(__self__, ], }, disable_proxy_access=True, - instance_owners=["my@service-account.com"], + instance_owners=["example@example.com"], labels={ "k": "val", }, @@ -829,7 +836,6 @@ def __init__(__self__, "terraform": "true", }, }, - instance_owners=["my@service-account.com"], labels={ "k": "val", }, @@ -849,6 +855,11 @@ def __init__(__self__, network=my_network.id, region="us-central1", ip_cidr_range="10.0.1.0/24") + static = gcp.compute.Address("static", name="wbi-test-default") + act_as_permission = gcp.serviceaccount.IAMBinding("act_as_permission", + service_account_id="projects/my-project-name/serviceAccounts/my@service-account.com", + role="roles/iam.serviceAccountUser", + members=["user:example@example.com"]) instance = gcp.workbench.Instance("instance", name="workbench-instance", location="us-central1-a", @@ -883,6 +894,9 @@ def __init__(__self__, "network": my_network.id, "subnet": my_subnetwork.id, "nic_type": "GVNIC", + "access_configs": [{ + "external_ip": static.address, + }], }], "metadata": { "terraform": "true", @@ -894,7 +908,7 @@ def __init__(__self__, ], }, disable_proxy_access=True, - instance_owners=["my@service-account.com"], + instance_owners=["example@example.com"], labels={ "k": "val", }, diff --git a/sdk/python/pulumi_gcp/workbench/outputs.py b/sdk/python/pulumi_gcp/workbench/outputs.py index 144cd4ded1..b9eb67f725 100644 --- a/sdk/python/pulumi_gcp/workbench/outputs.py +++ b/sdk/python/pulumi_gcp/workbench/outputs.py @@ -22,6 +22,7 @@ 'InstanceGceSetupContainerImage', 'InstanceGceSetupDataDisks', 'InstanceGceSetupNetworkInterface', + 'InstanceGceSetupNetworkInterfaceAccessConfig', 'InstanceGceSetupServiceAccount', 'InstanceGceSetupShieldedInstanceConfig', 'InstanceGceSetupVmImage', @@ -532,7 +533,9 @@ class InstanceGceSetupNetworkInterface(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "nicType": + if key == "accessConfigs": + suggest = "access_configs" + elif key == "nicType": suggest = "nic_type" if suggest: @@ -547,16 +550,24 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, + access_configs: Optional[Sequence['outputs.InstanceGceSetupNetworkInterfaceAccessConfig']] = None, network: Optional[str] = None, nic_type: Optional[str] = None, subnet: Optional[str] = None): """ + :param Sequence['InstanceGceSetupNetworkInterfaceAccessConfigArgs'] access_configs: Optional. An array of configurations for this interface. Currently, only one access + config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + instance will have an external internet access through an ephemeral + external IP address. + Structure is documented below. :param str network: Optional. The name of the VPC that this VM instance is in. :param str nic_type: Optional. The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet. Possible values are: `VIRTIO_NET`, `GVNIC`. :param str subnet: Optional. The name of the subnet that this VM instance is in. """ + if access_configs is not None: + pulumi.set(__self__, "access_configs", access_configs) if network is not None: pulumi.set(__self__, "network", network) if nic_type is not None: @@ -564,6 +575,18 @@ def __init__(__self__, *, if subnet is not None: pulumi.set(__self__, "subnet", subnet) + @property + @pulumi.getter(name="accessConfigs") + def access_configs(self) -> Optional[Sequence['outputs.InstanceGceSetupNetworkInterfaceAccessConfig']]: + """ + Optional. An array of configurations for this interface. Currently, only one access + config, ONE_TO_ONE_NAT, is supported. If no accessConfigs specified, the + instance will have an external internet access through an ephemeral + external IP address. + Structure is documented below. + """ + return pulumi.get(self, "access_configs") + @property @pulumi.getter def network(self) -> Optional[str]: @@ -591,6 +614,49 @@ def subnet(self) -> Optional[str]: return pulumi.get(self, "subnet") +@pulumi.output_type +class InstanceGceSetupNetworkInterfaceAccessConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "externalIp": + suggest = "external_ip" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in InstanceGceSetupNetworkInterfaceAccessConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + InstanceGceSetupNetworkInterfaceAccessConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + InstanceGceSetupNetworkInterfaceAccessConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + external_ip: str): + """ + :param str external_ip: An external IP address associated with this instance. Specify an unused + static external IP address available to the project or leave this field + undefined to use an IP from a shared ephemeral IP address pool. If you + specify a static external IP address, it must live in the same region as + the zone of the instance. + """ + pulumi.set(__self__, "external_ip", external_ip) + + @property + @pulumi.getter(name="externalIp") + def external_ip(self) -> str: + """ + An external IP address associated with this instance. Specify an unused + static external IP address available to the project or leave this field + undefined to use an IP from a shared ephemeral IP address pool. If you + specify a static external IP address, it must live in the same region as + the zone of the instance. + """ + return pulumi.get(self, "external_ip") + + @pulumi.output_type class InstanceGceSetupServiceAccount(dict): def __init__(__self__, *, diff --git a/upstream b/upstream index 3ac367fd97..87b40b08e7 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 3ac367fd972be53645d9e70682c4f2320107fb3b +Subproject commit 87b40b08e74d993af459773e00f80c8f13d43cf9